Răsfoiți Sursa

Рефакторинг.

TelenkovDmitry 8 luni în urmă
părinte
comite
b1d5f6a3af

+ 20 - 0
doc/misc.c

@@ -0,0 +1,20 @@
+//
+void io_test(void)
+{
+#if 0  
+    printf("IN_1: %u IN_2: %u IN_3: %u IN_4: %u IN_5: %u IN_6: %u IN_7: %u IN_8: %u\r\n", 
+           gpio_input_data_bit_read(inputs[0].port, inputs[0].pin),
+           gpio_input_data_bit_read(inputs[1].port, inputs[1].pin),
+           gpio_input_data_bit_read(inputs[2].port, inputs[2].pin),
+           gpio_input_data_bit_read(inputs[3].port, inputs[3].pin),
+           gpio_input_data_bit_read(inputs[4].port, inputs[4].pin),
+           gpio_input_data_bit_read(inputs[5].port, inputs[5].pin),
+           gpio_input_data_bit_read(inputs[6].port, inputs[6].pin), 
+           gpio_input_data_bit_read(inputs[7].port, inputs[7].pin));
+    
+    
+    printf("IN_1: %u IN_2: %u IN_3: %u IN_4: %u IN_5: %u IN_6: %u IN_7: %u IN_8: %u\r\n", 
+           di_cnt[0], di_cnt[1], di_cnt[2], di_cnt[3], 
+           di_cnt[4], di_cnt[5], di_cnt[6], di_cnt[7]);
+#endif    
+}

BIN
doc/~$_модули_входов_выходов_редакция_4.doc


BIN
doc/~$исание схемы 048260х MAIO124.docx


+ 445 - 0
fw/modules/io/digital_input.c

@@ -0,0 +1,445 @@
+#include "at32f403a_407.h"
+#include "digital_input.h"
+#include "FreeRTOS.h"
+#include "task.h"
+#include "input.h"
+#include "output.h"
+#include "settings_api.h"
+#include "io_utils.h"
+#include "mux.h"
+#include <stdio.h>
+
+// Цифровые входы
+// *port; pin; mode; port_source; pin_source; deb_counter; p_flag; cnt;
+din_t d_inputs[DI_NUMBER] = {
+    {GPIOB, GPIO_PINS_11, 0, 0, 0, false, false}, // 1   
+    {GPIOB, GPIO_PINS_10, 0, 0, 0, false, false}, // 2
+    {GPIOE, GPIO_PINS_14, 0, 0, 0, false, false}, // 3 перенесли {GPIOB, GPIO_PINS_1,  1, GPIO_PORT_SOURCE_GPIOB, GPIO_PINS_SOURCE1,  0},
+    {GPIOE, GPIO_PINS_15, 0, 0, 0, false, false}, // 4 перенесли {GPIOB, GPIO_PINS_0,  1, GPIO_PORT_SOURCE_GPIOB, GPIO_PINS_SOURCE0,  0},
+    {GPIOA, GPIO_PINS_3,  0, 0, 0, false, false}, // 5
+    {GPIOA, GPIO_PINS_2,  0, 0, 0, false, false}, // 6
+    {GPIOA, GPIO_PINS_1,  0, 0, 0, false, false}, // 7
+    {GPIOA, GPIO_PINS_0,  0, 0, 0, false, false}  // 8
+};
+
+// Датчики обрыва нагрузки
+simple_gpio_t di_load[DI_NUMBER] = {
+    {GPIOD, GPIO_PINS_0},
+    {GPIOD, GPIO_PINS_1},
+    {GPIOC, GPIO_PINS_13},
+    {GPIOC, GPIO_PINS_0},
+    {GPIOC, GPIO_PINS_10},
+    {GPIOD, GPIO_PINS_4},
+    {GPIOE, GPIO_PINS_4},
+    {GPIOC, GPIO_PINS_3}
+};
+
+// -------------------------------------------------------------------------- //
+// Текущие параметры
+
+uint32_t di_cnt[DI_NUMBER];         // счетчики входов
+
+uint16_t di_state[DI_NUMBER];       // состояние входов
+uint16_t di_state_bit;
+
+uint16_t di_load_state[DO_NUMBER];  // состояние датчиков обрыва нагрузки
+uint16_t di_load_state_bit;
+
+uint16_t di_credibility_state[DO_NUMBER];  // достоверность состояния датчиков нагрузки
+uint16_t di_credibility_state_bit;         // достоверность состояния датчиков нагрузки
+
+//
+void di_init(void)
+{
+    // Входы
+    for (int i = 0; i < DI_NUMBER; i++) 
+    {
+        di_base_init(&d_inputs[i]);
+        load_sens_init(&di_load[i]);
+    }
+    
+    // EXTI
+    di_exti_init();
+    
+    
+    
+#if 0
+    output_state_bit = settings.do_bits;
+    output_mode_bit = settings.do_mode_bits;
+    
+    // Таймер для выходов в режиме PWM
+    out_pwm_tim_init();
+    
+    for (int i = 0; i < DO_NUMBER; i++)
+    {
+        output_pwm[i] = settings.do_pwm[i];
+        output_pwm_save[i] = settings.do_pwm_save[i];
+        output_pwm_period[i] = settings.do_pwm_period[i];
+        output_pwm_period_save[i] = settings.do_pwm_period_save[i];
+
+        if (save_mode_get()) {
+            outputs[i].pwm_duty = settings.do_pwm_save[i];
+            outputs[i].pwm_period = settings.do_pwm_period_save[i];
+        }
+        else {
+            outputs[i].pwm_duty = settings.do_pwm[i];
+            outputs[i].pwm_period = settings.do_pwm_period[i];
+        }
+        
+        out_gpio_init(&outputs[i], i);
+        
+    }
+#endif    
+}
+
+//
+void di_base_init(din_t *input)
+{
+    gpio_init_type gpio_init_struct;
+
+    gpio_default_para_init(&gpio_init_struct);
+        
+    gpio_init_struct.gpio_pull           = GPIO_PULL_NONE;  
+    gpio_init_struct.gpio_mode           = GPIO_MODE_INPUT;  
+    gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
+    gpio_init_struct.gpio_pins           = input->pin;
+    gpio_init(input->port, &gpio_init_struct);
+}
+
+//
+void di_exti_init(void)
+{
+    exint_init_type exint_init_struct;
+    
+    gpio_exint_line_config(GPIO_PORT_SOURCE_GPIOB, GPIO_PINS_SOURCE11); // 11
+    gpio_exint_line_config(GPIO_PORT_SOURCE_GPIOB, GPIO_PINS_SOURCE10); // 10
+    gpio_exint_line_config(GPIO_PORT_SOURCE_GPIOE, GPIO_PINS_SOURCE14); // 14
+    gpio_exint_line_config(GPIO_PORT_SOURCE_GPIOE, GPIO_PINS_SOURCE15); // 15
+    gpio_exint_line_config(GPIO_PORT_SOURCE_GPIOA, GPIO_PINS_SOURCE3);  // 3
+    gpio_exint_line_config(GPIO_PORT_SOURCE_GPIOA, GPIO_PINS_SOURCE2);  // 2
+    gpio_exint_line_config(GPIO_PORT_SOURCE_GPIOA, GPIO_PINS_SOURCE1);  // 1
+    gpio_exint_line_config(GPIO_PORT_SOURCE_GPIOA, GPIO_PINS_SOURCE0);  // 0
+    
+    exint_default_para_init(&exint_init_struct);
+    
+    exint_init_struct.line_enable = TRUE;
+    exint_init_struct.line_mode = EXINT_LINE_INTERRUPUT;
+    exint_init_struct.line_select = EXINT_LINE_0 | EXINT_LINE_1 | EXINT_LINE_2 |
+                                    EXINT_LINE_3 | EXINT_LINE_10 | 
+                                    EXINT_LINE_11| EXINT_LINE_14 | EXINT_LINE_15; 
+    
+    exint_init_struct.line_polarity = EXINT_TRIGGER_BOTH_EDGE;
+    exint_init(&exint_init_struct);
+    
+    exint_flag_clear(EXINT_LINE_0);
+    exint_flag_clear(EXINT_LINE_1);
+    exint_flag_clear(EXINT_LINE_2);
+    exint_flag_clear(EXINT_LINE_3);
+    exint_flag_clear(EXINT_LINE_10);
+    exint_flag_clear(EXINT_LINE_11);
+    exint_flag_clear(EXINT_LINE_14);
+    exint_flag_clear(EXINT_LINE_15);
+    
+    nvic_irq_enable(EXINT0_IRQn, 5, 0);
+    nvic_irq_enable(EXINT1_IRQn, 5, 0);
+    nvic_irq_enable(EXINT2_IRQn, 5, 0);
+    nvic_irq_enable(EXINT3_IRQn, 5, 0);
+    nvic_irq_enable(EXINT15_10_IRQn, 5, 0);
+}
+
+
+// Таймер для антидребезга
+void di_tim_init(void)
+{
+    crm_clocks_freq_type crm_clocks_freq_struct = {0};
+    
+    crm_clocks_freq_get(&crm_clocks_freq_struct);
+    
+    nvic_irq_disable(TMR8_BRK_TMR12_IRQn);
+    
+    crm_periph_clock_enable(CRM_TMR12_PERIPH_CLOCK, TRUE);
+
+    // 1 Hz
+    tmr_base_init(TMR12, 9, (crm_clocks_freq_struct.ahb_freq / 10000) - 1);
+    tmr_cnt_dir_set(TMR12, TMR_COUNT_UP);
+    
+    NVIC_ClearPendingIRQ(TMR8_BRK_TMR12_IRQn);
+    nvic_irq_enable(TMR8_BRK_TMR12_IRQn, 5, 0);
+    
+    tmr_flag_clear(TMR12, TMR_OVF_FLAG);
+    tmr_interrupt_enable(TMR12, TMR_OVF_INT, TRUE);
+    tmr_counter_value_set(TMR12, 0);
+    tmr_counter_enable(TMR12, TRUE);  
+}
+
+
+void TMR8_BRK_TMR12_IRQHandler(void)
+{
+    //static int i = 0;
+    //static int cnt = 0;
+
+    if(tmr_flag_get(TMR12, TMR_OVF_FLAG) != RESET)
+    {
+        tmr_flag_clear(TMR12, TMR_OVF_FLAG);
+
+        debounce();
+#if 0        
+        if (i++ == 1000) {
+            i = 0;
+            cnt++;
+            printf("CNT: %u\r\n");
+        }
+#endif        
+    }
+}
+
+// Пробегает по всему массиву структур цифровых входов.
+// Если режим входа изменился 
+void di_set(void)
+{
+    for (int i = 0; i < DI_NUMBER; i++)
+    {
+        if ((settings.di_mode_bits & (1 << i)) != d_inputs[i].mode) 
+        {
+            d_inputs[i].mode = settings.di_mode_bits & (1 << i);
+            if (d_inputs[i].mode == 0) 
+            {
+                d_inputs[i].cnt = 0;
+                d_inputs[i].p_flag = false;
+                di_cnt[i] = 0;
+            }
+            else
+            {
+                di_state_bit &= ~(1 << i);
+            }
+        }
+    }
+}
+
+//
+uint8_t in_get(uint8_t channel)
+{
+    uint8_t ret = 0;
+    
+    ret = (uint8_t)(di_state_bit >> channel & 1);
+    
+    return  ret;
+}
+
+// Реализация функции антидребезка. Вызывается в прерывании таймера
+void debounce(void)
+{
+    for (int i = 0; i < DI_NUMBER; i++)
+    {
+        if ((d_inputs[i].p_flag) && (d_inputs[i].mode == 0)){
+            if (++d_inputs[i].cnt == settings.di_debounce[i]) {
+                d_inputs[i].cnt = 0;
+                d_inputs[i].p_flag = false;
+                
+                di_state[i] = (uint16_t)gpio_input_data_bit_read(d_inputs[i].port, d_inputs[i].pin);
+                
+                if (!di_state[i]) {
+                    di_state_bit &= ~(1 << i); // снять бит
+                    leds[i].state = LED_OFF;
+                }
+                else {
+                    di_state_bit |= di_state[i] << i;
+                    leds[i].state = LED_ON;
+                }
+            }
+        }
+    }
+}
+
+// Периодический опрос входов и датчиков обрыва нагрузки
+void di_task(void *params)
+{
+    for (;;)
+    {
+        
+        for (int i = 0; i < DI_NUMBER; i++)
+        {
+            // Режим обычного входа
+            if (d_inputs[i].mode == 0)
+            {
+                di_state[i] = (uint16_t)gpio_input_data_bit_read(d_inputs[i].port, d_inputs[i].pin);
+                
+                if (!di_state[i]) {
+                    di_state_bit &= ~(1 << i); // снять бит
+                    leds[i].state = LED_OFF;
+                }
+                else {
+                    di_state_bit |= di_state[i] << i;
+                    leds[i].state = LED_ON;
+                }
+            }
+        }
+        
+       
+        for (int i = 0; i < DI_NUMBER; i++)
+        {                           
+            di_load_state[i] = (uint16_t)gpio_input_data_bit_read(di_load[i].port, di_load[i].pin);
+            
+            // Текущее состояние датчиков нагрузки.
+            if (!di_load_state[i]) {
+                di_load_state_bit &= ~(1 << i);  // снять бит
+            }
+            else {
+                di_load_state_bit |= 1 << i;
+            }
+            
+            // Установка битов достоверности
+            // Если 0 (выход разомкнут), то состояние достоверно и нужно 
+            // выставить соответствующий бит
+            if (!(output_state_bit & (1 << i))) {
+                di_credibility_state_bit |= 1 << i;
+            }
+            else { 
+                di_credibility_state_bit &= ~(1 << i);
+            }  
+        }
+            
+        vTaskDelay(100);
+    }
+}
+
+// IN_8 GPIOA_0
+void EXINT0_IRQHandler(void)
+{
+    if (exint_flag_get(EXINT_LINE_0) != RESET) 
+    {
+        exint_flag_clear(EXINT_LINE_0);
+        if (d_inputs[7].mode == 0)
+            d_inputs[7].p_flag = true;
+        else { 
+            if (d_inputs[7].cnt_flag) {
+                di_cnt[7]++;
+                d_inputs[7].cnt_flag = false;
+            }
+            else
+                d_inputs[7].cnt_flag = true;
+        }
+    }
+}
+
+// IN_7 GPIOA_1
+void EXINT1_IRQHandler(void)
+{
+    if(exint_flag_get(EXINT_LINE_1) != RESET) 
+    {
+        exint_flag_clear(EXINT_LINE_1);
+        if (d_inputs[6].mode == 0)
+            d_inputs[6].p_flag = true;
+        else { 
+            if (d_inputs[6].cnt_flag) {
+                di_cnt[6]++;
+                d_inputs[6].cnt_flag = false;
+            }
+            else
+                d_inputs[6].cnt_flag = true;
+        }
+    }
+}
+
+// IN_6 GPIOA_2
+void EXINT2_IRQHandler(void)
+{
+    if(exint_flag_get(EXINT_LINE_2) != RESET) 
+    {
+        exint_flag_clear(EXINT_LINE_2);
+        if (d_inputs[5].mode == 0)
+            d_inputs[5].p_flag = true;
+        else { 
+            if (d_inputs[5].cnt_flag) {
+                di_cnt[5]++;
+                d_inputs[5].cnt_flag = false;
+            }
+            else
+                d_inputs[5].cnt_flag = true;
+        }
+    }
+}
+
+// IN_5 GPIOA_3
+void EXINT3_IRQHandler(void)
+{
+    if(exint_flag_get(EXINT_LINE_3) != RESET) 
+    {
+        exint_flag_clear(EXINT_LINE_3);
+        if (d_inputs[4].mode == 0)
+            d_inputs[4].p_flag = true;
+        else { 
+            if (d_inputs[4].cnt_flag) {
+                di_cnt[4]++;
+                d_inputs[4].cnt_flag = false;
+            }
+            else
+                d_inputs[4].cnt_flag = true;
+        }
+    }
+}
+
+// IN_1, IN_2, IN_3, IN_4
+void EXINT15_10_IRQHandler(void)
+{
+    // IN_2 GPIOB_10
+    if (exint_flag_get(EXINT_LINE_10) != RESET)  
+    {
+        exint_flag_clear(EXINT_LINE_10);
+        if (d_inputs[1].mode == 0)
+            d_inputs[1].p_flag = true;
+        else { 
+            if (d_inputs[1].cnt_flag) {
+                di_cnt[1]++;
+                d_inputs[1].cnt_flag = false;
+            }
+            else
+                d_inputs[1].cnt_flag = true;
+        }
+    }
+    // IN_1 GPIOB_11
+    else if (exint_flag_get(EXINT_LINE_11) != RESET)  
+    {
+        exint_flag_clear(EXINT_LINE_11);
+        if (d_inputs[0].mode == 0)
+            d_inputs[0].p_flag = true;
+        else { 
+            if (d_inputs[0].cnt_flag) {
+                di_cnt[0]++;
+                d_inputs[0].cnt_flag = false;
+            }
+            else
+                d_inputs[0].cnt_flag = true;
+        }
+    }
+    // IN_3 GPIOE_14
+    else if (exint_flag_get(EXINT_LINE_14) != RESET)  
+    {
+        exint_flag_clear(EXINT_LINE_14);
+        if (d_inputs[2].mode == 0)
+            d_inputs[2].p_flag = true;
+        else { 
+            if (d_inputs[2].cnt_flag) {
+                di_cnt[2]++;
+                d_inputs[2].cnt_flag = false;
+            }
+            else
+                d_inputs[2].cnt_flag = true;
+        }
+    }
+    // IN_4 GPIOE_15
+    else if (exint_flag_get(EXINT_LINE_15) != RESET) 
+    {
+        exint_flag_clear(EXINT_LINE_15);
+        if (d_inputs[3].mode == 0)
+            d_inputs[3].p_flag = true;
+        else { 
+            if (d_inputs[3].cnt_flag) {
+                di_cnt[3]++;
+                d_inputs[3].cnt_flag = false;
+            }
+            else
+                d_inputs[3].cnt_flag = true;
+        }
+    }    
+}

