Просмотр исходного кода

Тесты выходов. Рефакторинг.

TelenkovDmitry 1 год назад
Родитель
Сommit
e03e6682d8

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

@@ -4,6 +4,7 @@
 #include "task.h"
 #include "input.h"
 #include "output.h"
+#include "settings_api.h"
 #include <stdio.h>
 
 
@@ -11,6 +12,9 @@ uint16_t input_state[DI_NUMBER];     // состояние входа
 uint16_t input_state_bit;
 
 
+//uint16_t output_state[DO_NUMBER];     // состояние входа
+uint16_t output_state_bit;
+
 // -------------------------------------------------------------------------- //
 // Текущие параметры
 
@@ -44,9 +48,11 @@ void io_init(void)
         in_init(&inputs[i]);
     }
 
-    for (int i = 0; i < OUTPUT_NUMBER; i++)
+    output_state_bit = settings.do_bits;
+    
+    for (int i = 0; i < DO_NUMBER; i++)
     {
-        out_init(&outputs[i]);
+        out_gpio_init(&outputs[i], i);
         load_sens_init(&load_sens[i]);
     }
 }

+ 4 - 2
fw/modules/io/io.h

@@ -17,7 +17,7 @@
 
 // -------------------------------------------------------------------------- //
 // Выходы
-#define OUTPUT_NUMBER   8    // Количество выходов
+#define DO_NUMBER       8    // Количество выходов
 
 #define DEBOUNCE_CNT    50
 
@@ -74,10 +74,12 @@ typedef struct
 // Текущие параметры
 
 extern uint16_t input_state[DI_NUMBER];      // состояние входа
-extern uint16_t input_state_bit;                // битовое поле
+extern uint16_t input_state_bit;             // битовое поле
 
 extern uint32_t input_cnt[DI_NUMBER];       // счетчики входов
 
+extern uint16_t output_state_bit;
+
 //uint16_t output_state[DI_NUMBER];    // состояние выхода, 0 - норма, 1 - обрыв, 2 - КЗ
 
 

+ 29 - 0
fw/modules/io/io_utils.c

@@ -0,0 +1,29 @@
+#include "at32f403a_407.h"
+#include "io_utils.h"
+#include "FreeRTOS.h"
+#include "task.h"
+#include "input.h"
+#include "output.h"
+#include "settings_api.h"
+#include <stdio.h>
+
+
+bool save_mode = false;
+
+//
+void save_mode_init(void)
+{
+    save_mode = settings.save_mode;
+}
+
+//
+void set_save_mode(bool state)
+{
+    save_mode = state;
+}
+
+//
+bool get_save_mode(void)
+{
+    return save_mode;
+}

+ 18 - 0
fw/modules/io/io_utils.h

@@ -0,0 +1,18 @@
+#ifndef __IO_UTILS_H
+#define __IO_UTILS_H
+
+#include <stdbool.h>
+
+
+//
+void save_mode_init(void);
+
+//
+void set_save_mode(bool state);
+
+//
+bool get_save_mode(void);
+
+
+#endif  // __IO_UTILS_H
+

+ 137 - 12
fw/modules/io/output.c

@@ -2,22 +2,24 @@
 #include "output.h"
 #include "FreeRTOS.h"
 #include "task.h"
+#include "settings_api.h"
+#include "io_utils.h"
 #include <stdio.h>
 
 