+ 46 - 0
fw/modules/io/digital_input.h

@@ -0,0 +1,46 @@
+#ifndef __DIGITAL_INPUT_H
+#define __DIGITAL_INPUT_H
+
+#include <stdbool.h>
+#include "io.h"
+
+//
+void di_init(void);
+
+//
+void di_base_init(din_t *input);
+
+//
+void di_exti_init(void);
+
+// 
+void di_tim_init(void);
+
+//
+void di_set(void);
+
+//
+uint8_t di_get(uint8_t channel);
+
+//
+void debounce(void);
+
+// Периодический опрос входов и датчиков обрыва нагрузки
+void di_task(void *params);
+
+
+
+extern uint32_t di_cnt[DI_NUMBER];   // счетчики входов
+
+extern uint16_t di_state[DI_NUMBER]; // состояние входа
+extern uint16_t di_state_bit;        // битовое поле
+
+extern uint16_t di_load_state[DO_NUMBER];  // состояние датчиков нагрузки
+extern uint16_t di_load_state_bit;
+
+extern uint16_t di_credibility_state[DO_NUMBER];  // достоверность состояния датчиков нагрузки
+extern uint16_t di_credibility_state_bit;  // достоверность состояния датчиков нагрузки
+
+
+#endif  // __DIGITAL_INPUT_H
+

+ 11 - 0
fw/modules/io/digital_output.c

@@ -0,0 +1,11 @@
+#include "at32f403a_407.h"
+#include "digital_output.h"
+#include "FreeRTOS.h"
+#include "task.h"
+#include "input.h"
+#include "output.h"
+#include "settings_api.h"
+#include "io_utils.h"
+#include "mux.h"
+#include <stdio.h>
+

+ 11 - 0
fw/modules/io/digital_output.h

@@ -0,0 +1,11 @@
+#ifndef __DIGITAL_OUTPUT_H
+#define __DIGITAL_OUTPUT_H
+
+#include <stdbool.h>
+#include "io.h"
+
+
+
+
+#endif  // __DIGITAL_OUTPUT_H
+

+ 0 - 348
fw/modules/io/input.c

@@ -8,359 +8,11 @@
 #include <stdio.h>
 
 
-// *port; pin; mode; port_source; pin_source; deb_counter; p_flag; cnt;
-din_t inputs[DI_NUMBER] = {
-    {GPIOB, GPIO_PINS_11, 0, 0, 0, false, false}, // 1   
-    {GPIOB, GPIO_PINS_10, 0, 0, 0, false, false}, // 2
-    {GPIOE, GPIO_PINS_14, 0, 0, 0, false, false}, // 3 перенесли {GPIOB, GPIO_PINS_1,  1, GPIO_PORT_SOURCE_GPIOB, GPIO_PINS_SOURCE1,  0},
-    {GPIOE, GPIO_PINS_15, 0, 0, 0, false, false}, // 4 перенесли {GPIOB, GPIO_PINS_0,  1, GPIO_PORT_SOURCE_GPIOB, GPIO_PINS_SOURCE0,  0},
-    {GPIOA, GPIO_PINS_3,  0, 0, 0, false, false}, // 5
-    {GPIOA, GPIO_PINS_2,  0, 0, 0, false, false}, // 6
-    {GPIOA, GPIO_PINS_1,  0, 0, 0, false, false}, // 7
-    {GPIOA, GPIO_PINS_0,  0, 0, 0, false, false}  // 8
-};
 
 
-//
-void in_init(din_t *input)
-{
-    gpio_init_type gpio_init_struct;
 
-    gpio_default_para_init(&gpio_init_struct);
-        
-    gpio_init_struct.gpio_pull           = GPIO_PULL_NONE;  
-    gpio_init_struct.gpio_mode           = GPIO_MODE_INPUT;  
-    gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
-    gpio_init_struct.gpio_pins           = input->pin;
-    gpio_init(input->port, &gpio_init_struct);
 
-#if 0    
-    // Вход
-    if (input->mode == 0)
-    {
-        gpio_default_para_init(&gpio_init_struct);
-        
-        gpio_init_struct.gpio_pull           = GPIO_PULL_NONE;  
-        gpio_init_struct.gpio_mode           = GPIO_MODE_INPUT;  
-        gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
-        gpio_init_struct.gpio_pins           = input->pin;
-        gpio_init(input->port, &gpio_init_struct); 
-    }
-    // Счетный вход
-    else if (input->mode == 1)
-    {
-    }
-#endif
-}
 
-//
-void in_exint_init(void)
-{
-    exint_init_type exint_init_struct;
-    
-    gpio_exint_line_config(GPIO_PORT_SOURCE_GPIOB, GPIO_PINS_SOURCE11); // 11
-    gpio_exint_line_config(GPIO_PORT_SOURCE_GPIOB, GPIO_PINS_SOURCE10); // 10
-    gpio_exint_line_config(GPIO_PORT_SOURCE_GPIOE, GPIO_PINS_SOURCE14); // 14
-    gpio_exint_line_config(GPIO_PORT_SOURCE_GPIOE, GPIO_PINS_SOURCE15); // 15
-    gpio_exint_line_config(GPIO_PORT_SOURCE_GPIOA, GPIO_PINS_SOURCE3);  // 3
-    gpio_exint_line_config(GPIO_PORT_SOURCE_GPIOA, GPIO_PINS_SOURCE2);  // 2
-    gpio_exint_line_config(GPIO_PORT_SOURCE_GPIOA, GPIO_PINS_SOURCE1);  // 1
-    gpio_exint_line_config(GPIO_PORT_SOURCE_GPIOA, GPIO_PINS_SOURCE0);  // 0
-    
-    exint_default_para_init(&exint_init_struct);
-    
-    exint_init_struct.line_enable = TRUE;
-    exint_init_struct.line_mode = EXINT_LINE_INTERRUPUT;
-    exint_init_struct.line_select = EXINT_LINE_0 | EXINT_LINE_1 | EXINT_LINE_2 |
-                                    EXINT_LINE_3 | EXINT_LINE_10 | 
-                                    EXINT_LINE_11| EXINT_LINE_14 | EXINT_LINE_15; 
-    
-    exint_init_struct.line_polarity = EXINT_TRIGGER_BOTH_EDGE;
-    exint_init(&exint_init_struct);
-    
-    exint_flag_clear(EXINT_LINE_0);
-    exint_flag_clear(EXINT_LINE_1);
-    exint_flag_clear(EXINT_LINE_2);
-    exint_flag_clear(EXINT_LINE_3);
-    exint_flag_clear(EXINT_LINE_10);
-    exint_flag_clear(EXINT_LINE_11);
-    exint_flag_clear(EXINT_LINE_14);
-    exint_flag_clear(EXINT_LINE_15);
-    
-    nvic_irq_enable(EXINT0_IRQn, 5, 0);
-    nvic_irq_enable(EXINT1_IRQn, 5, 0);
-    nvic_irq_enable(EXINT2_IRQn, 5, 0);
-    nvic_irq_enable(EXINT3_IRQn, 5, 0);
-    nvic_irq_enable(EXINT15_10_IRQn, 5, 0);
-}
 
-//
-void in_set(void)
-{
-    for (int i = 0; i < DI_NUMBER; i++)
-    {
-        if ((settings.di_mode_bits & (1 << i)) != inputs[i].mode) 
-        {
-            inputs[i].mode = settings.di_mode_bits & (1 << i);
-            if (inputs[i].mode == 0) 
-            {
-                inputs[i].cnt = 0;
-                inputs[i].p_flag = false;
-                input_cnt[i] = 0;
-            }
-            else
-            {
-                input_state_bit &= ~(1 << i);
-            }
-        }
-    }
-}
 
-//
-uint8_t in_get(uint8_t channel)
-{
-    uint8_t ret = 0;
-    
-    ret = (uint8_t)(input_state_bit >> channel & 1);
-    
-    return  ret;
-}
 
-//
-void io_test(void)
-{
-#if 0  
-    printf("IN_1: %u IN_2: %u IN_3: %u IN_4: %u IN_5: %u IN_6: %u IN_7: %u IN_8: %u\r\n", 
-           gpio_input_data_bit_read(inputs[0].port, inputs[0].pin),
-           gpio_input_data_bit_read(inputs[1].port, inputs[1].pin),
-           gpio_input_data_bit_read(inputs[2].port, inputs[2].pin),
-           gpio_input_data_bit_read(inputs[3].port, inputs[3].pin),
-           gpio_input_data_bit_read(inputs[4].port, inputs[4].pin),
-           gpio_input_data_bit_read(inputs[5].port, inputs[5].pin),
-           gpio_input_data_bit_read(inputs[6].port, inputs[6].pin), 
-           gpio_input_data_bit_read(inputs[7].port, inputs[7].pin));
-#endif    
-    
-    printf("IN_1: %u IN_2: %u IN_3: %u IN_4: %u IN_5: %u IN_6: %u IN_7: %u IN_8: %u\r\n", 
-           input_cnt[0], input_cnt[1], input_cnt[2], input_cnt[3], 
-           input_cnt[4], input_cnt[5], input_cnt[6], input_cnt[7]);
-    
-}
-
-// Периодический опрос входов
-void input_task(void *params)
-{
-    for (;;)
-    {
-        
-        for (int i = 0; i < DI_NUMBER; i++)
-        {
-            // Режим обычного входа
-            if (inputs[i].mode == 0)
-            {
-                input_state[i] = (uint16_t)gpio_input_data_bit_read(inputs[i].port, inputs[i].pin);
-                
-                if (!input_state[i]) {
-                    input_state_bit &= ~(1 << i); // снять бит
-                    leds[i].state = LED_OFF;
-                }
-                else {
-                    input_state_bit |= input_state[i] << i;
-                    leds[i].state = LED_ON;
-                }
-            }
-        }
-        
-       
-        for (int i = 0; i < DO_NUMBER; i++)
-        {                           
-            load_state[i] = (uint16_t)gpio_input_data_bit_read(load_sens[i].port, load_sens[i].pin);
-            
-            // Текущее состояние датчиков нагрузки.
-            if (!load_state[i]) {
-                load_state_bit &= ~(1 << i);  // снять бит
-            }
-            else {
-                load_state_bit |= 1 << i;
-            }
-            
-            // Установка битов достоверности
-            // Если 0 (выход разомкнут), то состояние достоверно и нужно 
-            // выставить соответствующий бит
-            if (!(output_state_bit & (1 << i))) {
-                credibility_state_bit |= 1 << i;
-            }
-            else { 
-                credibility_state_bit &= ~(1 << i);
-            }  
-        }
-            
-        vTaskDelay(100);
-    }
-}
-
-//
-void debounce(void)
-{
-    for (int i = 0; i < DI_NUMBER; i++)
-    {
-        if ((inputs[i].p_flag) && (inputs[i].mode == 0)){
-            if (++inputs[i].cnt == settings.di_debounce[i]) {
-                inputs[i].cnt = 0;
-                inputs[i].p_flag = false;
-                
-                input_state[i] = (uint16_t)gpio_input_data_bit_read(inputs[i].port, inputs[i].pin);
-                
-                if (!input_state[i]) {
-                    input_state_bit &= ~(1 << i); // снять бит
-                    leds[i].state = LED_OFF;
-                }
-                else {
-                    input_state_bit |= input_state[i] << i;
-                    leds[i].state = LED_ON;
-                }
-            }
-        }
-    }
-}
-
-// IN_8 GPIOA_0
-void EXINT0_IRQHandler(void)
-{
-    if (exint_flag_get(EXINT_LINE_0) != RESET) 
-    {
-        exint_flag_clear(EXINT_LINE_0);
-        if (inputs[7].mode == 0)
-            inputs[7].p_flag = true;
-        else { 
-            if (inputs[7].cnt_flag) {
-                input_cnt[7]++;
-                inputs[7].cnt_flag = false;
-            }
-            else
-                inputs[7].cnt_flag = true;
-        }
-    }
-}
-
-// IN_7 GPIOA_1
-void EXINT1_IRQHandler(void)
-{
-    if(exint_flag_get(EXINT_LINE_1) != RESET) 
-    {
-        exint_flag_clear(EXINT_LINE_1);
-        if (inputs[6].mode == 0)
-            inputs[6].p_flag = true;
-        else { 
-            if (inputs[6].cnt_flag) {
-                input_cnt[6]++;
-                inputs[6].cnt_flag = false;
-            }
-            else
-                inputs[6].cnt_flag = true;
-        }
-    }
-}
-
-// IN_6 GPIOA_2
-void EXINT2_IRQHandler(void)
-{
-    if(exint_flag_get(EXINT_LINE_2) != RESET) 
-    {
-        exint_flag_clear(EXINT_LINE_2);
-        if (inputs[5].mode == 0)
-            inputs[5].p_flag = true;
-        else { 
-            if (inputs[5].cnt_flag) {
-                input_cnt[5]++;
-                inputs[5].cnt_flag = false;
-            }
-            else
-                inputs[5].cnt_flag = true;
-        }
-    }
-}
-
-// IN_5 GPIOA_3
-void EXINT3_IRQHandler(void)
-{
-    if(exint_flag_get(EXINT_LINE_3) != RESET) 
-    {
-        exint_flag_clear(EXINT_LINE_3);
-        if (inputs[4].mode == 0)
-            inputs[4].p_flag = true;
-        else { 
-            if (inputs[4].cnt_flag) {
-                input_cnt[4]++;
-                inputs[4].cnt_flag = false;
-            }
-            else
-                inputs[4].cnt_flag = true;
-        }
-    }
-}
-
-// IN_1, IN_2, IN_3, IN_4
-void EXINT15_10_IRQHandler(void)
-{
-    // IN_2 GPIOB_10
-    if (exint_flag_get(EXINT_LINE_10) != RESET)  
-    {
-        exint_flag_clear(EXINT_LINE_10);
-        if (inputs[1].mode == 0)
-            inputs[1].p_flag = true;
-        else { 
-            if (inputs[1].cnt_flag) {
-                input_cnt[1]++;
-                inputs[1].cnt_flag = false;
-            }
-            else
-                inputs[1].cnt_flag = true;
-        }
-    }
-    // IN_1 GPIOB_11
-    else if (exint_flag_get(EXINT_LINE_11) != RESET)  
-    {
-        exint_flag_clear(EXINT_LINE_11);
-        if (inputs[0].mode == 0)
-            inputs[0].p_flag = true;
-        else { 
-            if (inputs[0].cnt_flag) {
-                input_cnt[0]++;
-                inputs[0].cnt_flag = false;
-            }
-            else
-                inputs[0].cnt_flag = true;
-        }
-    }
-    // IN_3 GPIOE_14
-    else if (exint_flag_get(EXINT_LINE_14) != RESET)  
-    {
-        exint_flag_clear(EXINT_LINE_14);
-        if (inputs[2].mode == 0)
-            inputs[2].p_flag = true;
-        else { 
-            if (inputs[2].cnt_flag) {
-                input_cnt[2]++;
-                inputs[2].cnt_flag = false;
-            }
-            else
-                inputs[2].cnt_flag = true;
-        }
-    }
-    // IN_4 GPIOE_15
-    else if (exint_flag_get(EXINT_LINE_15) != RESET) 
-    {
-        exint_flag_clear(EXINT_LINE_15);
-        if (inputs[3].mode == 0)
-            inputs[3].p_flag = true;
-        else { 
-            if (inputs[3].cnt_flag) {
-                input_cnt[3]++;
-                inputs[3].cnt_flag = false;
-            }
-            else
-                inputs[3].cnt_flag = true;
-        }
-    }    
-}

+ 0 - 20
fw/modules/io/input.h

@@ -7,30 +7,10 @@ extern "C" {
 
 #include "io.h"
 
-
-
-extern din_t inputs[];
-
-//
-void in_init(din_t *input);
-
-//
-void in_exint_init(void);
-
-//
-void in_set(void);
-
-//
-uint8_t in_get(uint8_t channel);
-
 //
 void io_test(void);
 
-//
-void input_task(void *params);
 
-//
-void debounce(void);
 
 #ifdef __cplusplus
 }

+ 2 - 58
fw/modules/io/io.c

@@ -9,15 +9,6 @@
 #include <stdio.h>
 
 
-uint16_t input_state[DI_NUMBER];    // состояние входов
-uint16_t input_state_bit;
-
-uint16_t load_state[DO_NUMBER];     // состояние датчиков нагрузки
-uint16_t load_state_bit;
-
-uint16_t credibility_state[DO_NUMBER];  // достоверность состояния датчиков нагрузки
-uint16_t credibility_state_bit;         // достоверность состояния датчиков нагрузки
-
 
 uint16_t output_state_bit;
 uint16_t output_mode_bit;
@@ -26,11 +17,7 @@ uint16_t output_pwm_save[DO_NUMBER];
 uint16_t output_pwm_period[DO_NUMBER];
 uint16_t output_pwm_period_save[DO_NUMBER];
 
-// -------------------------------------------------------------------------- //
-// Текущие параметры
 
-//uint16_t input_state[DI_NUMBER];     // состояние входа
-uint32_t input_cnt[DI_NUMBER];       // счетчики входов
 
 
 //
@@ -53,6 +40,7 @@ void io_port_enable(void)
 //
 void io_init(void)
 {
+#if 0  
     for (int i = 0; i < DI_NUMBER; i++)
     {
         in_init(&inputs[i]);
@@ -81,52 +69,8 @@ void io_init(void)
         }
         
         out_gpio_init(&outputs[i], i);
-        load_sens_init(&load_sens[i]);
     }