-out_t outputs[OUTPUT_NUMBER] = {
-    {GPIOC, GPIO_PINS_12, 0},
-    {GPIOD, GPIO_PINS_2,  0},
-    {GPIOE, GPIO_PINS_6,  0},
-    {GPIOC, GPIO_PINS_1,  0},
-    {GPIOC, GPIO_PINS_11, 0},
-    {GPIOD, GPIO_PINS_3,  0},
-    {GPIOE, GPIO_PINS_5,  0},
-    {GPIOC, GPIO_PINS_2,  0}
+out_t outputs[DO_NUMBER] = {
+    {GPIOC, GPIO_PINS_12, 0},   // -
+    {GPIOD, GPIO_PINS_2,  0},   // -
+    {GPIOE, GPIO_PINS_6,  0},   // TMR9_CH2 (remap)
+    {GPIOC, GPIO_PINS_1,  0},   // -
+    {GPIOC, GPIO_PINS_11, 0},   // -
+    {GPIOD, GPIO_PINS_3,  0},   // -
+    {GPIOE, GPIO_PINS_5,  0},   // TMR9_CH1 (remap)
+    {GPIOC, GPIO_PINS_2,  0}    // -
 };
 
 
-simple_gpio_t load_sens[OUTPUT_NUMBER] = {
+simple_gpio_t load_sens[DO_NUMBER] = {
     {GPIOD, GPIO_PINS_0},
     {GPIOD, GPIO_PINS_1},
     {GPIOC, GPIO_PINS_13},
@@ -31,10 +33,11 @@ simple_gpio_t load_sens[OUTPUT_NUMBER] = {
 
 
 //
-void out_init(out_t *out)
+void out_gpio_init(out_t *out, uint8_t index)
 {
     gpio_init_type gpio_init_struct;
 
+    
     // Выход
     if (out->mode == 0)
     {
@@ -47,6 +50,108 @@ void out_init(out_t *out)
         gpio_init_struct.gpio_pins           = out->pin;
         gpio_init(out->port, &gpio_init_struct); 
     }
+    
+    do_update(out, index) ;
+}
+
+//
+void do_set(void)
+{
+    if (output_state_bit == settings.do_bits) 
+        return;
+    
+    // Состояние выхода/выходов изменилось
+    for (int i = 0; i < DO_NUMBER; i++)
+    {
+        if ((settings.do_bits & (1 << i)) != (output_state_bit & (1 << i))) 
+        {
+            do_update(&outputs[i], i);
+        }
+    }
+    
+    // Сохраним новое значение выходов в настройках
+    settings.do_bits = output_state_bit;
+}
+
+// Установка значения на выходе 
+void do_update(out_t *out, uint8_t index)
+{
+    // Режим ШИМ
+    if (settings.do_mode_bits & (1 << index))   
+    {
+        // Безопасный режим включен
+        if (get_save_mode()) {    
+            do_set_pwm(settings.do_pwm_save[index], index);
+        }
+        else {
+            do_set_pwm(settings.do_pwm[index], index);
+        }
+    }
+    // Режим обычного выхода
+    else    
+    {
+        // Безопасный режим включен
+        if (get_save_mode()) {    
+            do_set_out(out, settings.do_save_bits & (1 << index));
+        }
+        else {
+            do_set_out(out, settings.do_bits & (1 << index));
+        }
+    }
+}
+
+//
+void do_set_pwm(uint16_t pwm, uint8_t index)
+{
+    // pass
+}
+
+//
+void do_set_out(out_t *out, uint8_t val)
+{
+    if (val)
+        gpio_bits_set(out->port, out->pin);
+    else
+        gpio_bits_reset(out->port, out->pin);
+}
+
+//
+void out_as_pwm(void)
+{
+    uint32_t timer_period;
+    uint16_t pwm_pulse;
+    crm_clocks_freq_type crm_clocks_freq_struct = {0};
+    tmr_output_config_type tmr_output_struct;
+    
+    crm_periph_clock_enable(CRM_TMR9_PERIPH_CLOCK, TRUE);
+    
+    crm_clocks_freq_get(&crm_clocks_freq_struct);
+    
+    //timer_period = (crm_clocks_freq_struct.sclk_freq / 10 ) - 1;
+    
+    timer_period = 24000 - 1;
+    pwm_pulse = 125*timer_period/1000;
+    
+    tmr_base_init(TMR9, 24000 - 1, 1000 - 1);
+    tmr_cnt_dir_set(TMR9, TMR_COUNT_UP);
+
+    tmr_output_default_para_init(&tmr_output_struct);
+    tmr_output_struct.oc_mode = TMR_OUTPUT_CONTROL_PWM_MODE_A;
+    tmr_output_struct.oc_output_state = TRUE;
+    tmr_output_struct.oc_polarity = TMR_OUTPUT_ACTIVE_HIGH;
+    tmr_output_struct.oc_idle_state = TRUE;
+    
+    tmr_output_channel_config(TMR9, TMR_SELECT_CHANNEL_1, &tmr_output_struct);
+    tmr_channel_value_set(TMR9, TMR_SELECT_CHANNEL_1, pwm_pulse);
+    
+    tmr_flag_clear(TMR9, TMR_OVF_FLAG);
+    nvic_priority_group_config(NVIC_PRIORITY_GROUP_4);
+    nvic_irq_enable(TMR1_BRK_TMR9_IRQn, 5, 0);
+    
+    //tmr_interrupt_enable(TMR9, TMR_OVF_INT, TRUE);
+    tmr_interrupt_enable(TMR9, TMR_C1_INT, TRUE);
+    
+    tmr_counter_enable(TMR9, TRUE);
 }
 
 //
@@ -61,12 +166,13 @@ void load_sens_init(simple_gpio_t *sens)
     gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
     gpio_init_struct.gpio_pins           = sens->pin;
     gpio_init(sens->port, &gpio_init_struct); 
+    
 }
 
 //
 void out_test(void)
 {
-    for (int i = 0; i < OUTPUT_NUMBER; i++)
+    for (int i = 0; i < DO_NUMBER; i++)
     {
         outputs[i].port->odt ^= outputs[i].pin;
         
@@ -84,3 +190,22 @@ void out_test(void)
     }  
 }
 
+
+void TMR1_BRK_TMR9_IRQHandler(void)
+{
+    static uint32_t cnt1 = 0;
+    static uint32_t cnt2 = 0;
+    
+    if (tmr_flag_get(TMR9, TMR_OVF_FLAG) != RESET)
+    {
+        tmr_flag_clear(TMR9, TMR_OVF_FLAG);
+        cnt1++;
+        printf("Cnt1 %u\r\n", cnt1);
+    }
+    else if (tmr_flag_get(TMR9, TMR_C1_INT) != RESET)
+    {
+        tmr_flag_clear(TMR9, TMR_C1_INT);
+        cnt2++;
+        printf("Cnt2 %u\r\n", cnt2);
+    }
+}

+ 16 - 1
fw/modules/io/output.h

@@ -11,7 +11,22 @@ extern simple_gpio_t load_sens[];
 
 
 //
-void out_init(out_t *out);
+void out_gpio_init(out_t *out, uint8_t index);
+
+//
+void do_set(void);
+
+// Установка значения на выходе 
+void do_update(out_t *out, uint8_t index);
+
+//
+void do_set_pwm(uint16_t pwm, uint8_t index);
+
+//
+void do_set_out(out_t *out, uint8_t val);
+
+//
+void out_as_pwm(void);
 
 //
 void load_sens_init(simple_gpio_t *sens);

+ 0 - 1
fw/modules/misc/uptime.c

@@ -45,4 +45,3 @@ void TMR1_OVF_TMR10_IRQHandler(void)
     }
 }
 
-

+ 23 - 4
fw/modules/modbus/modbus_params.c

@@ -46,18 +46,20 @@ void mb_init_params(void)
         index++;
     } 
     
+    // Режим работы входов
     mb_param[index].reg = 0x0120;
 	mb_param[index].size = 1;
-	mb_param[index].param = (uint8_t*)&settings.di_mode_bits;  // Режим работы входов
-	mb_param[index].set = set_din_mode;
+	mb_param[index].param = (uint8_t*)&settings.di_mode_bits;  
+	mb_param[index].set = mb_set_din_mode;
     mb_param[index].get = NULL;
     mb_param[index].check_handler = mb_check_dummy;
     
     index++;
     
+    // Нормальное состояние входов
     mb_param[index].reg = 0x0122;
 	mb_param[index].size = 1;
-	mb_param[index].param = (uint8_t*)&settings.di_norm_state_bits;  // Нормальное состояние входов
+	mb_param[index].param = (uint8_t*)&settings.di_norm_state_bits;  
 	mb_param[index].set = NULL;
     mb_param[index].get = NULL;
     mb_param[index].check_handler = mb_check_dummy;
@@ -78,6 +80,16 @@ void mb_init_params(void)
         addr++;
         index++;
     }
+    
+    // Нормальное состояние входов
+    mb_param[index].reg = 0x0200;
+	mb_param[index].size = 1;
+	mb_param[index].param = (uint8_t*)&output_state_bit;  
+	mb_param[index].set = mb_set_do;
+    mb_param[index].get = NULL;
+    mb_param[index].check_handler = mb_check_dummy;
+    
+    index++;
 }
 
 
@@ -185,12 +197,19 @@ void get_din_mode(uint8_t* buf, uint8_t size)
 // -------------------------------------------------------------------------- //
 
 //
-mb_delay_action_t set_din_mode(void)
+mb_delay_action_t mb_set_din_mode(void)
 {
     in_set();
     return MB_NO_ACTION;
 }
 