+#endif    
 }
 
-// Таймер для антидребезга
-void io_tim_init(void)
-{
-    crm_clocks_freq_type crm_clocks_freq_struct = {0};
-    
-    crm_clocks_freq_get(&crm_clocks_freq_struct);
-    
-    nvic_irq_disable(TMR8_BRK_TMR12_IRQn);
-    
-    crm_periph_clock_enable(CRM_TMR12_PERIPH_CLOCK, TRUE);
-
-    // 1 Hz
-    tmr_base_init(TMR12, 9, (crm_clocks_freq_struct.ahb_freq / 10000) - 1);
-    tmr_cnt_dir_set(TMR12, TMR_COUNT_UP);
-    
-    NVIC_ClearPendingIRQ(TMR8_BRK_TMR12_IRQn);
-    nvic_irq_enable(TMR8_BRK_TMR12_IRQn, 5, 0);
-    
-    tmr_flag_clear(TMR12, TMR_OVF_FLAG);
-    tmr_interrupt_enable(TMR12, TMR_OVF_INT, TRUE);
-    tmr_counter_value_set(TMR12, 0);
-    tmr_counter_enable(TMR12, TRUE);  
-}
-
-
-void TMR8_BRK_TMR12_IRQHandler(void)
-{
-    //static int i = 0;
-    //static int cnt = 0;
-
-    if(tmr_flag_get(TMR12, TMR_OVF_FLAG) != RESET)
-    {
-        tmr_flag_clear(TMR12, TMR_OVF_FLAG);
-
-        debounce();
-#if 0        
-        if (i++ == 1000) {
-            i = 0;
-            cnt++;
-            printf("CNT: %u\r\n");
-        }
-#endif        
-    }
-}
 

+ 5 - 12
fw/modules/io/io.h

@@ -21,6 +21,11 @@
 
 #define DEBOUNCE_CNT    50
 
+// -------------------------------------------------------------------------- //
+// Аналоговые входы
+#define AI_NUMBER       12  //
+
+
 // Прочие параметры из других модулей для передачи по modbus
 
 //uint32_t uptime;
@@ -76,19 +81,7 @@ typedef struct
 
 
 
-// -------------------------------------------------------------------------- //
-// Текущие параметры
-
-extern uint16_t input_state[DI_NUMBER]; // состояние входа
-extern uint16_t input_state_bit;        // битовое поле
-
-extern uint16_t load_state[DO_NUMBER];  // состояние датчиков нагрузки
-extern uint16_t load_state_bit;
-
-extern uint16_t credibility_state[DO_NUMBER];  // достоверность состояния датчиков нагрузки
-extern uint16_t credibility_state_bit;  // достоверность состояния датчиков нагрузки
 
-extern uint32_t input_cnt[DI_NUMBER];   // счетчики входов
 
 extern uint16_t output_state_bit;
 extern uint16_t output_mode_bit;

+ 0 - 11
fw/modules/io/output.c

@@ -19,17 +19,6 @@ out_t outputs[DO_NUMBER] = {
 };
 
 
-simple_gpio_t load_sens[DO_NUMBER] = {
-    {GPIOD, GPIO_PINS_0},
-    {GPIOD, GPIO_PINS_1},
-    {GPIOC, GPIO_PINS_13},
-    {GPIOC, GPIO_PINS_0},
-    {GPIOC, GPIO_PINS_10},
-    {GPIOD, GPIO_PINS_4},
-    {GPIOE, GPIO_PINS_4},
-    {GPIOC, GPIO_PINS_3}
-};
-
 
 
 //

+ 3 - 2
fw/modules/log/log.c

@@ -8,6 +8,7 @@
 #include "event_groups.h"
 #include "rtc.h"
 #include "settings_api.h"
+#include "digital_input.h"
 #include <string.h>
 #include <stdio.h>
 #include <inttypes.h>
@@ -503,7 +504,7 @@ void archive_task(void *params)
                 DBG printf("Archive event: %u\r\n", (1 << i));
                 
                 entry.timestamp = 0;
-                entry.input_value = in_get(i - 1);
+                entry.input_value = di_get(i - 1);
         
                 DBG printf("Append archive entry...");
                 ret = log_append((void*)&entry, ARCHIVE_ENTRY, i - 1);
@@ -529,7 +530,7 @@ void archive_task(void *params)
         }
         
         entry.timestamp = 0;
-        entry.input_value = (uint8_t)input_state_bit;
+        entry.input_value = (uint8_t)di_state_bit;
         
         DBG printf("Append archive entry...");
         

+ 6 - 5
fw/modules/modbus/modbus_params.c

@@ -5,6 +5,7 @@
 #include "rtc.h"
 #include "input.h"
 #include "output.h"
+#include "digital_input.h"
 #include "log.h"
 #include "settings_api.h"
 #include "common_config.h"
@@ -58,7 +59,7 @@ void mb_init_params(void)
     
     mb_param[index].reg = 0x0100;
 	mb_param[index].size = 1;
-	mb_param[index].param = (uint8_t*)&input_state_bit;  // Текущее состояние входов
+	mb_param[index].param = (uint8_t*)&di_state_bit;  // Текущее состояние входов
 	mb_param[index].set = NULL;
     mb_param[index].get = NULL;
     mb_param[index].check_handler = mb_check_dummy;
@@ -71,7 +72,7 @@ void mb_init_params(void)
     {
         mb_param[index].reg = addr;
         mb_param[index].size = 2;
-        mb_param[index].param = (uint8_t*)&input_cnt[i];  // Счетчик ипульсов
+        mb_param[index].param = (uint8_t*)&di_cnt[i];  // Счетчик ипульсов
         mb_param[index].set = NULL;
         mb_param[index].get = NULL;
         mb_param[index].check_handler = mb_check_dummy;
@@ -118,7 +119,7 @@ void mb_init_params(void)
     // Текущее состояние датчиков нагрузки
     mb_param[index].reg = 0x0130;
 	mb_param[index].size = 1;
-	mb_param[index].param = (uint8_t*)&load_state_bit;
+	mb_param[index].param = (uint8_t*)&di_load_state_bit;
 	mb_param[index].set = NULL;
     mb_param[index].get = NULL;
     mb_param[index].check_handler = mb_check_dummy;
@@ -128,7 +129,7 @@ void mb_init_params(void)
     // Слово достоверности датчиков нагрузки [1 - показания достоверны, 0 - нет]
     mb_param[index].reg = 0x0131;
 	mb_param[index].size = 1;
-	mb_param[index].param = (uint8_t*)&credibility_state_bit;
+	mb_param[index].param = (uint8_t*)&di_credibility_state_bit;
 	mb_param[index].set = NULL;
     mb_param[index].get = NULL;
     mb_param[index].check_handler = mb_check_dummy;
@@ -601,7 +602,7 @@ void get_rtc(uint8_t* buf, uint8_t size)
 //
 mb_delay_action_t mb_set_din_mode(void)
 {
-    in_set();
+    di_set();
     return MB_NO_ACTION;
 }
 

+ 9 - 2
fw/modules/settings/settings_api.h

@@ -99,6 +99,8 @@ typedef struct
 * т.к. контроль целостности всей структуры не имеет смысла
 * (структура настроек всегда будет отличаться внутри основного ПО).
 * В случае повреждения критического сектора, загружаются параметры по умолчанию. */    
+    
+#if defined (MDIO_88)      
     uint16_t    settings_version;   // Версия структуры настроек 
     uint32_t    control_word;       // Слово для контроля целостности структуры настроек
     
@@ -113,13 +115,18 @@ typedef struct
     uint16_t    do_pwm_save[DO_NUMBER]; // значение заполнения ШИМ в безопасном режиме
     uint16_t    do_pwm_period[DO_NUMBER];  // период ШИМ в [0.1с (10..1000)]
     uint16_t    do_pwm_period_save[DO_NUMBER]; // период ШИМ в безопасном режиме [0.1с (10..1000)]
+#endif
+
+#if defined (MAI_12)
+    uint16_t    ai_mode[AI_NUMBER];
+#endif    
+
     
     bool        save_mode;          // безопасный режим, 0 - выкл, 1 - вкл
     uint16_t    save_delay;         // время ожидания опроса (сек.)
-    
+      
     uint16_t    period_archive[ARCH_CH_NUMBER]; // период архивирования
     
-    
 } settings_t;
 
 

+ 2 - 1
fw/modules/testing/soft_test.c

@@ -3,6 +3,7 @@
 #include "FreeRTOS.h"
 #include "task.h"
 #include "input.h"
+#include "digital_input.h"
 #include <stdio.h>
 
 
@@ -15,7 +16,7 @@ void test_hw_task(void *argument)
         printf("\r\n");
         for (uint8_t i = 0; i < 8; i++)
         {
-            printf("Channel: %u, state = %u\r\n", i + 1, in_get(i));
+            printf("Channel: %u, state = %u\r\n", i + 1, di_get(i));
         }
         
 #if 0      

+ 5 - 4
fw/user/main.cpp