+//
+mb_delay_action_t mb_set_do(void)
+{
+    do_set();
+    return MB_NO_ACTION;
+}
+
 //
 mb_delay_action_t mb_set_time(void)
 {

+ 5 - 2
fw/modules/modbus/modbus_params.h

@@ -9,7 +9,7 @@
 #include <stdbool.h>
 
 
-#define MB_PARAM_MAX			19
+#define MB_PARAM_MAX			20
 
 
 //
@@ -57,7 +57,10 @@ bool mb_set_addr_serial(uint8_t *buf, uint8_t *addr);
 mb_delay_action_t mb_set_time(void);
 
 //
-mb_delay_action_t set_din_mode(void);
+mb_delay_action_t mb_set_din_mode(void);
+
+//
+mb_delay_action_t mb_set_do(void);
 
 
 // -------------------------------------------------------------------------- //

+ 19 - 860
fw/modules/settings/settings_api.c

@@ -117,6 +117,12 @@ void settings_set_all_default(void)
     // Дискретные/счетные входы
     settings_din_def(&settings);
     
+    // Выходы
+    settings_do_def(&settings);
+    
+    // Безопасный режим
+    settings.save_mode = 1; 
+    
 #if 0  
     SETTINGS_SetWebParamsDef();
     SETTINGS_SetTempWebParamsDef();
@@ -226,6 +232,19 @@ void settings_din_def(settings_t *settings)
     }
 }
 
+// Выходы
+void settings_do_def(settings_t *settings)
+{
+    settings->do_mode_bits = 0; // режим работы выхода (обычный выход)
+    settings->do_bits = 0;      // последнее сохраненное значение 
+    settings->do_save_bits = 0;
+    
+    for (uint8_t i = 0; i < DO_NUMBER; i++)
+    {
+        settings->do_pwm[i] = 50;
+        settings->do_pwm_save[i] = 50; // значение на выходах в бесопасном режиме работы
+    }
+}
 
 // -------------------------------------------------------------------------- //
 
@@ -289,863 +308,3 @@ void settings_erase_flash_sector(void)
 }
 
 
-#if 0
-
-// Установить параметры сетевого подключения по умолчанию
-void SETTINGS_SetWebParamsDef(void)
-{
-    strcpy(sSettings.sWebParams.ip, "192.168.10.254");
-    strcpy(sSettings.sWebParams.gate, "192.168.10.1");
-    strcpy(sSettings.sWebParams.mask, "255.255.255.0");
-    strcpy(sSettings.sWebParams.dns1, "8.8.8.8");
-    strcpy(sSettings.sWebParams.dns2, "8.8.4.4");
-    sSettings.sWebParams.dhcpEnable = 1;
-}
-
-
-// Установить временные параметры сетевого подключения по умолчанию
-void SETTINGS_SetTempWebParamsDef(void)
-{
-    strcpy(sSettings.sWebTempParams.ip, "192.168.10.254");
-    strcpy(sSettings.sWebTempParams.gate, "192.168.10.1");
-    strcpy(sSettings.sWebTempParams.mask, "255.255.255.0");
-    strcpy(sSettings.sWebTempParams.dns1, "8.8.8.8");
-    strcpy(sSettings.sWebTempParams.dns2, "8.8.4.4");
-    sSettings.sWebTempParams.dhcpEnable = 1;
-}
-
-
-// Установить Информацию об устройстве по умолчанию
-void SETTINGS_SetInfoDef(void)
-{
-#if 0  
-    sys_settings_t *sSys = NULL;
-        
-    sSys = pvPortMalloc(sizeof(*sSys));
-    
-    if (sSys) 
-    {
-        SYS_Load(sSys);
-        strcpy(sSettings.sInfo.mac, sSys->mac);
-        strcpy(sSettings.sInfo.serialNumber, sSys->serial);
-        strcpy(sSettings.sInfo.productionData, sSys->proddate);
-        strcpy(sSettings.sFlags.testState, sSys->testState);
-        vPortFree(sSys);
-    }
-    else 
-    {
-        strcpy(sSettings.sInfo.productionData, "00.00.00 00:00");
-        strcpy(sSettings.sInfo.mac, DEVICE_MAC);
-        strcpy(sSettings.sInfo.serialNumber, DEVICE_SERIAL);
-        memset(sSettings.sFlags.testState, 0, 16);
-    }
-    
-    sSettings.sInfo.id = 0;
-    strcpy(sSettings.sInfo.location, "");
-    strcpy(sSettings.sInfo.owner, "");
-    strcpy(sSettings.sInfo.comments, "");
-    strcpy(sSettings.sInfo.incharge, "");
-#endif    
-}  
-
-/**
-  * @brief  Установить флаги по умолчанию
-  */
-void SETTINGS_SetFlagsDef(void)
-{
-    sSettings.sFlags.netsettingsChanged = false;
-}
-
-/**
-  * @brief  Установить параметры сетевого подключения по умолчанию
-  */
-void SETTINGS_SetEthternetSwitchDef(void)
-{
-    sSettings.sEthernet.Enabled = true;
-    sSettings.sEthernet.prior = 1;
-    strcpy(sSettings.sEthernet.ip_test, "10.254.0.33");
-}
-
-/**
-  * @brief  Установить параметры GSM подключения по умолчанию
-  */
-void SETTINGS_SetGSMDef(void)
-{
-    for(uint8_t i = 0; i < NUM_GSM; i++)
-    {
-        sSettings.sGSM[i].Enabled = true;
-        sSettings.sGSM[i].prior = 0;
-        sSettings.sGSM[i].type_profile = USER;
-        strcpy(sSettings.sGSM[i].ip_test, "10.254.0.33");
-        strcpy(sSettings.sGSM[i].APNaddr, "MDUDPTN");
-        strcpy(sSettings.sGSM[i].APNlogin, "");
-        strcpy(sSettings.sGSM[i].APNpass, "");
-        strcpy(sSettings.sGSM[i].msisdn, "");
-        sSettings.sGSM[i].timeout = 30;
-        sSettings.sGSM[i].period_test = 100;
-        sSettings.sGSM[i].num_bad_connect = 3;
-        sSettings.sGSM[i].modem_mode = AUTOMATIC;
-    }
-    sSettings.sGSM[0].prior = 3;
-    sSettings.sGSM[1].prior = 2;
-}
-
-/**
-  * @brief  Установить параметры SNTP по умолчанию
-  */
-void SETTINGS_SetSntpDef(void)
-{
-    sSettings.sSNTP.sntpEnable = true;
-    strcpy(sSettings.sSNTP.ip1, "10.254.0.50"); 
-    strcpy(sSettings.sSNTP.ip2, "10.254.0.50"); 
-    sSettings.sSNTP.timeZone = 3.0;  
-    strcpy(sSettings.sSNTP.data, "none");
-}
-
-/**
-  * @brief  Установить параметры подключения к серверу по умолчанию
-  */
-void SETTINGS_SetServerParamsDef(void)
-{
-    strcpy(sSettings.sServer.ip, "10.254.0.69");
-    sSettings.sServer.port = 1884;
-    sSettings.sServer.serverEnable = true;
-    sSettings.sServer.controlConnect = true;
-}
-
-/**
-  * @brief  Установить параметры PROXY по умолчанию
-  */
-void SETTINGS_SetProxyParamsDef(void)
-{
-    strcpy(sSettings.sProxy.ip, "79.135.245.84");
-    sSettings.sProxy.port = 55679;
-    sSettings.sProxy.local_port = 0;
-}
-
-/**
-  * @brief  Установить значение настроек прозрачного порта по умолчанию
-  */
-void SETTINGS_SetPortGwDef(void)
-{
-    for(uint8_t i = 0; i < NUM_PORTGW; i ++)
-    {
-        sSettings.sPortGw[i].enableDispatch = false;    // Параллельная диспетчеризация (Вкл./Выкл.)
-        sSettings.sPortGw[i].type_port = ACCOUNT_METER; // Тип порта (Модем / Прибор учета)
-        sSettings.sPortGw[i].connect_port = 2;          // Связанный порт (#1-#3)
-        strcpy(sSettings.sPortGw[i].description, "");   // Описание
-        sSettings.sPortGw[i].enabled = true;            // Вкл/Откл 
-        sSettings.sPortGw[i].transtype = GW_TCP;        // Тип транспорта (TCP/UDP)
-        sSettings.sPortGw[i].mode = GW_SERVER;          // Режим: Клиент/Сервер 
-        strcpy(sSettings.sPortGw[i].ip, "192.168.1.2"); // IP-адрес сервера (для клиента) 
-        sSettings.sPortGw[i].port = 1001;               // Порт 
-        sSettings.sPortGw[i].rs_mode = RS_485_1;        // Режим (RS-232/RS-485)
-        sSettings.sPortGw[i].uart_set.baud = BRD_9600;  // Скорость порта
-        sSettings.sPortGw[i].uart_set.parity = NO_PAR;  // Четность 
-        sSettings.sPortGw[i].uart_set.databits = DATABITS_8;  // Число бит данных
-        sSettings.sPortGw[i].uart_set.stopbits = STOP_1;      // Число стоп-бит
-    }  
-
-    sSettings.sPortGw[0].rs_mode = RS_232_1;
-    sSettings.sPortGw[0].port = 1001;
-    sSettings.sPortGw[0].connect_port = 1;
-    
-    sSettings.sPortGw[1].rs_mode = RS_485_1;
-    sSettings.sPortGw[1].port = 1002;
-    sSettings.sPortGw[1].connect_port = 2;
-    sSettings.sPortGw[1].enabled = false;
-    
-    sSettings.sPortGw[2].rs_mode = RS_232_2;
-    sSettings.sPortGw[2].port = 1003;
-    sSettings.sPortGw[2].connect_port = 0;
-    sSettings.sPortGw[2].enabled = false;
-}
-
-/**
-  * @brief  Установить значение системы параллельной диспетчеризации по умолчанию
-  */
-void SETTINGS_SetPSDDef(void)
-{
-    sSettings.sPSD.enabled = false;
-    sSettings.sPSD.mux_mode = PSD_MODE_7;
-    sSettings.sPSD.rs_mode = RS_232_1;
-    sSettings.sPSD.web_port = 0;
-    sSettings.sPSD.assd_timeout = 120;
-}
-
-/**
-  * @brief  Установить значение пароля по умолчанию
-  */
-void SETTINGS_SetServiceDef(void)
-{
-    sSettings.sAuth[0].level = ADMIN;
-    strcpy(sSettings.sAuth[0].login, "user");
-    //"b26b1868 705a3f0a a82cbd79 7cd58b4e" uchetmo
-    *(uint32_t *)sSettings.sAuth[0].hash        = 0x68186bb2;
-    *(uint32_t *)(sSettings.sAuth[0].hash + 4)  = 0x0a3f5a70;
-    *(uint32_t *)(sSettings.sAuth[0].hash + 8)  = 0x79bd2ca8;
-    *(uint32_t *)(sSettings.sAuth[0].hash + 12) = 0x4e8bd57c;
-}
-
-/**
-  * @brief  Сброс всех настроек в значения по умолчанию кроме сетевых настроек
-  */
-void SETTINGS_SetPartDefault(void)
-{
-    SETTINGS_SetFlagsDef();
-    
-    SETTINGS_SetEthternetSwitchDef();
-    SETTINGS_SetWebParamsDef();
-    SETTINGS_SetTempWebParamsDef();
-    SETTINGS_SetGSMDef();
-    SETTINGS_SetSntpDef();
-    SETTINGS_SetServerParamsDef();
-    SETTINGS_SetProxyParamsDef();
-    SETTINGS_SetPortGwDef();
-    SETTINGS_SetPSDDef();
-    
-    sSettings.settVer = SETTINGS_VERSION;
-    
-    sSettings.CritSecCRC = settings_get_crit_sec_crc();
-    
-    sSettings.controlWorld = SETTINGS_CONTROL_WORD;
-}
-  
-
-#endif
-
-
-
-#if 0
-/**
-  * @brief  
-  */
-
-
-
-
-
-
-/**
-  * @brief   Сброс флага boottry в регистре RTC
-  */
-void SETTINGS_ResetBootTry(void)
-{
-    uint8_t bootTry = (uint8_t)bpr_data_read(BPR_DATA2);
-#if 0    
-    if (bootTry > 0 )
-    {
-        bootTry = 0;
-        bpr_data_write(BPR_DATA2, 0);
-    
-        // Check FW update flag
-        if (bpr_data_read(BPR_DATA3)) {
-            log_add_record(UPDATED_FW, 0);
-            // Clear FW update flag
-            bpr_data_write(BPR_DATA3, 0);
-        }
-    }
-#endif    
-}
-
-/**
-  * @brief  Преобразует mac адрес строкового формата в массив uint8_t
-  * @param  mac - буфер для вывода mac адреса
-  */
-void SETTINGS_GetMac(uint8_t *mac)
-{
-    char dummy[2];
-    char *macPtr = sSettings.sInfo.mac;	
-  
-    for (uint8_t i = 0; i < 6; i++)
-    {
-        strncpy(dummy, macPtr+i*3, 2);
-        mac[i] = (uint8_t)strtol(dummy, NULL, 16);
-    }
-}
-
-/**
-  * @brief  Установить дату производства
-  */
-void SETTINGS_SetProDate(char *proDate, uint8_t len)
-{
-#if 0  
-    sys_settings_t *sSys = NULL;
-    
-    sSys = pvPortMalloc(sizeof(*sys_settings_t));
-    if (sSys) 
-    {
-        SYS_Load(sSys);
-        strcpy(sSys->proddate, proDate);
-        sys_save(sSys);
-        memset(sSettings.sInfo.productionData, 0, 40);
-        memcpy(sSettings.sInfo.productionData, proDate, len);
-        vPortFree(sSys);
-        //SETTINGS_Save();
-    }
-#endif
-}
-
-/**
-  * @brief  Установить серийный номер
-  */
-void SETTINGS_SetSerialNumber(char *sn, uint8_t len)
-{
-#if 0  
-    sys_settings_t *sSys = NULL;
-    
-    sSys = pvPortMalloc(sizeof(*sSys));
-    if (sSys) 
-    {
-        SYS_Load(sSys);
-        strcpy(sSys->serial, sn);
-        sys_save(sSys);
-        memset(sSettings.sInfo.serialNumber, 0, 16);
-        memcpy(sSettings.sInfo.serialNumber, sn, len);
-        vPortFree(sSys);
-        //SETTINGS_Save();
-    }
-#endif
-}
-
-/**
-  * @brief  Установить MAC
-  */
-void SysSETTINGS_SetMAC(char *mac, uint8_t len)
-{
-#if 0  
-    sys_settings_t *sSys = NULL;
-    
-    sSys = pvPortMalloc(sizeof(*sSys));
-    if (sSys) 
-    {
-        SYS_Load(sSys);
-        strcpy(sSys->mac, mac);
-        sys_save(sSys);
-        memset(sSettings.sInfo.mac, 0, 18);
-        memcpy(sSettings.sInfo.mac, mac, len);
-        vPortFree(sSys);
-        //SETTINGS_Save();
-    }
-#endif    
-}
-
-/**
-  * @brief  Установить статус тестирования
-  */
-void SETTINGS_StatusTest(char *status, uint8_t len)
-{
-#if 0  
-    SYS_t *sSys = NULL;
-    
-    sSys = pvPortMalloc(sizeof(*sSys));
-    if (sSys) 
-    {
-        SYS_Load(sSys);
-        strcpy(sSys->testState, status);
-        sys_save(sSys);
-        memset(sSettings.sFlags.testState, 0, 16);
-        memcpy(sSettings.sFlags.testState, status, len);
-        vPortFree(sSys);
-        SETTINGS_Save();
-    }
-#endif
-}
-
-/**
-  * @brief  Установить статус тестирования "T2OK"
-  */
-void SETTINGS_SetT2OK(void)
-{
-#if 0  
-    SYS_t *sSys = NULL;
-    
-    sSys = pvPortMalloc(sizeof(*sSys));
-    if (sSys) 
-    {
-        SYS_Load(sSys);
-        
-        //SETTINGS_SetEthternetSwitchDef(); // TODO временное решение
-        
-        memset(sSettings.sFlags.testState, 0, 16);
-        memcpy(sSettings.sFlags.testState, "T2OK", 4);
-        strcpy(sSys->testState, sSettings.sFlags.testState);
-        sys_save(sSys);
-        vPortFree(sSys);
-        SETTINGS_Save();
-    }
-#endif    
-}
-
-
-/**
-  * @brief  Сбросить статус тестирования "T2OK"
-  */
-void SETTINGS_ResetT2OK(void)
-{
-#if 0  
-    SYS_t *sSys = NULL;
-    
-    sSys = pvPortMalloc(sizeof(*sSys));
-    if (sSys) 
-    {
-        SYS_Load(sSys);
-        
-        SETTINGS_SetEthternetSwitchDef(); // TODO временное решение
-        
-        memset(sSettings.sFlags.testState, 0, 16);
-        strcpy(sSys->testState, sSettings.sFlags.testState);
-        sys_save(sSys);
-        vPortFree(sSys);
-        SETTINGS_Save();
-    }
-#endif    
-}
-
-
-/**
-  * @brief  Устанавливает mac адрес исходя из unique id
-  */
-void COM_SetTestMAC(void)
-{
-    uint8_t octet1 = 0;
-    uint8_t octet2 = 0;
-    uint8_t octet3 = 0;
-    uint8_t octet4 = 0;
-    uint8_t octet5 = 0;
-
-    char AT_ID_HEX[12];
-    uint8_t hash[16];
-    
-    GetAT32IDInt(AT_ID_HEX);
-    
-    md5hash(hash, (unsigned char*)AT_ID_HEX, sizeof(AT_ID_HEX));
-    
-    octet1 = hash[0];
-    octet2 = hash[1];
-    octet3 = hash[2];
-    octet4 = hash[3];
-    octet5 = hash[4];
-    /* Устанавливаем MAC, но не сохраняем */
-    //snprintf(sSettings.sInfo.mac, MAC_LEN, "%02X-%02X-%02X-%02X-%02X-00", octet1 & 0xFE, octet2, octet3, octet4, octet5);
-}
-
-/**
-  * @brief  Включить DHCP
-  */
-void SETTINGS_SetDHCPOn(void)
-{
-    sSettings.sWebTempParams.dhcpEnable = 1;
-}
-
-//
-void SETTINGS_Print(void)
-{
-    printf("\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n");
-    printf("   Общие настройки для bootloader и FW");
-    printf("\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\n");
-    
-    printf("Сетевые настройки:\r\n");
-    
-    printf("\tIP: ");
-    printf("%s\r\n", sSettings.sWebParams.ip);
-    
-    printf("\tGate: ");
-    printf("%s\r\n", sSettings.sWebParams.gate);
-    
-    printf("\tMask: ");
-    printf("%s\r\n", sSettings.sWebParams.mask);
-    
-    printf("\tDNS1: ");
-    printf("%s\r\n", sSettings.sWebParams.dns1);
-    
-    printf("\tDNS2: ");
-    printf("%s\r\n", sSettings.sWebParams.dns2);
-    
-    if (sSettings.sWebParams.dhcpEnable)
-        printf("\tDHCP: On\r\n");
-    else
-        printf("\tDHCP: Off\r\n");
-        
-// -------------------------------------------------------------------------- //        
-  
-    printf("\r\nИнформация об устройстве:\r\n");
-    
-    printf("\tID: ");
-    printf("%u\r\n", sSettings.sInfo.id);
-    
-    printf("\tДата производства: ");
-    printf("%s\r\n", sSettings.sInfo.productionData);
-    
-    printf("\tMAC: ");
-    printf("%s\r\n", sSettings.sInfo.mac);
-    
-    printf("\tСерийный номер: ");
-    printf("%s\r\n", sSettings.sInfo.serialNumber);
-    
-    printf("\tВладелец: ");
-    printf("%s\r\n", sSettings.sInfo.owner);
-    
-    printf("\tАдрес: ");
-    printf("%s\r\n", sSettings.sInfo.location);
-    
-    printf("\tКомментарии: ");
-    printf("%s\r\n", sSettings.sInfo.comments);
-    
-    printf("\tОтветственное лицо: ");
-    printf("%s\r\n", sSettings.sInfo.incharge);
-    
-// -------------------------------------------------------------------------- //    
-    
-    for (uint8_t i = 0; i < NUM_GSM; i++)
-    {
-        printf("\r\nНастройки GSM модема:\r\n");
-        printf("Профиль GSM %u:\r\n", i + 1);
-        
-        if (sSettings.sGSM[i].Enabled)
-            printf("\tChannel: On\r\n");
-        else
-            printf("\tChannel: Off\r\n");
-          
-        printf("\tПриоритет: %u\r\n", sSettings.sGSM[i].prior);
-       
-        switch (sSettings.sGSM[i].type_profile)
-        {
-            case BEELINE :
-                printf("\tТип профиля: BEELINE\r\n");
-            break;
-            case MTS :
-                printf("\tТип профиля: MTS\r\n");
-            break;
-            case MEGAFON :
-                printf("\tТип профиля: MEGAFON\r\n");
-            break;
-            case TELE2 :
-                printf("\tТип профиля: TELE2\r\n");
-            break;
-            case USER :
-                printf("\tТип профиля: USER\r\n");
-            break;
-        }
-        
-        printf("\tAPN: %s\r\n", sSettings.sGSM[i].APNaddr);
-        printf("\tAPN логин: %s\r\n", sSettings.sGSM[i].APNlogin);
-        printf("\tAPN пароль: %s\r\n", sSettings.sGSM[i].APNpass);
-        printf("\tIP для проверки связи: %s\r\n", sSettings.sGSM[i].ip_test);
-        printf("\tНомер SIM карты: %s\r\n", sSettings.sGSM[i].msisdn);
-        printf("\tТаймаут ожидания ответа: %u, с\r\n", sSettings.sGSM[i].timeout);
-        printf("\tВремя проверки каналов связи: %u\r\n", sSettings.sGSM[i].period_test);
-        printf("\tКоличество неудачных попыток: %u\r\n", sSettings.sGSM[i].num_bad_connect);
-        printf("\tРежим работы GSM модема: ");
-        
-        switch (sSettings.sGSM[i].modem_mode)
-        {
-            case AUTOMATIC :
-                printf("Automatic\r\n");
-            break;
-            
-            case GSM_3G :
-                printf("GSM + 3G\r\n");
-            break;
-            
-            case LTE :
-                printf("LTE only\r\n");
-            break;
-            
-            case WCDMA :
-                printf("3G only\r\n");
-            break;
-            
-            case GSM :
-                printf("GSM only\r\n");
-            break;
-        }
-        
-    }
-    
-// -------------------------------------------------------------------------- //        
-    
-    printf("\r\nCRC критической секции: %X\r\n", sSettings.CritSecCRC);
-    
-// -------------------------------------------------------------------------- //    
-    
-    printf("\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n");
-    printf("   Секция настрок для FW");
-    printf("\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\n");
-    
-// -------------------------------------------------------------------------- //        
-    
-    printf("\r\nФлаги:\r\n");
-    
-    printf("\tИзменение сетевых настроек: %u\r\n", sSettings.sFlags.netsettingsChanged);
-    printf("\tСтатус тестирования: %s\r\n", sSettings.sFlags.testState);
-    
-// -------------------------------------------------------------------------- //        
-    
-    printf("\r\nEthernet канал:\r\n");
-    
-    if (sSettings.sEthernet.Enabled)
-        printf("\tКанал: вкл\r\n");
-    else
-        printf("\tКанал: выкл\r\n");
-
-    printf("\tПриоритет: %u\r\n", sSettings.sEthernet.prior);
-    printf("\tIP для проверки связи: %s\r\n", sSettings.sEthernet.ip_test);
-    
-// -------------------------------------------------------------------------- //
-    
-    printf("\r\nСервер:\r\n");
-    
-    if (sSettings.sServer.serverEnable)
-        printf("\tСервер: вкл\r\n");
-    else
-        printf("\tСервер: выкл\r\n");
-    
-    printf("\tIP: %s\r\n", sSettings.sServer.ip);
-    printf("\tPort: %u\r\n", sSettings.sServer.port);
-    
-    if (sSettings.sServer.controlConnect)
-        printf("\tКонтроль соединения: вкл\r\n");
-    else
-        printf("\tКонтроль соединения: выкл\r\n");
-    
-// -------------------------------------------------------------------------- //    
-    
-    printf("\r\nProxy:\r\n");
-    
-    printf("\tIP: %s\r\n", sSettings.sProxy.ip);
-    printf("\tPort: %u\r\n", sSettings.sProxy.port);
-    printf("\tLocal port: %u\r\n", sSettings.sProxy.local_port);
-    
-// -------------------------------------------------------------------------- //        
-
-    for (uint8_t i = 0; i < MAX_WEB_USERS; i++)
-    {
-        printf("\r\nНастройки аутентификации пользователя %u:\r\n", i + 1);
-
-        switch (sSettings.sAuth[i].level)
-        {
-            case FACTORY :
-                printf("\tУровень пользователя: FACTORY\r\n");
-            break;
-            case ADMIN :
-                printf("\tУровень пользователя: ADMIN\r\n");
-            break;
-        }
-    
-        printf("\tlogin: %s\r\n", sSettings.sAuth[i].login);
-        printf("\thash: %X\r\n", sSettings.sAuth[i].hash);
-    }
-    
-// -------------------------------------------------------------------------- //        
-    
-    for (uint8_t i = 0; i < NUM_PORTGW; i++)
-    {
-        printf("\r\nНастройки прозрачного порта %u:\r\n", i + 1);
-        
-        if (sSettings.sPortGw[i].enableDispatch)
-            printf("\tПараллельная диспетчеризация: вкл\r\n");
-        else
-            printf("\tПараллельная диспетчеризация: выкл\r\n");
-        
-        if (sSettings.sPortGw[i].enabled)
-            printf("\tПрозрачный порт: вкл\r\n");
-        else
-            printf("\tПрозрачный порт: выкл\r\n");
-        
-        switch (sSettings.sPortGw[i].type_port)
-        {
-            case MODEM :
-                printf("\tТип порта: Модем\r\n");
-            break;
-            case ACCOUNT_METER :
-                printf("\tТип порта: Прибор учета\r\n");
-            break;
-        }
-        
-        printf("\tСвязанный порт %u:\r\n", sSettings.sPortGw[i].connect_port);
-        printf("\tОписание: %s\r\n", sSettings.sPortGw[i].description);
-        
-        
-        switch (sSettings.sPortGw[i].transtype)
-        {
-            case GW_UDP :
-                printf("\tТип транспорта: UDP\r\n");
-            break;
-            case GW_TCP :
-                printf("\tТип транспорта: TCP\r\n");
-            break;
-        }
-        
-        switch (sSettings.sPortGw[i].mode)
-        {
-            case GW_SERVER :
-                printf("\tРежим: сервер\r\n");
-            break;
-            case GW_CLIENT :
-              printf("\tРежим: клиент\r\n");
-            break;
-        }
-        
-        printf("\tIP сервера (режим клиента): %s\r\n", sSettings.sPortGw[i].ip);
-        printf("\tПорт: %u\r\n", sSettings.sPortGw[i].port);
-        
-        switch (sSettings.sPortGw[i].rs_mode)
-        {
-            case RS_232_1 :
-                printf("\tРежим (RS-232/RS-485): RS_232_1\r\n");
-            break;
-            case RS_232_2 :
-                printf("\tРежим (RS-232/RS-485): RS_232_2\r\n");
-            break;
-            case RS_232_3 :
-                printf("\tРежим (RS-232/RS-485): RS_232_3\r\n");
-            break;
-            case RS_485_1 :
-                printf("\tРежим (RS-232/RS-485): RS_485_1\r\n");
-            break;
-            case RS_485_2 :
-                printf("\tРежим (RS-232/RS-485): RS_485_2\r\n");
-            break;
-        }
-                
-        switch (sSettings.sPortGw[i].uart_set.baud)
-        {
-            case BRD_1200 :
-                printf("\tBaudrate: 1200\r\n");
-            break;
-            case BRD_2400 :
-                printf("\tBaudrate: 2400\r\n");
-            break;
-            case BRD_4800 :
-                printf("\tBaudrate: 4800\r\n");
-            break;
-            case BRD_9600 :
-                printf("\tBaudrate: 9600\r\n");
-            break;
-            case BRD_19200 :
-                printf("\tBaudrate: 19200\r\n");
-            break;
-            case BRD_38400 :
-                printf("\tBaudrate: 38400\r\n");
-            break;
-            case BRD_57600 :
-                printf("\tBaudrate: 57600\r\n");
-            break;
-            case BRD_115200 :
-                printf("\tBaudrate: 115200\r\n");
-            break;
-            case BRD_230400 :
-                printf("\tBaudrate: 230400\r\n");
-            break;
-            case BRD_460800 :
-                printf("\tBaudrate: 460800\r\n");
-            break;
-        }
-
-        switch (sSettings.sPortGw[i].uart_set.databits)
-        {
-            case DATABITS_7 :
-                printf("\tData bits: 7\r\n");
-            break;
-            case DATABITS_8 :
-                printf("\tData bits: 8\r\n");
-            break;
-        }
-        
-        switch (sSettings.sPortGw[i].uart_set.stopbits)
-        {
-            case STOP_0_5 :
-                printf("\tStop bits: 0_5\r\n");
-            break;
-            case STOP_1 :
-                printf("\tStop bits: 1\r\n");
-            break;
-            case STOP_1_5 :
-                printf("\tStop bits: 1_5\r\n");
-            break;
-            case STOP_2 :
-                printf("\tStop bits: 2\r\n");
-            break;
-        }
-    }
-    
-// -------------------------------------------------------------------------- //    
-    
-    printf("\r\nПротокол SNTP:\r\n");    
-    
-    if (sSettings.sSNTP.sntpEnable)
-        printf("\tSNTP: вкл\r\n");
-    else
-        printf("\tSNTP: выкл\r\n");
-        
-    printf("\tСервер 1 IP: %s\r\n", sSettings.sSNTP.ip1);
-    printf("\tСервер 2 IP: %s\r\n", sSettings.sSNTP.ip2);
-    printf("\tДата последней синхронизации: %s\r\n", sSettings.sSNTP.data);
-    printf("\tЧасовой пояс (utc): %f\r\n", sSettings.sSNTP.timeZone);
-    
-// -------------------------------------------------------------------------- //    
-    
-    printf("\r\nПараллельная диспетчеризация:\r\n");
-    
-    if (sSettings.sPSD.enabled)
-        printf("\tДиспечеризация: вкл\r\n");
-    else
-        printf("\tДиспечеризация: выкл\r\n");
-
-    switch (sSettings.sPSD.mux_mode)
-    {
-        case PSD_MODE_1 :
-            printf("\tРежим (управление мультиплексором): MODE_1 - RS232#1 <-> RS232#2, USART6 <-> RS232#3\r\n");
-        break;
-        case PSD_MODE_2 :
-            printf("\tРежим (управление мультиплексором): MODE_2 - RS485#1 <-> RS232#2, USART6 <-> RS232#3\r\n");
-        break;
-        case PSD_MODE_3 :
-            printf("\tРежим (управление мультиплексором): MODE_3 - RS232#1 <-> RS485#2, USART6 <-> RS232#3\r\n");
-        break;
-        case PSD_MODE_4 :
-            printf("\tРежим (управление мультиплексором): MODE_4 - RS485#1 <-> RS485#2, USART6 <-> RS232#3\r\n");
-        break;
-        case PSD_MODE_5 :
-            printf("\tРежим (управление мультиплексором): MODE_5 - RS232#1 <-> RS232#3\r\n");
-        break;
-        case PSD_MODE_6 :
-            printf("\tРежим (управление мультиплексором): MODE_6 - RS485#1 <-> RS232#3\r\n");
-        break;
-        case PSD_MODE_7 :
-            printf("\tРежим (управление мультиплексором): MODE_7 - USART1 <-> RS485#1, \r\n\t\tUSART3 <-> RS485#2, USART4 <-> RS232#1, \r\n\t\tUSART5 <-> RS232#2, USART6 <-> RS232#3\r\n");
-        break;
-        
-    }
-    
-    switch (sSettings.sPSD.rs_mode)
-    {
-        case RS_232_1 :
-            printf("\tРежим (RS-232/RS-485): RS_232_1\r\n");
-        break;
-        case RS_232_2 :
-            printf("\tРежим (RS-232/RS-485): RS_232_2\r\n");
-        break;
-        case RS_232_3 :
-            printf("\tРежим (RS-232/RS-485): RS_232_3\r\n");
-        break;
-        case RS_485_1 :
-            printf("\tРежим (RS-232/RS-485): RS_485_1\r\n");
-        break;
-        case RS_485_2 :
-            printf("\tРежим (RS-232/RS-485): RS_485_2\r\n");
-        break;
-    }
-    
-    printf("\tНомер прозрачного порта: %u\r\n", sSettings.sPSD.web_port);
-    printf("\tТаймаут: %u, сек\r\n", sSettings.sPSD.assd_timeout);
-    
-// -------------------------------------------------------------------------- //    
-    
-    printf("\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n");
-    
-    printf("\tКонтрольное слово: %u\r\n", sSettings.controlWorld);
-    printf("\tCRC: %X\r\n", *(uint32_t*)CRC_ADDRESS);
-}
-#endif