@@ -27,6 +27,7 @@ extern "C" {
 #include "rtc.h"
 #include "mb.h"
 #include "io_utils.h"
+#include "digital_input.h"
 #include "buttons.h"
 #include "adc_transport.h"
 #include "shift_reg.h"
@@ -121,9 +122,9 @@ void init_task(void *argument)
 // Цифровые входы/выходы
 
 #if defined (MDIO_88)
-    io_tim_init();
-    //in_exint_init();  
-    xTaskCreate(input_task, "input_task", 2*configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
+    di_init();
+    di_tim_init();
+    xTaskCreate(di_task, "input_task", 2*configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
 #endif
     
 #if defined (MAI_12)    
@@ -168,7 +169,7 @@ void init_task(void *argument)
     
 // -------------------------------------------------------------------------- //    
 // Мультиплексор
-#if 0    
+#if 1    
     mux_gpio_init();
     xTaskCreate(mux_task, "mux_task", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
 #endif    

BIN
output/fw.bin


+ 577 - 578
project/ewarm/iap/iap.dep

@@ -5,641 +5,644 @@
     <configuration>
         <name>Debug</name>
         <outputs>
-            <file>$PROJ_DIR$\..\..\..\shared\utils\extended_sram.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_crm.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfunccoils.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\mb.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_flash.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\mb.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\mux.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_emac.o</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\system\at32f403a_407_clock.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfuncholding.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\list.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\tim_delay.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\utility.o</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_bpr.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_crc.xcl</file>
-            <file>$PROJ_DIR$\..\..\..\iap\modules\settings\settings_api.h</file>
-            <file>$TOOLKIT_DIR$\lib\dl7M_tlf.a</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_xmc.h</file>
-            <file>$PROJ_DIR$\..\..\..\iap\modules\modbus\modbus_params.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbrtu.xcl</file>
-            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\list.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_tmr.xcl</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_rtc.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\event_groups.o</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\cmsis\cm4\core_support\cmsis_iccarm.h</file>
-            <file>$TOOLKIT_DIR$\inc\c\stddef.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfuncother.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\modbus.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\startup_at32f403a_407.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_crm.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\tasks.xcl</file>
-            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\fr_timers.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_clock.o</file>
-            <file>$PROJ_DIR$\..\..\..\shared\utils\utility.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_dac.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_wdt.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\sys_api.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\system_at32f403a_407.xcl</file>
-            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\deprecated_definitions.h</file>
-            <file>$TOOLKIT_DIR$\inc\c\DLib_Product_string.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_adc.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_i2c.xcl</file>
-            <file>$TOOLKIT_DIR$\lib\shb_l.a</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_debug.xcl</file>
-            <file>$TOOLKIT_DIR$\lib\rt7M_tl.a</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbutils.xcl</file>
-            <file>$TOOLKIT_DIR$\inc\c\stdlib.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\portevent.xcl</file>
-            <file>$PROJ_DIR$\..\..\..\iap\modules\modbus\modbus.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\croutine.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_tmr.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_pwc.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_can.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_spi.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\event_groups.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\extended_sram.o</file>
-            <file>$TOOLKIT_DIR$\inc\c\yvals.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbcrc.o</file>
-            <file>$TOOLKIT_DIR$\inc\c\intrinsics.h</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_adc.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\sys_api.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\list.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\sys_hal.xcl</file>
-            <file>$PROJ_DIR$\..\..\..\shared\peripherals\inc\common_gpio.h</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_crm.h</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_usb.h</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_emac.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_misc.o</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_acc.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_i2c.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_emac.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_misc.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_rtc.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_sdio.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_xmc.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_wdt.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\system\at32f403a_407_clock.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_bpr.c</file>
+            <file>$PROJ_DIR$\..\..\..\iap\user\at32f403a_407_int.c</file>
+            <file>$PROJ_DIR$\..\..\..\iap\user\system_at32f403a_407.c</file>
+            <file>$PROJ_DIR$\..\..\..\iap\user\FreeRTOSConfig.h</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\cmsis\cm4\device_support\startup\iar\startup_at32f403a_407.s</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_adc.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_dac.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_flash.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_spi.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_crm.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_tmr.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_usart.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_debug.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_crc.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_usb.c</file>
+            <file>$PROJ_DIR$\..\..\..\iap\user\main.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_exint.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_wwdt.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_can.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_dma.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_pwc.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\cmsis\cm4\device_support\at32f403a_407.h</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_gpio.c</file>
+            <file>$PROJ_DIR$\..\..\..\iap\modules\io\mux.c</file>
+            <file>$PROJ_DIR$\..\..\..\iap\modules\modbus\modbus_params.c</file>
+            <file>$PROJ_DIR$\..\..\..\iap\modules\iap\iap.c</file>
+            <file>$PROJ_DIR$\..\..\..\iap\modules\modbus\modbus.c</file>
+            <file>$PROJ_DIR$\..\..\..\iap\modules\settings\settings_api.c</file>
             <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_pwc.h</file>
+            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\event_groups.h</file>
             <file>$PROJ_DIR$\Debug\Obj\extended_sram.xcl</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_can.h</file>
+            <file>$PROJ_DIR$\..\..\..\shared\wdt\wdt.h</file>
             <file>$TOOLKIT_DIR$\inc\c\DLib_Defaults.h</file>
             <file>$PROJ_DIR$\Debug\Obj\settings_api.o</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_can.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\queue.o</file>
             <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_wwdt.xcl</file>
-            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\FreeRTOS.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_wwdt.o</file>
-            <file>$PROJ_DIR$\..\..\..\shared\wdt\wdt.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\settings_api.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\iap.o</file>
             <file>$PROJ_DIR$\Debug\Obj\heap_4.o</file>
             <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_tmr.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\modbus.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_clock.xcl</file>
+            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\FreeRTOS.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_usart.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\modbus_params.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\settings_api.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_misc.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\sys_api.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\sys_hal.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\event_groups.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\modbus.xcl</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_usb.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\FreeRTOS-openocd.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\rtc.o</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_debug.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_usart.xcl</file>
-            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\event_groups.h</file>
             <file>$PROJ_DIR$\..\..\..\shared\freemodbus\rtu\mbrtu.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_clock.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\queue.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\FreeRTOS-openocd.xcl</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_exint.h</file>
-            <file>$PROJ_DIR$\..\..\..\iap\user\system_at32f403a_407.h</file>
-            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\task.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_acc.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_dma.o</file>
-            <file>$TOOLKIT_DIR$\inc\c\iar_intrinsics_common.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\main.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_usart.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbutils.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfuncdiag.o</file>
-            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\projdefs.h</file>
-            <file>$PROJ_DIR$\..\..\..\iap\modules\io\mux.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\sys_hal.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_emac.xcl</file>
-            <file>$PROJ_DIR$\AT32F403AxG.icf</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_exint.o</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_crm.h</file>
+            <file>$PROJ_DIR$\..\..\..\shared\peripherals\inc\common_gpio.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_wwdt.o</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_emac.h</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_debug.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\list.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\iap.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_can.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\startup_at32f403a_407.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_i2c.xcl</file>
+            <file>$TOOLKIT_DIR$\inc\c\intrinsics.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_dac.o</file>
+            <file>$TOOLKIT_DIR$\lib\rt7M_tl.a</file>
+            <file>$PROJ_DIR$\..\..\..\iap\modules\modbus\modbus.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\portevent.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\croutine.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_tmr.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\sys_api.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\modbus.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\system_at32f403a_407.xcl</file>
+            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\fr_timers.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_pwc.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbutils.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_adc.o</file>
+            <file>$TOOLKIT_DIR$\inc\c\stdlib.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\extended_sram.o</file>
+            <file>$PROJ_DIR$\..\..\..\shared\utils\utility.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_wdt.o</file>
+            <file>$TOOLKIT_DIR$\lib\shb_l.a</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_clock.o</file>
+            <file>$TOOLKIT_DIR$\inc\c\yvals.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbcrc.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\tasks.xcl</file>
+            <file>$TOOLKIT_DIR$\inc\c\DLib_Product_string.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_crm.xcl</file>
+            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\deprecated_definitions.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_spi.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_debug.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\mbfuncinput.xcl</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_wwdt.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfunccoils.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\heap_4.xcl</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_wdt.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfuncfile.o</file>
-            <file>$PROJ_DIR$\Debug\Exe\iap.out</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_sdio.h</file>
             <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_spi.h</file>
             <file>$TOOLKIT_DIR$\inc\c\iccarm_builtin.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfuncdiag.o</file>
+            <file>$PROJ_DIR$\AT32F403AxG.icf</file>
             <file>$PROJ_DIR$\Debug\Obj\mbascii.xcl</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\cmsis\cm4\core_support\core_cm4.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_can.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_dac.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\portasm.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\porttimer.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfuncother.o</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_def.h</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\cmsis\cm4\core_support\cmsis_compiler.h</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfuncother.c</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\include\mbproto.h</file>
-            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\croutine.c</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\port\portevent.c</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\port\portother.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\list.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\fr_timers.c</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfuncholding.c</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\include\mbconfig.h</file>
-            <file>$PROJ_DIR$\..\..\..\shared\board\common.h</file>
-            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\queue.c</file>
-            <file>$PROJ_DIR$\..\..\..\shared\board\common_config.h</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfunccoils.c</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfuncfile.c</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\include\mbfunc.h</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\ascii\mbascii.c</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfuncdiag.c</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfuncdisc.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\portable\IAR\ARM_CM4F\portasm.s</file>
-            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\tasks.c</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbutils.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\FreeRTOS-openocd.c</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\include\mb.h</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\include\mbframe.h</file>
-            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\event_groups.c</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\include\mbport.h</file>
-            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\portable\IAR\ARM_CM4F\portmacro.h</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfuncinput.c</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\port\port.h</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\port\portserial.c</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\port\porttimer.c</file>
-            <file>$PROJ_DIR$\..\..\..\shared\peripherals\src\common_gpio.c</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_pwc.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_sdio.o</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\port\tim_delay.c</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\mb.c</file>
-            <file>$PROJ_DIR$\..\..\..\shared\sys\sys_hal.c</file>
-            <file>$PROJ_DIR$\..\..\..\shared\utils\at32f403a_407_board.c</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_crc.o</file>
-            <file>$PROJ_DIR$\..\..\..\shared\wdt\wdt.c</file>
-            <file>$PROJ_DIR$\..\..\..\iap\modules\iap\iap.h</file>
-            <file>$PROJ_DIR$\..\..\..\shared\rtc\rtc.h</file>
-            <file>$PROJ_DIR$\..\..\..\shared\utils\extended_sram.c</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_gpio.o</file>
-            <file>$PROJ_DIR$\..\..\..\shared\rtc\rtc.c</file>
-            <file>$TOOLKIT_DIR$\inc\c\stdio.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\utility.xcl</file>
-            <file>$PROJ_DIR$\..\..\..\shared\model\model_cfg.h</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\rtu\mbrtu.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\portable.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_board.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\main.xcl</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_crc.h</file>
-            <file>$PROJ_DIR$\..\..\..\shared\sys\sys_api.c</file>
-            <file>$PROJ_DIR$\..\..\..\shared\utils\utility.c</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\ascii\mbascii.h</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\rtu\mbcrc.c</file>
-            <file>$PROJ_DIR$\Debug\Obj\modbus_params.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\wdt.xcl</file>
-            <file>$TOOLKIT_DIR$\inc\c\stdint.h</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\port\tim_delay.h</file>
-            <file>$PROJ_DIR$\..\..\..\shared\utils\at32f403a_407_board.h</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_flash.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_misc.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_spi.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\common_gpio.o</file>
-            <file>$TOOLKIT_DIR$\inc\c\ycheck.h</file>
-            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\StackMacros.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_xmc.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_acc.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\croutine.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfuncdiag.xcl</file>
-            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\queue.h</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_i2c.h</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\cmsis\cm4\core_support\cmsis_version.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfuncfile.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\FreeRTOS-openocd.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_xmc.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_bpr.o</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\cmsis\cm4\core_support\mpu_armv7.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_gpio.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\queue.xcl</file>
-            <file>$PROJ_DIR$\..\..\..\shared\sys\sys_hal.h</file>
-            <file>$TOOLKIT_DIR$\inc\c\stdbool.h</file>
-            <file>$PROJ_DIR$\..\..\..\iap\modules\iap\iap.c</file>
-            <file>$PROJ_DIR$\..\..\..\iap\modules\io\mux.c</file>
-            <file>$PROJ_DIR$\..\..\..\iap\modules\modbus\modbus.c</file>
-            <file>$PROJ_DIR$\..\..\..\iap\modules\modbus\modbus_params.c</file>
-            <file>$PROJ_DIR$\..\..\..\iap\modules\settings\settings_api.c</file>
-            <file>$PROJ_DIR$\..\..\..\iap\user\at32f403a_407_int.c</file>
-            <file>$PROJ_DIR$\..\..\..\iap\user\main.c</file>
-            <file>$PROJ_DIR$\..\..\..\iap\user\system_at32f403a_407.c</file>
-            <file>$PROJ_DIR$\..\..\..\iap\user\FreeRTOSConfig.h</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_emac.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_exint.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_dac.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_flash.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_i2c.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_adc.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_crc.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_gpio.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_dma.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_tmr.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_sdio.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_pwc.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_debug.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_spi.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_usart.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_usb.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_wdt.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_wwdt.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\system\at32f403a_407_clock.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_crm.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\system\at32f403a_407_conf.h</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_misc.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\portable\memmang\heap_4.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_rtc.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_xmc.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_acc.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\portable\IAR\ARM_CM4F\port.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\cmsis\cm4\device_support\startup\iar\startup_at32f403a_407.s</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_bpr.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_can.c</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\cmsis\cm4\device_support\at32f403a_407.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\tasks.o</file>
-            <file>$PROJ_DIR$\..\..\..\shared\peripherals\inc\usart.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_usb.xcl</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_wdt.h</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_exint.h</file>
+            <file>$PROJ_DIR$\..\..\..\iap\user\system_at32f403a_407.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\sys_hal.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_acc.o</file>
+            <file>$TOOLKIT_DIR$\inc\c\iar_intrinsics_common.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_can.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_usart.o</file>
+            <file>$PROJ_DIR$\Debug\Exe\iap.out</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_sdio.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbutils.o</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\cmsis\cm4\core_support\core_cm4.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\porttimer.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\main.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfunccoils.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\portasm.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_emac.xcl</file>
+            <file>$PROJ_DIR$\..\..\..\iap\modules\io\mux.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_dma.o</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_adc.h</file>
+            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\projdefs.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfuncfile.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_exint.o</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_wwdt.h</file>
+            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\task.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_dac.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\common_gpio.o</file>
+            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\StackMacros.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\main.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_misc.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_acc.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_crc.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfuncdiag.xcl</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\ascii\mbascii.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfuncother.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\heap_4.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_pwc.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\utility.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\wdt.xcl</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_crc.h</file>
+            <file>$TOOLKIT_DIR$\inc\c\ycheck.h</file>
+            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\portable.h</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\cmsis\cm4\core_support\cmsis_compiler.h</file>
+            <file>$TOOLKIT_DIR$\inc\c\stdint.h</file>
+            <file>$PROJ_DIR$\..\..\..\shared\rtc\rtc.h</file>
+            <file>$PROJ_DIR$\..\..\..\shared\utils\at32f403a_407_board.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_xmc.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\modbus_params.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_gpio.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_spi.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\croutine.xcl</file>
+            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\queue.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_board.o</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_i2c.h</file>
+            <file>$PROJ_DIR$\..\..\..\iap\modules\iap\iap.h</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_def.h</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_flash.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\port.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\portother.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\portother.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_rtc.xcl</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\rtu\mbcrc.h</file>
             <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_usart.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbascii.o</file>
-            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_dma.h</file>
-            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\croutine.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfuncdisc.xcl</file>
             <file>$PROJ_DIR$\..\..\..\iap\modules\io\io.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_rtc.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\mbrtu.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_rtc.o</file>
+            <file>$TOOLKIT_DIR$\inc\c\DLib_Product.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_adc.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\fr_timers.o</file>
-            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\rtu\mbcrc.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfuncdisc.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\portserial.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\port.o</file>
-            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\semphr.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbascii.o</file>
             <file>$PROJ_DIR$\Debug\Obj\porttimer.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_flash.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfuncdisc.xcl</file>
             <file>$TOOLKIT_DIR$\inc\c\ysizet.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\portother.o</file>
             <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_board.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_adc.xcl</file>
-            <file>$TOOLKIT_DIR$\inc\c\DLib_Product.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfuncholding.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfuncdisc.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_flash.o</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_dma.h</file>
             <file>$PROJ_DIR$\Debug\Obj\mbcrc.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\mux.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\port.xcl</file>
+            <file>$TOOLKIT_DIR$\inc\c\DLib_Config_Full.h</file>
+            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\mpu_wrappers.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\rtc.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_rtc.o</file>
             <file>$PROJ_DIR$\..\..\..\iap\user\at32f403a_407_int.h</file>
             <file>$PROJ_DIR$\Debug\Obj\common_gpio.xcl</file>
             <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_dac.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfuncholding.xcl</file>
+            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\semphr.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\portserial.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\mb.xcl</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_rtc.h</file>
+            <file>$PROJ_DIR$\..\..\..\iap\modules\settings\settings_api.h</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_xmc.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfuncholding.o</file>
+            <file>$TOOLKIT_DIR$\lib\dl7M_tlf.a</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfunccoils.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_crm.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_crc.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_sdio.o</file>
+            <file>$PROJ_DIR$\..\..\..\iap\modules\modbus\modbus_params.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\utility.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_emac.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_usb.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbrtu.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\mux.xcl</file>
+            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\croutine.h</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\cmsis\cm4\core_support\cmsis_iccarm.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\list.xcl</file>
+            <file>$TOOLKIT_DIR$\inc\c\stddef.h</file>
+            <file>$PROJ_DIR$\..\..\..\shared\utils\extended_sram.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfuncother.xcl</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\system\at32f403a_407_clock.h</file>
+            <file>$TOOLKIT_DIR$\inc\c\stdio.h</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_bpr.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_flash.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\tim_delay.o</file>
+            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\list.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\mb.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_tmr.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\event_groups.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\tasks.o</file>
             <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_dma.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfuncfile.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\fr_timers.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\portevent.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_debug.o</file>
             <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_sdio.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\port.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\tim_delay.xcl</file>
-            <file>$TOOLKIT_DIR$\inc\c\DLib_Config_Full.h</file>
-            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\include\mpu_wrappers.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\rtc.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\portother.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_exint.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_int.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\queue.xcl</file>
+            <file>$TOOLKIT_DIR$\inc\c\string.h</file>
             <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_i2c.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\portevent.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_debug.o</file>
-            <file>$PROJ_DIR$\..\..\..\iap\user\main.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\tim_delay.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\wdt.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\fr_timers.xcl</file>
-            <file>$TOOLKIT_DIR$\inc\c\string.h</file>
             <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_acc.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\portserial.o</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\cmsis\cm4\core_support\cmsis_version.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\FreeRTOS-openocd.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_bpr.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_xmc.o</file>
+            <file>$TOOLKIT_DIR$\inc\c\stdbool.h</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\cmsis\cm4\core_support\mpu_armv7.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_exint.xcl</file>
+            <file>$PROJ_DIR$\..\..\..\shared\sys\sys_hal.h</file>
+            <file>$PROJ_DIR$\..\..\..\shared\peripherals\inc\usart.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_gpio.xcl</file>
+            <file>$PROJ_DIR$\..\..\..\iap\user\main.h</file>
+            <file>$PROJ_DIR$\..\..\..\shared\sys\sys_api.c</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\port\tim_delay.h</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\port\portserial.c</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\rtu\mbrtu.c</file>
+            <file>$PROJ_DIR$\..\..\..\shared\wdt\wdt.c</file>
             <file>$TOOLKIT_DIR$\inc\c\DLib_Product_stdlib.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_int.o</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\port\portother.c</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\port\portevent.c</file>
+            <file>$PROJ_DIR$\..\..\..\shared\peripherals\src\common_gpio.c</file>
+            <file>$PROJ_DIR$\..\..\..\shared\rtc\rtc.c</file>
+            <file>$PROJ_DIR$\..\..\..\shared\utils\extended_sram.c</file>
+            <file>$PROJ_DIR$\Debug\Obj\iap.xcl</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\port\porttimer.c</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\rtu\mbcrc.c</file>
+            <file>$PROJ_DIR$\Debug\Obj\portserial.o</file>
             <file>$PROJ_DIR$\Debug\Obj\system_at32f403a_407.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_wdt.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfuncinput.o</file>
             <file>$PROJ_DIR$\..\..\..\shared\sys\sys_api.h</file>
-            <file>$TOOLKIT_DIR$\lib\m7M_tls.a</file>
-            <file>$PROJ_DIR$\Debug\Obj\iap.xcl</file>
             <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_misc.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfuncinput.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_int.o</file>
-            <file>$PROJ_DIR$\Debug\List\iap.map</file>
             <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_bpr.xcl</file>
             <file>$PROJ_DIR$\..\..\..\libs\artery\drivers\inc\at32f403a_407_gpio.h</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\port\tim_delay.c</file>
+            <file>$PROJ_DIR$\..\..\..\shared\model\model_cfg.h</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\mb.c</file>
+            <file>$PROJ_DIR$\..\..\..\shared\utils\at32f403a_407_board.c</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_wdt.xcl</file>
+            <file>$TOOLKIT_DIR$\lib\m7M_tls.a</file>
+            <file>$PROJ_DIR$\..\..\..\shared\sys\sys_hal.c</file>
+            <file>$PROJ_DIR$\..\..\..\shared\utils\utility.c</file>
             <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_usb.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\iap.pbd</file>
+            <file>$PROJ_DIR$\Debug\List\iap.map</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfuncdiag.c</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfuncholding.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\portable\IAR\ARM_CM4F\portmacro.h</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfunccoils.c</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfuncdisc.c</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\include\mb.h</file>
+            <file>$PROJ_DIR$\..\..\..\shared\board\common_config.h</file>
+            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\portable\IAR\ARM_CM4F\port.c</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\include\mbfunc.h</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\include\mbport.h</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfuncfile.c</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\include\mbproto.h</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\ascii\mbascii.c</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\port\port.h</file>
+            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\portable\memmang\heap_4.c</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbutils.c</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfuncinput.c</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\include\mbconfig.h</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\include\mbframe.h</file>
+            <file>$PROJ_DIR$\..\..\..\shared\board\common.h</file>
+            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\event_groups.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\fr_timers.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\portable\IAR\ARM_CM4F\portasm.s</file>
+            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\FreeRTOS-openocd.c</file>
+            <file>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfuncother.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\list.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\artery\system\at32f403a_407_conf.h</file>
+            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\croutine.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\queue.c</file>
+            <file>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\tasks.c</file>
         </outputs>
         <file>
             <name>[ROOT_NODE]</name>
             <outputs>
                 <tool>
                     <name>ILINK</name>
-                    <file> 113 309</file>
+                    <file> 282 114</file>
                 </tool>
             </outputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\Debug\Exe\iap.out</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_acc.c</name>
             <outputs>
                 <tool>
-                    <name>ILINK</name>
-                    <file> 309</file>
+                    <name>ICCARM</name>
+                    <file> 110</file>
+                </tool>
+                <tool>
+                    <name>BICOMP</name>
+                    <file> 136</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
-                    <name>ILINK</name>
-                    <file> 105 94 40 176 204 52 32 164 1 34 293 95 7 106 269 169 291 308 67 51 261 159 190 50 98 312 35 75 203 191 49 23 55 262 202 79 78 61 97 3 254 57 2 100 264 112 9 307 123 260 99 27 82 276 266 121 292 271 299 122 89 83 71 28 36 103 301 250 11 12 295 42 44 304 16</file>
+                    <name>ICCARM</name>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfuncother.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_i2c.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 123</file>
+                    <file> 236</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 26</file>
+                    <file> 71</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 46 192 56 70 285 274 270 300 297 39 154 249 118 185 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 74 25 218 101 175 38 152 58 96 286 93 20 148 151 127 149 134</file>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\croutine.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_emac.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 49</file>
+                    <file> 207</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 196</file>
+                    <file> 122</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 74 25 192 56 70 285 274 270 185 218 101 175 38 152 58 116 96 286 93 20 256</file>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\port\portevent.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_misc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 292</file>
+                    <file> 53</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 47</file>
+                    <file> 135</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 74 25 192 56 70 285 274 270 185 218 101 175 38 152 58 116 96 286 93 20 198 148 154 249 118 200 125 24 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 151 127</file>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\port\portother.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_rtc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 271</file>
+                    <file> 189</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 288</file>
+                    <file> 166</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 46 192 56 70 285 274 270 300 74 25 185 218 101 175 38 152 58 116 96 286 93 20 267 198 148 154 249 118 200 125 24 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 151 127</file>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\list.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_sdio.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 61</file>
+                    <file> 204</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 10</file>
+                    <file> 232</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 46 192 56 70 285 274 270 300 74 25 185 218 101 175 38 152 58 116 96 286 20</file>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\fr_timers.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_xmc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 262</file>
+                    <file> 243</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 296</file>
+                    <file> 152</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 46 192 56 70 285 274 270 300 74 25 185 218 101 175 38 152 58 116 96 286 93 20 198 31</file>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfuncholding.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_wdt.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 9</file>
+                    <file> 89</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 280</file>
+                    <file> 277</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 46 192 56 70 285 274 270 300 297 39 154 249 118 185 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 74 25 218 101 175 38 152 58 96 286 93 20 148 151 127 149 134</file>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\queue.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\system\at32f403a_407_clock.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 89</file>
+                    <file> 91</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 207</file>
+                    <file> 48</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 46 192 56 70 285 274 270 300 297 39 74 25 185 218 101 175 38 152 58 116 96 286 93 20 198</file>
+                    <file> 217 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfunccoils.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_bpr.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 2</file>
+                    <file> 242</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 109</file>
+                    <file> 271</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 46 192 56 70 285 274 270 300 297 39 154 249 118 185 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 74 25 218 101 175 38 152 58 96 286 93 20 148 151 127 149 134</file>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfuncfile.c</name>
+            <name>$PROJ_DIR$\..\..\..\iap\user\at32f403a_407_int.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 112</file>
+                    <file> 257</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 201</file>
+                    <file> 233</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 46 192 56 70 285 274 270 300 297 39 154 249 118 185 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 74 25 218 101 175 38 152 58 96 286 93 20 148 151 127 149 134 171</file>
+                    <file> 190 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\ascii\mbascii.c</name>
+            <name>$PROJ_DIR$\..\..\..\iap\user\system_at32f403a_407.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 254</file>
+                    <file> 267</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 117</file>
+                    <file> 81</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 46 192 56 70 285 274 270 300 297 39 154 249 118 185 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 74 25 218 101 175 38 152 58 96 286 93 20 148 151 127 134 181 149 263</file>
+                    <file> 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfuncdiag.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\cmsis\cm4\device_support\startup\iar\startup_at32f403a_407.s</name>
             <outputs>
                 <tool>
-                    <name>ICCARM</name>
-                    <file> 100</file>
-                </tool>
-                <tool>
-                    <name>BICOMP</name>
-                    <file> 197</file>
+                    <name>AARM</name>
+                    <file> 70</file>
                 </tool>
             </outputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfuncdisc.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_adc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 264</file>
+                    <file> 85</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 257</file>
+                    <file> 172</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 46 192 56 70 285 274 270 300 297 39 154 249 118 185 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 74 25 218 101 175 38 152 58 96 286 93 20 148 151 127 149 134</file>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\portable\IAR\ARM_CM4F\portasm.s</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_dac.c</name>
             <outputs>
                 <tool>
-                    <name>AARM</name>
-                    <file> 121</file>
+                    <name>ICCARM</name>
+                    <file> 73</file>
+                </tool>
+                <tool>
+                    <name>BICOMP</name>
+                    <file> 131</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
-                    <name>AARM</name>
-                    <file> 218</file>
+                    <name>ICCARM</name>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\tasks.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_flash.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 250</file>
+                    <file> 181</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 30</file>
+                    <file> 220</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 46 192 56 70 285 274 270 300 297 39 74 25 185 218 101 175 38 152 58 116 96 286 93 20 31 193 171</file>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbutils.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_spi.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 99</file>
+                    <file> 155</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 45</file>
+                    <file> 98</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 46 192 56 70 285 274 270 300 297 39 154 249 118 185 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 74 25 218 101 175 38 152 58 96 286 93 20 148 151 127</file>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\FreeRTOS-openocd.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_crm.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
@@ -647,1010 +650,1006 @@
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 90</file>
+                    <file> 96</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 74 25 192 56 70 285 274 270 185 218 101 175 38 152 58 116 96 286</file>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\event_groups.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_tmr.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 23</file>
+                    <file> 78</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 54</file>
+                    <file> 224</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 46 192 56 70 285 274 270 300 74 25 185 218 101 175 38 152 58 116 96 286 93 20 31 86</file>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfuncinput.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_usart.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 307</file>
+                    <file> 113</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 107</file>
+                    <file> 50</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 46 192 56 70 285 274 270 300 297 39 154 249 118 185 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 74 25 218 101 175 38 152 58 96 286 93 20 148 151 127 149 134</file>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\port\portserial.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_debug.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 299</file>
+                    <file> 231</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 265</file>
+                    <file> 99</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 187 171 270 74 25 218 101 175 38 152 58 96 286 93 20 148 154 151 127 186 209 102 46 300</file>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\port\porttimer.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_crc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 122</file>
+                    <file> 137</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 268</file>
+                    <file> 203</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 74 25 270 218 101 175 38 152 58 96 286 93 20 154 148 151 127 102 209</file>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\peripherals\src\common_gpio.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_usb.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 191</file>
+                    <file> 281</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 278</file>
+                    <file> 208</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 63 209 74 25 270 218 101 175 38 152 58 96 286 93 20 258</file>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\port\tim_delay.c</name>
+            <name>$PROJ_DIR$\..\..\..\iap\user\main.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 11</file>
+                    <file> 119</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 284</file>
+                    <file> 134</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 186 209 102</file>
+                    <file> 250 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 151 218 177 217 289 49 214 12 126 147 97 285 72 111 187 130 222 157 193 75 63 244 197 248 269 288 296 292 294 123 235 95</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\mb.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_exint.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 3</file>
+                    <file> 128</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 5</file>
+                    <file> 246</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 46 192 56 70 285 274 270 300 297 39 154 249 118 185 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 74 25 218 101 175 38 152 58 96 286 93 20 148 151 127 134 149 140 87</file>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\sys\sys_hal.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_wwdt.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 103</file>
+                    <file> 64</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 62</file>
+                    <file> 45</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 185 192 56 70 285 274 208 303 209 137 249 118 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 135 171 270</file>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\utils\at32f403a_407_board.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_can.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 176</file>
+                    <file> 69</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 272</file>
+                    <file> 112</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 187 171 192 56 70 285 274 270 249 118 185 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\wdt\wdt.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_dma.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 295</file>
+                    <file> 124</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 184</file>
+                    <file> 227</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 76</file>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\utils\extended_sram.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_pwc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55</file>
+                    <file> 83</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 69</file>
+                    <file> 142</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 0 173 209</file>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\rtc\rtc.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_gpio.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 83</file>
+                    <file> 154</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 287</file>
+                    <file> 249</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 167 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 15 209 251 74 25 270 218 101 175 38 152 58 96 286 267 198 303 148 154 93 20 151 127 137 297 39 171</file>
+                    <file> 309 62 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\rtu\mbrtu.c</name>
+            <name>$PROJ_DIR$\..\..\..\iap\modules\io\mux.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 260</file>
+                    <file> 184</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 19</file>
+                    <file> 210</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 46 192 56 70 285 274 270 300 297 39 154 249 118 185 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 74 25 218 101 175 38 152 58 96 286 93 20 148 151 127 87 149 263</file>
+                    <file> 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 123 244 49 214 177 12 126 147 97 285 72 111 187 130 222</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\sys\sys_api.c</name>
+            <name>$PROJ_DIR$\..\..\..\iap\modules\modbus\modbus_params.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 36</file>
+                    <file> 51</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 60</file>
+                    <file> 153</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 185 192 56 70 285 274 303 209 208 15 249 118 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 251 74 25 270 218 101 175 38 152 58 96 286 267 198 148 154 93 20 151 127 137 135 167 297 39 171</file>
+                    <file> 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 205 288 296 49 214 177 12 126 147 97 285 72 111 187 130 222 292 294 75 244 235 95</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\utils\utility.c</name>
+            <name>$PROJ_DIR$\..\..\..\iap\modules\iap\iap.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 12</file>
+                    <file> 68</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 172</file>
+                    <file> 263</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 74 25 192 56 70 285 274 270 185 218 101 175 38 152 58 116 96 286 93 20 198 267 33 277 249 118 200 125 24 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 171 297 39</file>
+                    <file> 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 160 197 244 248 49 214 177 12 126 147 97 285 72 111 187 193 157 269 288 296 130 222 292 294 289 82 38 61 274 218 235 95</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\rtu\mbcrc.c</name>
+            <name>$PROJ_DIR$\..\..\..\iap\modules\modbus\modbus.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 57</file>
+                    <file> 80</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 275</file>
+                    <file> 57</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 154 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 74 25 270 218 101 175 38 152 58 96 286 93 20</file>
+                    <file> 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 289 75 205 288 296 49 214 177 12 126 147 97 285 72 111 187 130 222 292 294 244 61 252 197 248 193 157 269 160 63 82 218 235 95</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\iap\modules\iap\iap.c</name>
+            <name>$PROJ_DIR$\..\..\..\iap\modules\settings\settings_api.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 78</file>
+                    <file> 43</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 305</file>
+                    <file> 52</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 166 15 209 251 74 25 270 218 101 175 38 152 58 96 286 267 198 303 148 154 93 20 151 127 137 31 86 87 173 171 297 39</file>
+                    <file> 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 197 244 248 49 214 177 12 126 147 97 285 72 111 187 193 157 269 288 296 130 222 292 294 289 302 235 95 86 256 218</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\iap\modules\io\mux.c</name>
+            <name>$PROJ_DIR$\Debug\Exe\iap.out</name>
             <outputs>
                 <tool>
-                    <name>ICCARM</name>
-                    <file> 276</file>
-                </tool>
-                <tool>
-                    <name>BICOMP</name>
-                    <file> 6</file>
+                    <name>ILINK</name>
+                    <file> 282</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
-                    <name>ICCARM</name>
-                    <file> 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 102 209 74 25 270 218 101 175 38 152 58 96 286 93 20</file>
+                    <name>ILINK</name>
+                    <file> 104 110 85 158 242 69 91 137 202 73 231 124 207 128 181 154 236 257 53 83 189 204 155 78 113 281 89 64 243 132 77 225 87 173 241 46 68 67 119 223 174 93 201 103 180 127 199 268 140 170 116 80 51 184 163 121 230 164 266 118 44 60 43 70 79 109 267 226 221 206 238 90 74 278 200</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\iap\modules\modbus\modbus.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\sys\sys_api.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 27</file>
+                    <file> 79</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 81</file>
+                    <file> 54</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 137 48 18 148 154 74 25 270 218 101 175 38 152 58 96 286 93 20 151 127 209 87 186 15 251 267 198 303 166 63 31 171 297 39</file>
+                    <file> 149 146 92 42 186 171 269 244 247 197 30 117 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 248 49 214 177 12 126 147 97 285 72 111 187 193 157 288 296 130 222 292 294 289 302 150 235 95 218</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\iap\modules\modbus\modbus_params.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\port\portserial.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 82</file>
+                    <file> 266</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 183</file>
+                    <file> 194</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 18 148 154 74 25 270 218 101 175 38 152 58 96 286 93 20 151 127 48 209 297 39</file>
+                    <file> 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 151 218 177 49 214 12 126 147 97 285 72 111 187 130 222 288 296 292 294 252 244 123 86 256</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\iap\modules\settings\settings_api.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\rtu\mbrtu.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 71</file>
+                    <file> 170</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 77</file>
+                    <file> 209</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 15 209 251 74 25 270 218 101 175 38 152 58 96 286 267 198 303 148 154 93 20 151 127 137 135 297 39 46 300 171</file>
+                    <file> 86 146 92 42 186 171 177 256 235 95 296 30 117 149 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 49 214 12 126 147 97 285 72 111 187 130 222 288 292 294 61 301 167</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\iap\user\at32f403a_407_int.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\wdt\wdt.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 308</file>
+                    <file> 238</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 290</file>
+                    <file> 144</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 277 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 41</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\iap\user\main.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\port\portother.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 97</file>
+                    <file> 164</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 177</file>
+                    <file> 165</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 294 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66 187 171 270 8 137 74 25 218 101 175 38 152 58 96 286 93 20 198 267 48 63 209 15 251 303 148 154 151 127 102 297 39</file>
+                    <file> 86 146 92 42 186 171 177 256 49 214 149 12 126 147 97 285 72 102 111 187 130 222 193 157 288 296 30 117 240 148 212 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 292 294</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\iap\user\system_at32f403a_407.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\port\portevent.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 301</file>
+                    <file> 230</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 37</file>
+                    <file> 76</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 49 214 146 92 42 186 171 177 149 12 126 147 97 285 72 102 111 187 130 222 157 288 296 30 117 240 148 212 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 292 294</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_emac.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\peripherals\src\common_gpio.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 7</file>
+                    <file> 132</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 104</file>
+                    <file> 191</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 63 244 49 214 177 12 126 147 97 285 72 111 187 130 222 169</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_exint.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\rtc\rtc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 106</file>
+                    <file> 60</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 289</file>
+                    <file> 188</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 150 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 197 244 248 49 214 177 12 126 147 97 285 72 111 187 193 157 269 288 296 130 222 292 294 289 235 95 218</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_dac.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\utils\extended_sram.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 34</file>
+                    <file> 87</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 120</file>
+                    <file> 39</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 215 274 244</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_flash.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\port\porttimer.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 269</file>
+                    <file> 118</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 4</file>
+                    <file> 175</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 49 214 177 12 126 147 97 285 72 111 187 130 222 296 288 292 294 123 244</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_i2c.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\rtu\mbcrc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 291</file>
+                    <file> 93</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 41</file>
+                    <file> 183</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 296 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 49 214 177 12 126 147 97 285 72 111 187 130 222</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_adc.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\port\tim_delay.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 40</file>
+                    <file> 221</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 273</file>
+                    <file> 237</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 30 117 149 146 92 42 186 171 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 252 244 123</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_crc.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\mb.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 164</file>
+                    <file> 223</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 14</file>
+                    <file> 195</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 86 146 92 42 186 171 177 256 235 95 296 30 117 149 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 49 214 12 126 147 97 285 72 111 187 130 222 288 292 294 300 301 291 61</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_gpio.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\utils\at32f403a_407_board.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 169</file>
+                    <file> 158</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 206</file>
+                    <file> 178</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 151 218 146 92 42 186 171 177 30 117 149 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_dma.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\sys\sys_hal.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 95</file>
+                    <file> 109</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 281</file>
+                    <file> 55</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 149 146 92 42 186 171 247 269 244 289 30 117 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 302 218 177</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_tmr.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\utils\utility.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 50</file>
+                    <file> 206</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 21</file>
+                    <file> 143</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 49 214 146 92 42 186 171 177 149 12 126 147 97 285 72 102 111 187 130 222 157 193 88 190 30 117 240 148 212 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 218 235 95</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_sdio.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfuncdiag.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 159</file>
+                    <file> 103</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 282</file>
+                    <file> 138</file>
                 </tool>
             </outputs>
-            <inputs>
-                <tool>
-                    <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
-                </tool>
-            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_pwc.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfuncholding.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 51</file>
+                    <file> 199</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 158</file>
+                    <file> 179</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 86 146 92 42 186 171 177 256 235 95 296 30 117 149 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 49 214 12 126 147 97 285 72 111 187 130 222 288 292 294 301 300</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_debug.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfunccoils.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 293</file>
+                    <file> 201</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 43</file>
+                    <file> 120</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 86 146 92 42 186 171 177 256 235 95 296 30 117 149 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 49 214 12 126 147 97 285 72 111 187 130 222 288 292 294 301 300</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_spi.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfuncdisc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 190</file>
+                    <file> 180</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 53</file>
+                    <file> 176</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 86 146 92 42 186 171 177 256 235 95 296 30 117 149 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 49 214 12 126 147 97 285 72 111 187 130 222 288 292 294 301 300</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_usart.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\portable\IAR\ARM_CM4F\port.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 98</file>
+                    <file> 163</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 85</file>
+                    <file> 185</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 72 102 92 42 186 171 111 49 214 146 177 149 12 126 147 97 285 187 130 222</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_usb.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfuncfile.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 312</file>
+                    <file> 127</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 252</file>
+                    <file> 228</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 86 146 92 42 186 171 177 256 235 95 296 30 117 149 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 49 214 12 126 147 97 285 72 111 187 130 222 288 292 294 301 300 218</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_wdt.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\ascii\mbascii.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 35</file>
+                    <file> 174</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 302</file>
+                    <file> 105</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 86 146 92 42 186 171 177 256 235 95 296 30 117 149 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 49 214 12 126 147 97 285 72 111 187 130 222 288 292 294 300 139 301 167</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_wwdt.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\portable\memmang\heap_4.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 75</file>
+                    <file> 46</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 73</file>
+                    <file> 141</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 86 146 92 42 186 171 177 256 49 214 149 12 126 147 97 285 72 102 111 187 130 222</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\system\at32f403a_407_clock.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbutils.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 32</file>
+                    <file> 116</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 88</file>
+                    <file> 84</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 8 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 239 64 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 86 146 92 42 186 171 177 256 235 95 296 30 117 149 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 49 214 12 126 147 97 285 72 111 187 130 222 288 292 294</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_crm.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfuncinput.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 1</file>
+                    <file> 268</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 29</file>
+                    <file> 100</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 86 146 92 42 186 171 177 256 235 95 296 30 117 149 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 49 214 12 126 147 97 285 72 111 187 130 222 288 292 294 301 300</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_misc.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\event_groups.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 67</file>
+                    <file> 225</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 189</file>
+                    <file> 56</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 86 146 92 42 186 171 177 256 49 214 149 12 126 147 97 285 72 102 111 187 130 222 82 38</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\portable\memmang\heap_4.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\fr_timers.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 79</file>
+                    <file> 173</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 110</file>
+                    <file> 229</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 46 192 56 70 285 274 270 300 74 25 185 218 101 175 38 152 58 116 96 286 93 20</file>
+                    <file> 86 146 92 42 186 171 177 256 49 214 149 12 126 147 97 285 72 102 111 187 130 222 157 82</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_rtc.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\portable\IAR\ARM_CM4F\portasm.s</name>
             <outputs>
                 <tool>
-                    <name>ICCARM</name>
-                    <file> 261</file>
-                </tool>
-                <tool>
-                    <name>BICOMP</name>
-                    <file> 259</file>
+                    <name>AARM</name>
+                    <file> 121</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
-                    <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <name>AARM</name>
+                    <file> 12</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_xmc.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\FreeRTOS-openocd.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 203</file>
+                    <file> 241</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 194</file>
+                    <file> 59</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 49 214 146 92 42 186 171 177 149 12 126 147 97 285 72 102 111 187</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_acc.c</name>
+            <name>$PROJ_DIR$\..\..\..\shared\freemodbus\functions\mbfuncother.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 94</file>
+                    <file> 140</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 195</file>
+                    <file> 216</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 86 146 92 42 186 171 177 256 235 95 296 30 117 149 240 148 212 102 245 108 161 309 62 47 196 219 272 159 168 37 40 125 192 101 182 66 162 145 129 106 107 115 198 239 270 58 65 49 214 12 126 147 97 285 72 111 187 130 222 288 292 294 301 300</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\portable\IAR\ARM_CM4F\port.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\list.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 266</file>
+                    <file> 67</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 283</file>
+                    <file> 213</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 58 116 56 70 285 274 96 74 25 192 270 185 218 101 175 38 152 286 93 20</file>
+                    <file> 86 146 92 42 186 171 177 256 49 214 149 12 126 147 97 285 72 102 111 187 222</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\cmsis\cm4\device_support\startup\iar\startup_at32f403a_407.s</name>
+            <name>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\croutine.c</name>
             <outputs>
                 <tool>
-                    <name>AARM</name>
-                    <file> 28</file>
+                    <name>ICCARM</name>
+                    <file> 77</file>
+                </tool>
+                <tool>
+                    <name>BICOMP</name>
+                    <file> 156</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 49 214 146 92 42 186 171 177 149 12 126 147 97 285 72 102 111 187 130 222 211</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_bpr.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\queue.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 204</file>
+                    <file> 44</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 310</file>
+                    <file> 234</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 86 146 92 42 186 171 177 256 235 95 49 214 149 12 126 147 97 285 72 102 111 187 130 222 157</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\..\libs\artery\drivers\src\at32f403a_407_can.c</name>
+            <name>$PROJ_DIR$\..\..\..\libs\thirdparty\freertos\tasks.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 52</file>
+                    <file> 226</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 119</file>
+                    <file> 94</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 239 64 249 118 185 192 56 70 285 274 200 125 24 116 205 92 124 80 22 13 311 199 253 68 72 59 279 115 255 84 188 178 108 111 91 114 17 298 306 65 66</file>
+                    <file> 86 146 92 42 186 171 177 256 235 95 49 214 149 12 126 147 97 285 72 102 111 187 130 222 82 133 218</file>
                 </tool>
             </inputs>
         </file>

Fișier diff suprimat deoarece este prea mare
+ 666 - 625
project/ewarm/module_universal_io.dep


+ 7 - 1
project/ewarm/module_universal_io.ewp

@@ -225,7 +225,7 @@
                     <state>AT_START_F403A_V1</state>
                     <state>PRINTF_STDLIB</state>
                     <state>DEBUG</state>
-                    <state>MAI_12</state>
+                    <state>MDIO_88</state>
                 </option>
                 <option>
                     <name>CCPreprocFile</name>
@@ -2184,6 +2184,12 @@
                 <file>
                     <name>$PROJ_DIR$\..\..\fw\modules\io\analog_input.c</name>
                 </file>
+                <file>
+                    <name>$PROJ_DIR$\..\..\fw\modules\io\digital_input.c</name>
+                </file>
+                <file>
+                    <name>$PROJ_DIR$\..\..\fw\modules\io\digital_output.c</name>
+                </file>
                 <file>
                     <name>$PROJ_DIR$\..\..\fw\modules\io\input.c</name>
                 </file>

+ 6 - 0
project/ewarm/module_universal_io.ewt

@@ -2393,6 +2393,12 @@
                 <file>
                     <name>$PROJ_DIR$\..\..\fw\modules\io\analog_input.c</name>
                 </file>
+                <file>
+                    <name>$PROJ_DIR$\..\..\fw\modules\io\digital_input.c</name>
+                </file>
+                <file>
+                    <name>$PROJ_DIR$\..\..\fw\modules\io\digital_output.c</name>
+                </file>
                 <file>
                     <name>$PROJ_DIR$\..\..\fw\modules\io\input.c</name>
                 </file>

BIN
tools/__pycache__/io_module.cpython-39.pyc


BIN
tools/__pycache__/log_reader.cpython-39.pyc


BIN
tools/__pycache__/mb_registers.cpython-39.pyc


BIN
tools/__pycache__/modbus.cpython-39.pyc


BIN
tools/__pycache__/sys_params.cpython-39.pyc


BIN
tools/__pycache__/updater.cpython-39.pyc


+ 17 - 10
tools/digital_io.py

@@ -97,7 +97,6 @@ class IO_Digital(IO_Module):
         # Значения входов (битовое поле)
         print('Inputs values [bit field] :', Fore.GREEN + self.get_inputs_bit())
 
-        '''
         # Значение счетчиков
         data = self.get_inputs_counters()
         print('Inputs counters           :', Fore.GREEN + ' | '.join(str(el) for el in data))
@@ -110,7 +109,7 @@ class IO_Digital(IO_Module):
 
          # Период антидребезга (ms)
         print('Debounce input (ms)       :', Fore.GREEN + ' | '.join(str(el) for el in self.get_debounce_channels()))
-        '''
+        
 
     def print_loads(self):
         # Значения датчиков нагрузки (битовое поле)
@@ -181,18 +180,26 @@ class IO_DigitalTester:
 def main():
     colorama.init(autoreset=True)
     
-    serial_port = Serial('COM24', 115200, timeout=0.05, parity='N', xonxoff=False)
+    serial_port = Serial('COM56', 115200, timeout=0.05, parity='N', xonxoff=False)
     
     modbus_tester = Modbus(serial_port, 1)
-    dev_tester = IO_Digital(modbus_tester)
+    # dev_tester = IO_Digital(modbus_tester)
+    dio = IO_Digital(modbus_tester)
+
+
+    '''Тесты отдельного модуля DIO'''
+    dio.sys.get_system_vars()
+
+    dio.print_inputs()
+    dio.get_inputs_counters()
 
-    modbus_dut = Modbus(serial_port, 2)
-    dev_dut = IO_Digital(modbus_dut)
+    # modbus_dut = Modbus(serial_port, 2)
+    # dev_dut = IO_Digital(modbus_dut)
 
-    tester = IO_DigitalTester(dev_tester, dev_dut)
+    # tester = IO_DigitalTester(dev_tester, dev_dut)
 
     '''Включить DUT'''
-    tester.dut_switch(True)
+    # tester.dut_switch(True)
 
     '''Запросить системные настройки DUT'''
     # dev_dut.sys.get_system_vars()
@@ -203,8 +210,8 @@ def main():
 
     '''Тестирование выходов и датчиков обрыва нагрузки'''
     # tester.test_load()
-    for i in range(100):
-        tester.get_load()
+    # for i in range(100):
+    #     tester.get_load()
 
 
 

Unele fișiere nu au fost afișate deoarece prea multe fișiere au fost modificate în acest diff