+ 17 - 7
fw/modules/settings/settings_api.h

@@ -64,21 +64,28 @@ typedef struct
 typedef struct
 {
     com_settings_t  com_settings;
-    uint32_t        critical_section_crc;
+    uint32_t    critical_section_crc;
 /* WARNING! До поля CritSecCRC включительно структура настроек должна быть
 * идентичной между бутлоадером и основным ПО и не должна изменяться при обновлении ПО.
 * Контроль целостности настроек внутри IAP выполняется только для критической секции,
 * т.к. контроль целостности всей структуры не имеет смысла
 * (структура настроек всегда будет отличаться внутри основного ПО).
 * В случае повреждения критического сектора, загружаются параметры по умолчанию. */    
-    uint16_t        settings_version;   // Версия структуры настроек 
-    uint32_t        control_word;       // Слово для контроля целостности структуры настроек
+    uint16_t    settings_version;   // Версия структуры настроек 
+    uint32_t    control_word;       // Слово для контроля целостности структуры настроек
     
-    uint16_t        di_mode_bits;          // режим работы, 0 - вход, 1 - счетчик импульсов
-    uint16_t        di_norm_state_bits;    // нормальное состояние (0 - разомкнут, 1 - замкнут)        
-    uint16_t        di_debounce[DI_NUMBER];   // Дискретные входы
+    uint16_t    di_mode_bits;          // режим работы, 0 - вход, 1 - счетчик импульсов
+    uint16_t    di_norm_state_bits;    // нормальное состояние (0 - разомкнут, 1 - замкнут)        
+    uint16_t    di_debounce[DI_NUMBER]; // Дискретные входы
+    
+    uint16_t    do_mode_bits;       // режим работы выхода 0 - выход, 1 - ШИМ
+    uint16_t    do_bits;            // последнее сохраненное значение на выходах
+    uint16_t    do_save_bits;       // значение на выходах в бесопасном режиме работы
+    uint16_t    do_pwm[DO_NUMBER];  // значение выходов в режиме ШИМ
+    uint16_t    do_pwm_save[DO_NUMBER]; // значение выходов в режиме ШИМ в безопасном режиме
+    
+    bool        save_mode;          // безопасный режим, 0 - выкл, 1 - вкл
     
-      
 } settings_t;
 
 
@@ -114,6 +121,9 @@ void settings_conv_modbus_def(modbus_t *mb_settings, uint16_t *mb_port);
 // Установить параметры дискретных входов по умолчанию
 void settings_din_def(settings_t *settings);
 
+// Выходы
+void settings_do_def(settings_t *settings);
+
 // -------------------------------------------------------------------------- //
 
 // Запись структуры настроек во flash

+ 16 - 6
fw/user/main.c

@@ -31,13 +31,9 @@ int main(void)
     //usb_clock48m_select(USB_CLK_HEXT);
     
     crm_periph_clock_enable(CRM_USB_PERIPH_CLOCK, TRUE);
-    
-    io_port_init();
-    in_exint_init();
-    cm_gpio_init();
           
     
-    printf("\n\n\n\nModule universal IO [FW %s] loading....\r\n\n", VERSION);
+    //printf("\n\n\n\nModule universal IO [FW %s] loading....\r\n\n", VERSION);
         
     //
     //usb_init();
@@ -85,11 +81,25 @@ void init_task(void *argument)
     // Основные настройки
     settings_load(&settings);
     
+#if 0    
+    settings_set_all_default();
+    settings_save(&settings);
+#endif      
+// -------------------------------------------------------------------------- //    
+// Безопасный режим, входы, выходы
+
+    save_mode_init();
+    // TODO Для теста отключаем безопасный режим работы
+    set_save_mode(false);   
+    io_port_init();
+    in_exint_init();
+    cm_gpio_init();
+    
 // -------------------------------------------------------------------------- //
 // Uptime    
     
     uptime_init();
-
+    //out_as_pwm();
 // -------------------------------------------------------------------------- //
 // RTC    
     

+ 1 - 0
fw/user/main.h

@@ -28,6 +28,7 @@
 #include "uptime.h"
 #include "rtc.h"
 #include "mb.h"
+#include "io_utils.h"
 #include <stdio.h>
 #include <stdbool.h>
 #include <string.h>


+ 778 - 778
project/ewarm/iap/iap.dep

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

Разница между файлами не показана из-за своего большого размера
+ 1031 - 1002
project/ewarm/module_universal_io.dep


+ 3 - 0
project/ewarm/module_universal_io.ewp

@@ -2161,6 +2161,9 @@
                 <file>
                     <name>$PROJ_DIR$\..\..\fw\modules\io\io.c</name>
                 </file>
+                <file>
+                    <name>$PROJ_DIR$\..\..\fw\modules\io\io_utils.c</name>
+                </file>
                 <file>
                     <name>$PROJ_DIR$\..\..\fw\modules\io\mux.c</name>
                 </file>

+ 3 - 0
project/ewarm/module_universal_io.ewt

@@ -2381,6 +2381,9 @@
                 <file>
                     <name>$PROJ_DIR$\..\..\fw\modules\io\io.c</name>
                 </file>
+                <file>
+                    <name>$PROJ_DIR$\..\..\fw\modules\io\io_utils.c</name>
+                </file>
                 <file>
                     <name>$PROJ_DIR$\..\..\fw\modules\io\mux.c</name>
                 </file>

Некоторые файлы не были показаны из-за большого количества измененных файлов