Преглед на файлове

Добавил архивы на аналоговые входы.

TelenkovDmitry преди 6 месеца
родител
ревизия
82a0f83aaf

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

@@ -185,7 +185,7 @@ void di_set(void)
 {
     for (int i = 0; i < DI_NUMBER; i++)
     {
-        if ((settings.di_mode_bits >> i) & 1) != d_inputs[i].mode) 
+        if (((settings.di_mode_bits >> i) & 1) != d_inputs[i].mode) 
         {
             d_inputs[i].mode = ((settings.di_mode_bits >> i) & 1);
             if (d_inputs[i].mode == 0) 
@@ -203,7 +203,7 @@ void di_set(void)
 }
 
 //
-uint8_t in_get(uint8_t channel)
+uint8_t di_get(uint8_t channel)
 {
     uint8_t ret = 0;
     

+ 440 - 465
fw/modules/log/log.c

@@ -1,465 +1,440 @@
-#include "log.h"
-#include "rtc.h"
-#include "ringfs.h"
-#include "spi_flash.h"
-#include "FreeRTOS.h"
-#include "task.h"
-#include "semphr.h"
-#include "event_groups.h"
-#include "rtc.h"
-#include "settings_api.h"
-#include "digital_input.h"
-#include "log_ai.h"
-#include "log_dio.h"
-#include "ringfs_api.h"
-#include <string.h>
-#include <stdio.h>
-#include <inttypes.h>
-
-#undef DBG
-#define DBG if(1)
-
-static bool archive_state = false;
-static bool log_state = true;
-
-static bool log_init_f = false;
-static bool archive_init_f = false;
-
-struct ringfs fs_log;
-
-SemaphoreHandle_t log_mutex;
-xQueueHandle log_queue;
-EventGroupHandle_t archive_event;
-
-uint16_t log_entries_capacity;
-uint16_t archive_entries_capacity;
-
-void archive_task(void *params);
-void log_task(void *params);
-
-
-
-//
-static struct ringfs_flash_partition ringfs_flash_log = 
-{
-	.sector_offset = LOG_FLASH_SECTOR_OFFSET,
-	.sector_erase = op_sector_erase,
-	.program = op_program,
-	.read = op_read,
-};
-
-
-//
-void log_init(bool format) 
-{
-	DBG printf("[LOG] Init...\r\n");
-
-	if (!spi_flash_desc.present)
-		return;
-    
-    // ---------------------------------------------------------------------- //
-    // Журнал
-        
-	ringfs_flash_log.sector_size = spi_flash_desc.sector_size;
-	ringfs_flash_log.sector_count = LOG_FLASH_SECTOR_COUNT;
-
-	ringfs_init(&fs_log, &ringfs_flash_log, LOG_ENTRY_VERSION, sizeof(log_entry_t));
-    
-	if (format || ringfs_scan(&fs_log) != 0) {
-		DBG printf("FAT1 false\r\n");
-		ringfs_format(&fs_log);
-	}
-	DBG printf("FAT1 true\r\n");
-    
-    
-#if defined (MDIO_88)    
-    log_dio_archive_init();
-#endif
-    
-#if defined (MAI_12)
-    log_ai_archive_init();
-#endif
-    
-    // ---------------------------------------------------------------------- //
-	log_mutex = xSemaphoreCreateMutex();
-
-    log_entries_capacity = ringfs_capacity(&fs_log);
-    
-    archive_entries_capacity = ringfs_capacity(&fs_ch_arch[0]);
-    
-    // Event
-    archive_event = xEventGroupCreate();
-
-	xTaskCreate(archive_task, "archive_task", 2*configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
-
-    log_queue = xQueueCreate(10, sizeof(log_entry_t));
-
-    xTaskCreate(log_task, "log_task", 2*configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
-    
-    log_init_f = true;
-    
-    archive_init_f = true;
-
-    // Таймер для ведения архива с разным периодом по разным каналам
-    log_init_archive_tim();  
-}
-
-// Настройка таймера на частоту 10 Гц
-void log_init_archive_tim(void)
-{
-    printf("Init log timer...\r\n");
-    
-    crm_clocks_freq_type crm_clocks_freq_struct = {0};
-    
-    crm_periph_clock_enable(CRM_TMR14_PERIPH_CLOCK, TRUE);
-
-    crm_clocks_freq_get(&crm_clocks_freq_struct);
-    tmr_base_init(TMR14, 999, (crm_clocks_freq_struct.ahb_freq / 10000) - 1);
-    tmr_cnt_dir_set(TMR14, TMR_COUNT_UP);
-        
-    tmr_flag_clear(TMR14, TMR_OVF_FLAG);
-
-    nvic_priority_group_config(NVIC_PRIORITY_GROUP_4);
-    nvic_irq_enable(TMR8_TRG_HALL_TMR14_IRQn, 5, 0);
-       
-    tmr_counter_enable(TMR14, TRUE);
-    
-    tmr_interrupt_enable(TMR14, TMR_OVF_INT, TRUE);
-}
-
-//
-void TMR8_TRG_HALL_TMR14_IRQHandler(void)
-{
-    if (tmr_flag_get(TMR14, TMR_OVF_FLAG) != RESET)
-    {
-        tmr_flag_clear(TMR14, TMR_OVF_FLAG);
-        
-        if (archive_state) 
-        {
-            log_check_archive_cnt();
-            printf("TMR_14 irq\r\n");
-        }
-    }
-}
-
-//
-int log_fetch(void *entry, entry_type_t entry_type, uint8_t ch, uint32_t timeout) 
-{
-    int ret;
-    
-    ret = xSemaphoreTake(log_mutex, (TickType_t)timeout);
-    
-    if (ret == pdFALSE)
-        return ret;
-    if (entry_type == LOG_ENTRY)
-        ret = ringfs_fetch(&fs_log, entry);
-    else if (entry_type == ARCHIVE_ENTRY)
-        ret = ringfs_fetch(&fs_ch_arch[ch], entry);
-    else ret = -1;
-
-    xSemaphoreGive(log_mutex);
-    return ret;   
-}
-
-//
-int log_discard(void *entry, entry_type_t entry_type, uint8_t ch, uint32_t timeout)
-{
-    int ret;
-      
-    ret = xSemaphoreTake(log_mutex, (TickType_t)timeout);
-    
-    if (ret == pdFALSE)
-        return ret;
-    if (entry_type == LOG_ENTRY)
-        ret = ringfs_discard(&fs_log);
-    else if (entry_type == ARCHIVE_ENTRY)
-        ret = ringfs_discard(&fs_ch_arch[ch]);
-    else ret = -1;
-    
-    xSemaphoreGive(log_mutex);
-    return ret; 
-}
-
-//
-int log_append(void *entry, entry_type_t entry_type, uint8_t ch)
-{
-    int ret;
-    TM_RTC_t time;
-    common_entry_t *entry_ptr = entry;
-    log_entry_t *log_etnry_ptr;
-    archive_entry_t *archive_etnry_ptr;
-    
-    ret = xSemaphoreTake(log_mutex, portMAX_DELAY);
-    
-    if (ret == pdFALSE)
-        return ret;
-  
-    if (entry_ptr->timestamp == 0)
-        entry_ptr->timestamp = rtc_get_ms();
-    
-    if (entry_type == LOG_ENTRY) 
-    {
-        log_etnry_ptr = (log_entry_t*)entry;
-        log_etnry_ptr->crc = crc_8(entry, sizeof(log_entry_t) - 1);
-        ret = ringfs_append(&fs_log, entry);
-    }
-    else if (entry_type == ARCHIVE_ENTRY) 
-    {
-        archive_etnry_ptr = (archive_entry_t*)entry;
-        archive_etnry_ptr->crc = crc_8(entry, sizeof(archive_entry_t) - 1);
-        ret = ringfs_append(&fs_ch_arch[ch], entry);
-    }
-    else ret = -1;
-    
-    xSemaphoreGive(log_mutex);
-    return ret;
-    
-}
-
-//
-uint16_t log_capacity(void)
-{
-    return ringfs_count_exact(&fs_log);
-}
-
-//
-uint16_t log_arch_capacity(uint8_t ch)
-{
-    return ringfs_count_exact(&fs_ch_arch[ch]);
-}
-
-// -------------------------------------------------------------------------- //
-// misc
-
-uint8_t crc_8(uint8_t *data, int length)
-{
-    uint8_t crc = 0x00;
-    uint8_t extract;
-    uint8_t sum;
-    
-    for (int i = 0; i < length; i++) {
-        extract = *data;
-        for (uint8_t tmp = 8; tmp; tmp--) {
-            sum = (crc ^ extract) & 0x01;
-            crc >>= 1;
-            if (sum)
-                crc ^= 0x8C;
-            extract >>= 1;
-        }
-        data++;
-    }
-    return crc;
-}
-
-// -------------------------------------------------------------------------- //
-// Tests
-
-// val - 0 - журнал
-// val - 1 - архив
-// ch - номер канала архива
-void log_info(uint8_t val, uint8_t ch)
-{
-    if (val > 1)
-        return;
-  
-    struct ringfs *fs = val == 0 ? &fs_log : &fs_ch_arch[ch];
-    
-    int capacity_flash = 0;
-    int count_flash = 0;
-    int count_estimate = 0;
-    
-    capacity_flash = ringfs_capacity(fs);
-    count_flash = ringfs_count_exact(fs);
-    count_estimate = ringfs_count_estimate(fs);
-    
-    if (val == 0)
-    {
-        DBG printf("Log partition capacity: %u\r\n", capacity_flash);
-        DBG printf("Count log entry: %u\r\n", count_flash);
-        DBG printf("Estimate count: %u\r\n", count_estimate);
-    }
-    else 
-    {
-        DBG printf("Archive partition capacity: %u\r\n", capacity_flash);
-        DBG printf("Count archive entry: %u\r\n", count_flash);
-        DBG printf("Estimate count: %u\r\n", count_estimate);
-    }
-}
-
-// val - 0 - журнал
-// val - 1 - архив
-// ch - номер канала архива
-void log_format(uint8_t val, uint8_t ch)
-{
-    if (val == 0) {
-        DBG printf("Formating log partition...\r\n");
-        ringfs_format(&fs_log);
-    } 
-    else if (val == 1) {
-        DBG printf("Formating archive partition...\r\n");
-        ringfs_format(&fs_ch_arch[ch]);
-    }
-}
-
-// Добавить n записей журнала
-int log_add_random_entry(uint8_t val, uint32_t cnt_entry, uint8_t ch)
-{
-    int ret;
-    log_entry_t log_entry = {0};
-    archive_entry_t archive_entry = {0};
-    
-    static uint8_t log_index = 0;
-    static uint32_t archive_index = 0;
-    
-    if (val == 0)
-    {
-        DBG printf("Appending %u archive entries\r\n", cnt_entry);
-        
-        for (uint32_t i = 0; i < cnt_entry; i++)
-        {
-            log_entry.code_type = log_index;
-            log_entry.code_state = log_index;
-            log_entry.channel_number = log_index;
-            log_entry.value = (float)log_index++;
-            
-            ret = log_append((void*)&log_entry, LOG_ENTRY, 0);
-        }
-        DBG printf("Result: %u\r\n", ret);
-    }
-      
-    if (val == 1)
-    {
-        DBG printf("Appending %u archive entries\r\n", cnt_entry);
-
-        for (uint32_t i = 0; i < cnt_entry; i++)
-        {
-            archive_entry.input_value = archive_index++;
-
-            ret = log_append((void*)&archive_entry, ARCHIVE_ENTRY, ch);
-        }
-        DBG printf("Result: %u\r\n", ret);
-    }
-    return ret;
-}
-
-//
-int log_add_entry(log_event_type_t type, log_event_state_t state, 
-                  uint8_t channel_number, float value)
-{
-    log_entry_t entry;
-    
-    if (!log_init_f)
-        return -1;
-    
-    entry.timestamp = rtc_get_ms();
-    entry.code_type = (uint8_t)type;
-    entry.code_state = (uint8_t)state;
-    entry.channel_number = channel_number;
-    entry.value = value;
-    
-    xQueueSend(log_queue, &entry, 0);
-    
-    return 0;
-}
-
-
-//
-void test_fetch(void)
-{
-    archive_entry_t entry = {0};
-    log_fetch(&entry, ARCHIVE_ENTRY, 0, portMAX_DELAY);
-    //printf("\r\n%" PRId64 " [ms]\r\n", rtc_get_ms());
-    printf("[entry] timestamp = % " PRId64 ", value = %u, crc = %u\r\n", entry.timestamp, entry.input_value, entry.crc);
-}
-
-//
-void log_archive_state(bool state)
-{
-    archive_state = state;
-}
-
-//
-void log_log_state(bool state)
-{
-    log_state = state;
-}
-
-
-void archive_task(void *params)
-{
-    int ret = 0;
-    uint32_t event = 0;
-    archive_entry_t entry = {0};
-    EventBits_t bits;
-    uint8_t channel_number = log_get_arch_channel_number();
-        
-    for (;;)
-    {
-#if 0      
-// TODO      
-        bits = xEventGroupWaitBits(archive_event, ARCH_CH_1 | ARCH_CH_2 | 
-                                   ARCH_CH_3 | ARCH_CH_4 | ARCH_CH_5 | 
-                                   ARCH_CH_6 | ARCH_CH_7 | ARCH_CH_8,
-                                   pdTRUE, pdFALSE, portMAX_DELAY);
-     
-        for (uint32_t i = 0; i < channel_number; i++)
-        {
-            if (bits & (1 << i))
-            {
-                DBG printf("Archive event: %u\r\n", (1 << i));
-                
-                entry.timestamp = 0;
-                entry.input_value = di_get(i - 1);
-        
-                DBG printf("Append archive entry...");
-                ret = log_append((void*)&entry, ARCHIVE_ENTRY, i - 1);
-                
-                if (ret != 0) {
-                    DBG printf("FAIL\r\n");
-                }
-                else {  
-                    DBG printf("OK\r\n");
-                }
-            }
-        }
-#endif        
-    }
-}
-
-//
-void log_task(void *params)
-{
-    int ret;
-    log_entry_t entry;
-      
-    for (;;)
-    {
-        if (xQueueReceive(log_queue, &entry, portMAX_DELAY) == pdTRUE)
-        {
-            DBG printf("Try append LOG entry... ");
-            ret = log_append((void*)&entry, LOG_ENTRY, 0);
-            DBG printf("Result: %i\r\n", ret);
-        }
-    }
-}
-
-// Вызывается в прерывании таймера с частотой 10 Гц 
-// TODO
-void log_check_archive_cnt(void)
-{
-    BaseType_t xHigherPriorityTaskWoken = pdFALSE;
-    uint8_t channel_number = log_get_arch_channel_number();
-
-    for (uint8_t i = 0; i < channel_number; i++)
-    {
-        if (archive_cnt[i]++ == 10*settings.period_archive[i])
-        {
-            archive_cnt[i] = 0;
-            
-            // Номер канала с 0..7
-            printf("Send event: %u\r\n", 1 << i);
-            xEventGroupSetBitsFromISR(archive_event, 1 << i, &xHigherPriorityTaskWoken);
-        }
-    }
-}
-
+#include "log.h"
+#include "rtc.h"
+#include "ringfs.h"
+#include "spi_flash.h"
+#include "FreeRTOS.h"
+#include "task.h"
+#include "semphr.h"
+#include "event_groups.h"
+#include "rtc.h"
+#include "settings_api.h"
+#include "digital_input.h"
+#include "log_ai.h"
+#include "log_dio.h"
+#include "ringfs_api.h"
+#include <string.h>
+#include <stdio.h>
+#include <inttypes.h>
+
+#undef DBG
+#define DBG if(1)
+
+static bool archive_state = false;
+static bool log_state = true;
+
+static bool log_init_f = false;
+static bool archive_init_f = false;
+
+struct ringfs fs_log;
+
+SemaphoreHandle_t log_mutex;
+xQueueHandle log_queue;
+//EventGroupHandle_t archive_event;
+
+uint16_t log_entries_capacity;
+uint16_t archive_entries_capacity;
+
+void archive_task(void *params);
+void log_task(void *params);
+
+
+
+//
+static struct ringfs_flash_partition ringfs_flash_log = 
+{
+	.sector_offset = LOG_FLASH_SECTOR_OFFSET,
+	.sector_erase = op_sector_erase,
+	.program = op_program,
+	.read = op_read,
+};
+
+
+//
+void log_init(bool format) 
+{
+	DBG printf("[LOG] Init...\r\n");
+
+	if (!spi_flash_desc.present)
+		return;
+    
+    // ---------------------------------------------------------------------- //
+    // Журнал
+        
+	ringfs_flash_log.sector_size = spi_flash_desc.sector_size;
+	ringfs_flash_log.sector_count = LOG_FLASH_SECTOR_COUNT;
+
+	ringfs_init(&fs_log, &ringfs_flash_log, LOG_ENTRY_VERSION, sizeof(log_entry_t));
+    
+	if (format || ringfs_scan(&fs_log) != 0) {
+		DBG printf("FAT1 false\r\n");
+		ringfs_format(&fs_log);
+	}
+	DBG printf("FAT1 true\r\n");
+    
+    
+#if defined (MDIO_88)    
+    log_dio_archive_init();
+#endif
+    
+#if defined (MAI_12)
+    log_ai_archive_init();
+#endif
+    
+    // ---------------------------------------------------------------------- //
+	log_mutex = xSemaphoreCreateMutex();
+
+    log_entries_capacity = ringfs_capacity(&fs_log);
+    
+    archive_entries_capacity = ringfs_capacity(&fs_ch_arch[0]);
+    
+    // Event
+    archive_event = xEventGroupCreate();
+
+	xTaskCreate(archive_task, "archive_task", 2*configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
+
+    log_queue = xQueueCreate(10, sizeof(log_entry_t));
+
+    xTaskCreate(log_task, "log_task", 2*configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
+    
+    log_init_f = true;
+    
+    archive_init_f = true;
+
+    // Таймер для ведения архива с разным периодом по разным каналам
+    log_init_archive_tim();  
+}
+
+// Настройка таймера на частоту 10 Гц
+void log_init_archive_tim(void)
+{
+    printf("Init log timer...\r\n");
+    
+    crm_clocks_freq_type crm_clocks_freq_struct = {0};
+    
+    crm_periph_clock_enable(CRM_TMR14_PERIPH_CLOCK, TRUE);
+
+    crm_clocks_freq_get(&crm_clocks_freq_struct);
+    tmr_base_init(TMR14, 999, (crm_clocks_freq_struct.ahb_freq / 10000) - 1);
+    tmr_cnt_dir_set(TMR14, TMR_COUNT_UP);
+        
+    tmr_flag_clear(TMR14, TMR_OVF_FLAG);
+
+    nvic_priority_group_config(NVIC_PRIORITY_GROUP_4);
+    nvic_irq_enable(TMR8_TRG_HALL_TMR14_IRQn, 5, 0);
+       
+    tmr_counter_enable(TMR14, TRUE);
+    
+    tmr_interrupt_enable(TMR14, TMR_OVF_INT, TRUE);
+}
+
+//
+void TMR8_TRG_HALL_TMR14_IRQHandler(void)
+{
+    if (tmr_flag_get(TMR14, TMR_OVF_FLAG) != RESET)
+    {
+        tmr_flag_clear(TMR14, TMR_OVF_FLAG);
+        
+        if (archive_state) 
+        {
+            log_check_archive_cnt();
+            printf("TMR_14 irq\r\n");
+        }
+    }
+}
+
+//
+int log_fetch(void *entry, entry_type_t entry_type, uint8_t ch, uint32_t timeout) 
+{
+    int ret;
+    
+    ret = xSemaphoreTake(log_mutex, (TickType_t)timeout);
+    
+    if (ret == pdFALSE)
+        return ret;
+    if (entry_type == LOG_ENTRY)
+        ret = ringfs_fetch(&fs_log, entry);
+    else if (entry_type == ARCHIVE_ENTRY)
+        ret = ringfs_fetch(&fs_ch_arch[ch], entry);
+    else ret = -1;
+
+    xSemaphoreGive(log_mutex);
+    return ret;   
+}
+
+//
+int log_discard(void *entry, entry_type_t entry_type, uint8_t ch, uint32_t timeout)
+{
+    int ret;
+      
+    ret = xSemaphoreTake(log_mutex, (TickType_t)timeout);
+    
+    if (ret == pdFALSE)
+        return ret;
+    if (entry_type == LOG_ENTRY)
+        ret = ringfs_discard(&fs_log);
+    else if (entry_type == ARCHIVE_ENTRY)
+        ret = ringfs_discard(&fs_ch_arch[ch]);
+    else ret = -1;
+    
+    xSemaphoreGive(log_mutex);
+    return ret; 
+}
+
+//
+int log_append(void *entry, entry_type_t entry_type, uint8_t ch)
+{
+    int ret;
+    TM_RTC_t time;
+    common_entry_t *entry_ptr = entry;
+    log_entry_t *log_etnry_ptr;
+    archive_entry_t *archive_etnry_ptr;
+    
+    ret = xSemaphoreTake(log_mutex, portMAX_DELAY);
+    
+    if (ret == pdFALSE)
+        return ret;
+  
+    if (entry_ptr->timestamp == 0)
+        entry_ptr->timestamp = rtc_get_ms();
+    
+    if (entry_type == LOG_ENTRY) 
+    {
+        log_etnry_ptr = (log_entry_t*)entry;
+        log_etnry_ptr->crc = crc_8(entry, sizeof(log_entry_t) - 1);
+        ret = ringfs_append(&fs_log, entry);
+    }
+    else if (entry_type == ARCHIVE_ENTRY) 
+    {
+        archive_etnry_ptr = (archive_entry_t*)entry;
+        archive_etnry_ptr->crc = crc_8(entry, sizeof(archive_entry_t) - 1);
+        ret = ringfs_append(&fs_ch_arch[ch], entry);
+    }
+    else ret = -1;
+    
+    xSemaphoreGive(log_mutex);
+    return ret;
+    
+}
+
+//
+uint16_t log_capacity(void)
+{
+    return ringfs_count_exact(&fs_log);
+}
+
+//
+uint16_t log_arch_capacity(uint8_t ch)
+{
+    return ringfs_count_exact(&fs_ch_arch[ch]);
+}
+
+// -------------------------------------------------------------------------- //
+// misc
+
+uint8_t crc_8(uint8_t *data, int length)
+{
+    uint8_t crc = 0x00;
+    uint8_t extract;
+    uint8_t sum;
+    
+    for (int i = 0; i < length; i++) {
+        extract = *data;
+        for (uint8_t tmp = 8; tmp; tmp--) {
+            sum = (crc ^ extract) & 0x01;
+            crc >>= 1;
+            if (sum)
+                crc ^= 0x8C;
+            extract >>= 1;
+        }
+        data++;
+    }
+    return crc;
+}
+
+// -------------------------------------------------------------------------- //
+// Tests
+
+// val - 0 - журнал
+// val - 1 - архив
+// ch - номер канала архива
+void log_info(uint8_t val, uint8_t ch)
+{
+    if (val > 1)
+        return;
+  
+    struct ringfs *fs = val == 0 ? &fs_log : &fs_ch_arch[ch];
+    
+    int capacity_flash = 0;
+    int count_flash = 0;
+    int count_estimate = 0;
+    
+    capacity_flash = ringfs_capacity(fs);
+    count_flash = ringfs_count_exact(fs);
+    count_estimate = ringfs_count_estimate(fs);
+    
+    if (val == 0)
+    {
+        DBG printf("Log partition capacity: %u\r\n", capacity_flash);
+        DBG printf("Count log entry: %u\r\n", count_flash);
+        DBG printf("Estimate count: %u\r\n", count_estimate);
+    }
+    else 
+    {
+        DBG printf("Archive partition capacity: %u\r\n", capacity_flash);
+        DBG printf("Count archive entry: %u\r\n", count_flash);
+        DBG printf("Estimate count: %u\r\n", count_estimate);
+    }
+}
+
+// val - 0 - журнал
+// val - 1 - архив
+// ch - номер канала архива
+void log_format(uint8_t val, uint8_t ch)
+{
+    if (val == 0) {
+        DBG printf("Formating log partition...\r\n");
+        ringfs_format(&fs_log);
+    } 
+    else if (val == 1) {
+        DBG printf("Formating archive partition...\r\n");
+        ringfs_format(&fs_ch_arch[ch]);
+    }
+}
+
+// Добавить n записей журнала
+int log_add_random_entry(uint8_t val, uint32_t cnt_entry, uint8_t ch)
+{
+    int ret;
+    log_entry_t log_entry = {0};
+    archive_entry_t archive_entry = {0};
+    
+    static uint8_t log_index = 0;
+    static uint32_t archive_index = 0;
+    
+    if (val == 0)
+    {
+        DBG printf("Appending %u archive entries\r\n", cnt_entry);
+        
+        for (uint32_t i = 0; i < cnt_entry; i++)
+        {
+            log_entry.code_type = log_index;
+            log_entry.code_state = log_index;
+            log_entry.channel_number = log_index;
+            log_entry.value = (float)log_index++;
+            
+            ret = log_append((void*)&log_entry, LOG_ENTRY, 0);
+        }
+        DBG printf("Result: %u\r\n", ret);
+    }
+      
+    if (val == 1)
+    {
+        DBG printf("Appending %u archive entries\r\n", cnt_entry);
+
+        for (uint32_t i = 0; i < cnt_entry; i++)
+        {
+            archive_entry.input_value = archive_index++;
+
+            ret = log_append((void*)&archive_entry, ARCHIVE_ENTRY, ch);
+        }
+        DBG printf("Result: %u\r\n", ret);
+    }
+    return ret;
+}
+
+//
+int log_add_entry(log_event_type_t type, log_event_state_t state, 
+                  uint8_t channel_number, float value)
+{
+    log_entry_t entry;
+    
+    if (!log_init_f)
+        return -1;
+    
+    entry.timestamp = rtc_get_ms();
+    entry.code_type = (uint8_t)type;
+    entry.code_state = (uint8_t)state;
+    entry.channel_number = channel_number;
+    entry.value = value;
+    
+    xQueueSend(log_queue, &entry, 0);
+    
+    return 0;
+}
+
+
+//
+void test_fetch(void)
+{
+    archive_entry_t entry = {0};
+    log_fetch(&entry, ARCHIVE_ENTRY, 0, portMAX_DELAY);
+    //printf("\r\n%" PRId64 " [ms]\r\n", rtc_get_ms());
+    printf("[entry] timestamp = % " PRId64 ", value = %u, crc = %u\r\n", entry.timestamp, entry.input_value, entry.crc);
+}
+
+//
+void log_archive_state(bool state)
+{
+    archive_state = state;
+}
+
+//
+void log_log_state(bool state)
+{
+    log_state = state;
+}
+
+
+void archive_task(void *params)
+{
+    int ret = 0;
+    uint32_t event = 0;
+    archive_entry_t entry = {0};
+    EventBits_t bits;
+    uint8_t channel_number = log_get_arch_channel_number();
+        
+    for (;;)
+    {
+        log_archive_task_device();
+    }
+}
+
+//
+void log_task(void *params)
+{
+    int ret;
+    log_entry_t entry;
+      
+    for (;;)
+    {
+        if (xQueueReceive(log_queue, &entry, portMAX_DELAY) == pdTRUE)
+        {
+            DBG printf("Try append LOG entry... ");
+            ret = log_append((void*)&entry, LOG_ENTRY, 0);
+            DBG printf("Result: %i\r\n", ret);
+        }
+    }
+}
+
+// Вызывается в прерывании таймера с частотой 10 Гц 
+// TODO
+void log_check_archive_cnt(void)
+{
+    BaseType_t xHigherPriorityTaskWoken = pdFALSE;
+    uint8_t channel_number = log_get_arch_channel_number();
+
+    for (uint8_t i = 0; i < channel_number; i++)
+    {
+        if (archive_cnt[i]++ == 10*settings.period_archive[i])
+        {
+            archive_cnt[i] = 0;
+
+            if (log_is_channel_on(i)) 
+            {
+                DBG printf("Send event: %u\r\n", 1 << i);
+                xEventGroupSetBitsFromISR(archive_event, 1 << i, &xHigherPriorityTaskWoken);
+            }
+        }
+    }
+}
+

+ 192 - 188
fw/modules/log/log.h

@@ -1,188 +1,192 @@
-#ifndef __LOG_H
-#define __LOG_H
-
-#include "at32f403a_407.h"
-#include <stdbool.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-    
-
-#define LOG_ENTRY_VERSION               1
-
-#define ARCHIV_ENTRY_VERSION            1
-
-#define LOG_FLASH_SECTOR_OFFSET         4
-
-#define LOG_FLASH_SECTOR_COUNT          51
-
-#define ARCHIVE_FLASH_SECTOR_OFFSET     60
-
-#define ARCHIVE_FLASH_SECTOR_COUNT      38
-
-#define ARCHIVE_CHANNEL_OFFSET          (ARCHIVE_FLASH_SECTOR_COUNT + 4)
-  
-#define SECTOR_COUNT (spi_flash_desc.sector_count/2 - LOG_FLASH_SECTOR_OFFSET)  
-
-
-  
-  
-#define MB_ARCHIVE_ENTRY                0x06
-  
-#define MB_LOG_ENTRY                    0x07
-
-  
-// -------------------------------------------------------------------------- //
-  
-  
-// События архивов
-typedef enum
-{
-    ARCH_CH_1 = 1 << 0,
-    ARCH_CH_2 = 1 << 1,
-    ARCH_CH_3 = 1 << 2,
-    ARCH_CH_4 = 1 << 3,
-    ARCH_CH_5 = 1 << 4,
-    ARCH_CH_6 = 1 << 5,
-    ARCH_CH_7 = 1 << 6,
-    ARCH_CH_8 = 1 << 7,
-    
-} arch_event_t;
-
-  
-//
-typedef enum 
-{
-    LOG_SYSTEM_BOOT = 1,    // включение питания/перезагрузка
-    LOG_CLOCK_CHANGE,       // перевод времени
-    LOG_UPDATE_FW,          // обновление FW
-    LOG_SYSTEM_ERR,         // самодиагностика/системная ошибка
-    LOG_CHANGE_CONFIG,      // изменение конфигурации
-    LOG_OUPUTS,             // диагностика выходов
-    LOG_SETPOINT,           // срабатывание уставок
-    LOG_SAVE_MODE,          // переход в безопасный режим
-    LOG_CLEAR,              // очистка журнала/архива
-    
-    LOG_NONE,
-
-} log_event_type_t;
-
-
-typedef enum
-{
-    LOG_EVENT_STATE_ERR = 0,
-    LOG_EVENT_STATE_OK,
-    
-} log_event_state_t;
-
-
-typedef enum
-{
-    LOG_ENTRY = 0,
-    ARCHIVE_ENTRY,
-    
-} entry_type_t;
-
-
-//
-typedef __packed struct 
-{
-    uint64_t timestamp;
-    
-} common_entry_t;
-
-
-// Структура записи журанала
-typedef __packed struct 
-{
-	uint64_t timestamp;
-    uint8_t code_type;  // код типа события
-    uint8_t code_state; // код состояния
-    uint8_t channel_number; // номер канала
-    float value;        // значение
-    uint8_t crc;
-    
-} log_entry_t;
-
-
-// Структура архивной записи
-typedef __packed struct
-{
-    uint64_t timestamp;
-    uint8_t input_value;
-    uint8_t crc;
-    
-} archive_entry_t;
-
-
-//
-void log_init(bool format);
-
-//
-void log_init_archive_tim(void);
-
-//
-int log_fetch(void *entry, entry_type_t entry_type, uint8_t ch, uint32_t timeout);
-
-//
-int log_discard(void *entry, entry_type_t entry_type, uint8_t ch, uint32_t timeout);
-
-// 
-int log_append(void *entry, entry_type_t entry_type, uint8_t ch);
-
-//
-uint16_t log_capacity(void);
-
-//
-uint16_t log_arch_capacity(uint8_t ch);
-
-// -------------------------------------------------------------------------- //
-// misc
-
-uint8_t crc_8(uint8_t *data, int length);
-
-// -------------------------------------------------------------------------- //
-// Tests
-
-//
-void log_info(uint8_t val, uint8_t ch);
-
-//
-void log_format(uint8_t val, uint8_t ch);
-
-//
-int log_add_random_entry(uint8_t val, uint32_t cnt_entry, uint8_t ch);
-
-//
-int log_add_entry(log_event_type_t type, log_event_state_t state, 
-                  uint8_t channel_number, float value);
-
-//
-void test_fetch(void);
-
-//
-void log_archive_state(bool state);
-
-//
-void log_log_state(bool state);
-
-//
-void test_archive_format(void);
-
-//
-void log_check_archive_cnt(void);
-
-// -------------------------------------------------------------------------- //
-
-extern uint16_t log_entries_capacity;
-extern uint16_t archive_entries_capacity;
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* __LOG_H */
+#ifndef __LOG_H
+#define __LOG_H
+
+#include "at32f403a_407.h"
+#include <stdbool.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+    
+
+#define LOG_ENTRY_VERSION               1
+
+#define ARCHIV_ENTRY_VERSION            1
+
+#define LOG_FLASH_SECTOR_OFFSET         4
+
+#define LOG_FLASH_SECTOR_COUNT          51
+
+#define ARCHIVE_FLASH_SECTOR_OFFSET     60
+
+#define ARCHIVE_FLASH_SECTOR_COUNT      30 //38
+
+#define ARCHIVE_CHANNEL_OFFSET          (ARCHIVE_FLASH_SECTOR_COUNT + 4)
+  
+#define SECTOR_COUNT (spi_flash_desc.sector_count/2 - LOG_FLASH_SECTOR_OFFSET)  
+
+
+  
+  
+#define MB_ARCHIVE_ENTRY                0x06
+  
+#define MB_LOG_ENTRY                    0x07
+
+  
+// -------------------------------------------------------------------------- //
+  
+  
+// События архивов
+typedef enum
+{
+    ARCH_CH_1 = 1 << 0,
+    ARCH_CH_2 = 1 << 1,
+    ARCH_CH_3 = 1 << 2,
+    ARCH_CH_4 = 1 << 3,
+    ARCH_CH_5 = 1 << 4,
+    ARCH_CH_6 = 1 << 5,
+    ARCH_CH_7 = 1 << 6,
+    ARCH_CH_8 = 1 << 7,
+    ARCH_CH_9 = 1 << 8,
+    ARCH_CH_10 = 1 << 9,
+    ARCH_CH_11 = 1 << 10,
+    ARCH_CH_12 = 1 << 11,
+    
+} arch_event_t;
+
+  
+//
+typedef enum 
+{
+    LOG_SYSTEM_BOOT = 1,    // включение питания/перезагрузка
+    LOG_CLOCK_CHANGE,       // перевод времени
+    LOG_UPDATE_FW,          // обновление FW
+    LOG_SYSTEM_ERR,         // самодиагностика/системная ошибка
+    LOG_CHANGE_CONFIG,      // изменение конфигурации
+    LOG_OUPUTS,             // диагностика выходов
+    LOG_SETPOINT,           // срабатывание уставок
+    LOG_SAVE_MODE,          // переход в безопасный режим
+    LOG_CLEAR,              // очистка журнала/архива
+    
+    LOG_NONE,
+
+} log_event_type_t;
+
+
+typedef enum
+{
+    LOG_EVENT_STATE_ERR = 0,
+    LOG_EVENT_STATE_OK,
+    
+} log_event_state_t;
+
+
+typedef enum
+{
+    LOG_ENTRY = 0,
+    ARCHIVE_ENTRY,
+    
+} entry_type_t;
+
+
+//
+typedef __packed struct 
+{
+    uint64_t timestamp;
+    
+} common_entry_t;
+
+
+// Структура записи журанала
+typedef __packed struct 
+{
+	uint64_t timestamp;
+    uint8_t code_type;  // код типа события
+    uint8_t code_state; // код состояния
+    uint8_t channel_number; // номер канала
+    float value;        // значение
+    uint8_t crc;
+    
+} log_entry_t;
+
+
+// Структура архивной записи
+typedef __packed struct
+{
+    uint64_t timestamp;
+    uint8_t input_value;
+    uint8_t crc;
+    
+} archive_entry_t;
+
+
+//
+void log_init(bool format);
+
+//
+void log_init_archive_tim(void);
+
+//
+int log_fetch(void *entry, entry_type_t entry_type, uint8_t ch, uint32_t timeout);
+
+//
+int log_discard(void *entry, entry_type_t entry_type, uint8_t ch, uint32_t timeout);
+
+// 
+int log_append(void *entry, entry_type_t entry_type, uint8_t ch);
+
+//
+uint16_t log_capacity(void);
+
+//
+uint16_t log_arch_capacity(uint8_t ch);
+
+// -------------------------------------------------------------------------- //
+// misc
+
+uint8_t crc_8(uint8_t *data, int length);
+
+// -------------------------------------------------------------------------- //
+// Tests
+
+//
+void log_info(uint8_t val, uint8_t ch);
+
+//
+void log_format(uint8_t val, uint8_t ch);
+
+//
+int log_add_random_entry(uint8_t val, uint32_t cnt_entry, uint8_t ch);
+
+//
+int log_add_entry(log_event_type_t type, log_event_state_t state, 
+                  uint8_t channel_number, float value);
+
+//
+void test_fetch(void);
+
+//
+void log_archive_state(bool state);
+
+//
+void log_log_state(bool state);
+
+//
+void test_archive_format(void);
+
+//
+void log_check_archive_cnt(void);
+
+// -------------------------------------------------------------------------- //
+
+extern uint16_t log_entries_capacity;
+extern uint16_t archive_entries_capacity;
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* __LOG_H */

+ 168 - 126
fw/modules/log/log_ai.c

@@ -1,127 +1,169 @@
-#include "at32f403a_407.h"
-#include "log_ai.h"
-#include "settings_api.h"
-#include "ringfs.h"
-#include "ringfs_api.h"
-
-
-#if defined (MAI_12)
-
-uint32_t archive_cnt[ARCH_AI_CH_NUMBER] = {0};
-
-struct ringfs fs_ch_arch[ARCH_AI_CH_NUMBER];
-
-
-
-static struct ringfs_flash_partition fingfs_flash_ch_arch[ARCH_AI_CH_NUMBER] = 
-{
-    {
-        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET,
-        .sector_erase = op_sector_erase,
-        .program = op_program,
-        .read = op_read,
-    },
-    {
-        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*1,
-        .sector_erase = op_sector_erase,
-        .program = op_program,
-        .read = op_read,
-    },
-    {
-        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*2,
-        .sector_erase = op_sector_erase,
-        .program = op_program,
-        .read = op_read,
-    },
-    {
-        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*3,
-        .sector_erase = op_sector_erase,
-        .program = op_program,
-        .read = op_read,
-    },
-    {
-        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*4,
-        .sector_erase = op_sector_erase,
-        .program = op_program,
-        .read = op_read,
-    },
-    {
-        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*5,
-        .sector_erase = op_sector_erase,
-        .program = op_program,
-        .read = op_read,
-    },
-    {
-        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*6,
-        .sector_erase = op_sector_erase,
-        .program = op_program,
-        .read = op_read,
-    },
-    {
-        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*7,
-        .sector_erase = op_sector_erase,
-        .program = op_program,
-        .read = op_read,
-    },
-    {
-        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*8,
-        .sector_erase = op_sector_erase,
-        .program = op_program,
-        .read = op_read,
-    },
-    {
-        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*9,
-        .sector_erase = op_sector_erase,
-        .program = op_program,
-        .read = op_read,
-    },
-    {
-        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*10,
-        .sector_erase = op_sector_erase,
-        .program = op_program,
-        .read = op_read,
-    },
-    {
-        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*11,
-        .sector_erase = op_sector_erase,
-        .program = op_program,
-        .read = op_read,
-    }
-};
-
-
-#undef DBG
-#define DBG if(1)
-
-
-
-// Архив. 12 буферов на каждый канал.
-void log_ai_archive_init(void)
-{
-    for (uint8_t i = 0; i < ARCH_AI_CH_NUMBER; i ++) 
-    {
-        fingfs_flash_ch_arch[i].sector_size = spi_flash_desc.sector_size,
-        
-        fingfs_flash_ch_arch[i].sector_count = ARCHIVE_FLASH_SECTOR_COUNT,
-        
-        ringfs_init(&fs_ch_arch[i], &fingfs_flash_ch_arch[i], 
-                    ARCHIV_ENTRY_VERSION + i, sizeof(archive_entry_t));
-        
-        if (ringfs_scan(&fs_ch_arch[i]) != 0) {
-            DBG printf("FAT for channel %u is false\r\n", i + 1);
-            ringfs_format(&fs_ch_arch[i]);
-        }
-        DBG printf("FAT for channel %u is true\r\n", i + 1);
-    }
-}
-
-
-//
-uint8_t log_get_arch_channel_number(void)
-{
-    return (uint8_t)ARCH_AI_CH_NUMBER;
-}
-
-
-
+#include "at32f403a_407.h"
+#include "log_ai.h"
+#include "settings_api.h"
+#include "ringfs.h"
+#include "ringfs_api.h"
+
+
+#if defined (MAI_12)
+
+#undef DBG
+#define DBG if(1)
+
+
+EventGroupHandle_t archive_event;
+
+uint32_t archive_cnt[ARCH_AI_CH_NUMBER] = {0};
+
+struct ringfs fs_ch_arch[ARCH_AI_CH_NUMBER];
+
+
+static struct ringfs_flash_partition fingfs_flash_ch_arch[ARCH_AI_CH_NUMBER] = 
+{
+    {
+        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET,
+        .sector_erase = op_sector_erase,
+        .program = op_program,
+        .read = op_read,
+    },
+    {
+        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*1,
+        .sector_erase = op_sector_erase,
+        .program = op_program,
+        .read = op_read,
+    },
+    {
+        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*2,
+        .sector_erase = op_sector_erase,
+        .program = op_program,
+        .read = op_read,
+    },
+    {
+        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*3,
+        .sector_erase = op_sector_erase,
+        .program = op_program,
+        .read = op_read,
+    },
+    {
+        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*4,
+        .sector_erase = op_sector_erase,
+        .program = op_program,
+        .read = op_read,
+    },
+    {
+        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*5,
+        .sector_erase = op_sector_erase,
+        .program = op_program,
+        .read = op_read,
+    },
+    {
+        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*6,
+        .sector_erase = op_sector_erase,
+        .program = op_program,
+        .read = op_read,
+    },
+    {
+        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*7,
+        .sector_erase = op_sector_erase,
+        .program = op_program,
+        .read = op_read,
+    },
+    {
+        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*8,
+        .sector_erase = op_sector_erase,
+        .program = op_program,
+        .read = op_read,
+    },
+    {
+        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*9,
+        .sector_erase = op_sector_erase,
+        .program = op_program,
+        .read = op_read,
+    },
+    {
+        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*10,
+        .sector_erase = op_sector_erase,
+        .program = op_program,
+        .read = op_read,
+    },
+    {
+        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*11,
+        .sector_erase = op_sector_erase,
+        .program = op_program,
+        .read = op_read,
+    }
+};
+
+
+// Архив. 12 буферов на каждый канал.
+void log_ai_archive_init(void)
+{
+    for (uint8_t i = 0; i < ARCH_AI_CH_NUMBER; i ++) 
+    {
+        fingfs_flash_ch_arch[i].sector_size = spi_flash_desc.sector_size;
+        
+        fingfs_flash_ch_arch[i].sector_count = ARCHIVE_FLASH_SECTOR_COUNT;
+        
+        ringfs_init(&fs_ch_arch[i], &fingfs_flash_ch_arch[i], 
+                    ARCHIV_ENTRY_VERSION + i, sizeof(archive_entry_t));
+        
+        if (ringfs_scan(&fs_ch_arch[i]) != 0) {
+            DBG printf("FAT for channel %u is false\r\n", i + 1);
+            ringfs_format(&fs_ch_arch[i]);
+        }
+        DBG printf("FAT for channel %u is true\r\n", i + 1);
+    }
+}
+
+
+//
+uint8_t log_get_arch_channel_number(void)
+{
+    return (uint8_t)ARCH_AI_CH_NUMBER;
+}
+
+
+//
+uint8_t log_is_channel_on(uint8_t channel)
+{
+    return settings.ai[channel].state;
+}
+
+
+//
+void log_archive_task_device(void)
+{
+    int ret = 0;
+    EventBits_t bits;
+    archive_entry_t entry = {0};
+    
+    bits = xEventGroupWaitBits(archive_event, 
+                               ARCH_CH_1 | ARCH_CH_2 | ARCH_CH_3 | ARCH_CH_4 | 
+                               ARCH_CH_5 | ARCH_CH_6 | ARCH_CH_7 | ARCH_CH_8 |
+                               ARCH_CH_9 | ARCH_CH_10 | ARCH_CH_11 | ARCH_CH_12,
+                               pdTRUE, pdFALSE, portMAX_DELAY);
+     
+    for (uint32_t i = 0; i < ARCH_AI_CH_NUMBER; i++)
+    {
+        if (bits & (1 << i))
+        {
+            DBG printf("Archive event: %u\r\n", (1 << i));
+                
+            entry.timestamp = 0;
+            //entry.input_value = di_get(i - 1);
+            entry.input_value = 1;
+        
+            DBG printf("Append archive entry...");
+            ret = log_append((void*)&entry, ARCHIVE_ENTRY, i - 1);
+                
+            if (ret != 0) {
+                DBG printf("FAIL\r\n");
+            }
+            else {  
+                DBG printf("OK\r\n");
+            }
+        }
+    }
+}
+
 #endif

+ 36 - 27
fw/modules/log/log_ai.h

@@ -1,28 +1,37 @@
-#ifndef __LOG_AI_H
-#define __LOG_AI_H
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
- 
-  
-void log_ai_archive_init(void);
-
-
-//
-uint8_t log_get_arch_channel_number(void);
-
-
-extern uint32_t archive_cnt[];
-
-extern struct ringfs fs_ch_arch[];
-
-
-#ifdef __cplusplus
-}
-#endif
-
+#ifndef __LOG_AI_H
+#define __LOG_AI_H
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "FreeRTOS.h"
+#include "task.h"
+#include "semphr.h"
+#include "event_groups.h"
+
+  
+void log_ai_archive_init(void);
+
+//
+uint8_t log_get_arch_channel_number(void);
+
+//
+uint8_t log_is_channel_on(uint8_t channel);
+
+//
+void log_archive_task_device(void);
+
+
+extern uint32_t archive_cnt[];
+
+extern struct ringfs fs_ch_arch[];
+
+extern EventGroupHandle_t archive_event;
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif // __LOG_AI_H

+ 138 - 102
fw/modules/log/log_dio.c

@@ -1,102 +1,138 @@
-#include "at32f403a_407.h"
-#include "log_dio.h"
-#include "settings_api.h"
-
-
-
-#if defined (MDIO_88)
-
-
-uint32_t archive_cnt[ARCH_DIO_CH_NUMBER] = {0};
-
-struct ringfs fs_ch_arch[ARCH_DIO_CH_NUMBER];
-
-
-
-static struct ringfs_flash_partition fingfs_flash_ch_arch[ARCH_CH_NUMBER] = 
-{
-    {
-        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET,
-        .sector_erase = op_sector_erase,
-        .program = op_program,
-        .read = op_read,
-    },
-    {
-        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*1,
-        .sector_erase = op_sector_erase,
-        .program = op_program,
-        .read = op_read,
-    },
-    {
-        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*2,
-        .sector_erase = op_sector_erase,
-        .program = op_program,
-        .read = op_read,
-    },
-    {
-        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*3,
-        .sector_erase = op_sector_erase,
-        .program = op_program,
-        .read = op_read,
-    },
-    {
-        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*4,
-        .sector_erase = op_sector_erase,
-        .program = op_program,
-        .read = op_read,
-    },
-    {
-        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*5,
-        .sector_erase = op_sector_erase,
-        .program = op_program,
-        .read = op_read,
-    },
-    {
-        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*6,
-        .sector_erase = op_sector_erase,
-        .program = op_program,
-        .read = op_read,
-    },
-    {
-        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*7,
-        .sector_erase = op_sector_erase,
-        .program = op_program,
-        .read = op_read,
-    },
-};
-
-
-
-#undef DBG
-#define DBG if(1)
-
-
-// Архив. 8 буферов на каждый канал.
-void log_dio_archive_init(void)
-{
-    for (uint8_t i = 0; i < ARCH_DIO_CH_NUMBER; i ++) 
-    {
-        fingfs_flash_ch_arch[i].sector_size = spi_flash_desc.sector_size,
-        
-        fingfs_flash_ch_arch[i].sector_count = ARCHIVE_FLASH_SECTOR_COUNT,
-        
-        ringfs_init(&fs_ch_arch[i], &fingfs_flash_ch_arch[i], 
-                    ARCHIV_ENTRY_VERSION + i, sizeof(archive_entry_t));
-        
-        if (ringfs_scan(&fs_ch_arch[i]) != 0) {
-            DBG printf("FAT for channel %u is false\r\n", i + 1);
-            ringfs_format(&fs_ch_arch[i]);
-        }
-        DBG printf("FAT for channel %u is true\r\n", i + 1);
-    }
-}
-    
-    
-//
-uint8_t log_get_arch_channel_number(void)
-{
-    return (uint8_t)ARCH_DIO_CH_NUMBER;
-}
-
-#endif
-
+#include "at32f403a_407.h"
+#include "log_dio.h"
+#include "settings_api.h"
+#include "ringfs.h"
+#include "ringfs_api.h"
+
+
+#if defined (MDIO_88)
+
+
+#undef DBG
+#define DBG if(1)
+
+
+EventGroupHandle_t archive_event;
+
+uint32_t archive_cnt[ARCH_DIO_CH_NUMBER] = {0};
+
+struct ringfs fs_ch_arch[ARCH_DIO_CH_NUMBER];
+
+
+static struct ringfs_flash_partition fingfs_flash_ch_arch[ARCH_DIO_CH_NUMBER] = 
+{
+    {
+        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET,
+        .sector_erase = op_sector_erase,
+        .program = op_program,
+        .read = op_read,
+    },
+    {
+        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*1,
+        .sector_erase = op_sector_erase,
+        .program = op_program,
+        .read = op_read,
+    },
+    {
+        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*2,
+        .sector_erase = op_sector_erase,
+        .program = op_program,
+        .read = op_read,
+    },
+    {
+        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*3,
+        .sector_erase = op_sector_erase,
+        .program = op_program,
+        .read = op_read,
+    },
+    {
+        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*4,
+        .sector_erase = op_sector_erase,
+        .program = op_program,
+        .read = op_read,
+    },
+    {
+        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*5,
+        .sector_erase = op_sector_erase,
+        .program = op_program,
+        .read = op_read,
+    },
+    {
+        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*6,
+        .sector_erase = op_sector_erase,
+        .program = op_program,
+        .read = op_read,
+    },
+    {
+        .sector_offset = ARCHIVE_FLASH_SECTOR_OFFSET + ARCHIVE_CHANNEL_OFFSET*7,
+        .sector_erase = op_sector_erase,
+        .program = op_program,
+        .read = op_read,
+    },
+};
+
+
+// Архив. 8 буферов на каждый канал.
+void log_dio_archive_init(void)
+{
+    for (uint8_t i = 0; i < ARCH_DIO_CH_NUMBER; i ++) 
+    {
+        fingfs_flash_ch_arch[i].sector_size = spi_flash_desc.sector_size;
+        
+        fingfs_flash_ch_arch[i].sector_count = ARCHIVE_FLASH_SECTOR_COUNT;
+        
+        ringfs_init(&fs_ch_arch[i], &fingfs_flash_ch_arch[i], 
+                    ARCHIV_ENTRY_VERSION + i, sizeof(archive_entry_t));
+        
+        if (ringfs_scan(&fs_ch_arch[i]) != 0) {
+            DBG printf("FAT for channel %u is false\r\n", i + 1);
+            ringfs_format(&fs_ch_arch[i]);
+        }
+        DBG printf("FAT for channel %u is true\r\n", i + 1);
+    }
+}
+    
+    
+//
+uint8_t log_get_arch_channel_number(void)
+{
+    return (uint8_t)ARCH_DIO_CH_NUMBER;
+}
+
+
+//
+void log_archive_task_device(void)
+{
+    int ret = 0;
+    EventBits_t bits;
+    archive_entry_t entry = {0};
+    
+    bits = xEventGroupWaitBits(archive_event, 
+                               ARCH_CH_1 | ARCH_CH_2 | ARCH_CH_3 | ARCH_CH_4 | 
+                               ARCH_CH_5 | ARCH_CH_6 | ARCH_CH_7 | ARCH_CH_8 |
+                               ARCH_CH_9 | ARCH_CH_10 | ARCH_CH_11 | ARCH_CH_12,
+                               pdTRUE, pdFALSE, portMAX_DELAY);
+     
+    for (uint32_t i = 0; i < ARCH_AI_CH_NUMBER; i++)
+    {
+        if (bits & (1 << i))
+        {
+            DBG printf("Archive event: %u\r\n", (1 << i));
+                
+            entry.timestamp = 0;
+            entry.input_value = di_get(i - 1);
+        
+            DBG printf("Append archive entry...");
+            ret = log_append((void*)&entry, ARCHIVE_ENTRY, i - 1);
+                
+            if (ret != 0) {
+                DBG printf("FAIL\r\n");
+            }
+            else {  
+                DBG printf("OK\r\n");
+            }
+        }
+    }
+}
+
+#endif

+ 34 - 26
fw/modules/log/log_dio.h

@@ -1,27 +1,35 @@
-#ifndef __LOG_DIO_H
-#define __LOG_DIO_H
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-  
-
-  
-//
-void log_dio_archive_init(void);
-
-//
-uint8_t log_get_arch_channel_number(void);
-
-
-extern uint32_t archive_cnt[];
-
-extern struct ringfs fs_ch_arch[];
-
-#ifdef __cplusplus
-}
-#endif
-
+#ifndef __LOG_DIO_H
+#define __LOG_DIO_H
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "FreeRTOS.h"
+#include "task.h"
+#include "semphr.h"
+#include "event_groups.h"  
+
+  
+//
+void log_dio_archive_init(void);
+
+//
+uint8_t log_get_arch_channel_number(void);
+
+//
+void log_archive_task_device(void);
+
+
+extern uint32_t archive_cnt[];
+
+extern struct ringfs fs_ch_arch[];
+
+extern EventGroupHandle_t archive_event;
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif // __LOG_DIO_H

+ 595 - 555
fw/modules/modbus/modbus_params.c

@@ -1,555 +1,595 @@
-#include "at32f403a_407.h"
-#include "modbus_params.h"
-#include "modbus_dio_params.h"
-#include "modbus_ai_params.h"
-#include "modbus_ao_params.h"
-#include "io.h"
-#include "uptime.h"
-#include "rtc.h"
-#include "digital_input.h"
-#include "digital_output.h"
-#include "log.h"
-#include "log_dio.h"
-#include "log_ai.h"
-#include "settings_api.h"
-#include "common_config.h"
-#include "swap.h"
-#include <string.h>
-
-
-mb_param_t mb_param[MB_PARAM_MAX];
-
-uint32_t rtc_sinhro;
-
-// Пароль для установки системных настроек
-uint16_t psw;   
-bool psw_ok = false;
-uint8_t fw_version[8];
-uint16_t save_sys_cmd = 0;  // Команда сохранения системных настроек
-uint16_t system_cmd = 0;	// Команда управления контроллером
-uint64_t value_64 = 0;
-uint8_t value_8 = 0;
-uint8_t arch_channel = 0;
-
-void get_time(uint8_t* buf, uint8_t size);
-void get_din_mode(uint8_t* buf, uint8_t size);
-
-void get_log_entries_number(uint8_t* buf, uint8_t size);
-
-void get_arch_ch_1(uint8_t* buf, uint8_t size);
-void get_arch_ch_2(uint8_t* buf, uint8_t size);
-void get_arch_ch_3(uint8_t* buf, uint8_t size);
-void get_arch_ch_4(uint8_t* buf, uint8_t size);
-void get_arch_ch_5(uint8_t* buf, uint8_t size);
-void get_arch_ch_6(uint8_t* buf, uint8_t size);
-void get_arch_ch_7(uint8_t* buf, uint8_t size);
-void get_arch_ch_8(uint8_t* buf, uint8_t size);
-
-void (*get_ch_entries_number[8])(uint8_t* buf, uint8_t size) = {
-    get_arch_ch_1, get_arch_ch_2, get_arch_ch_3, get_arch_ch_4,
-    get_arch_ch_5, get_arch_ch_6, get_arch_ch_7, get_arch_ch_8,
-};
-
-
-void get_rtc(uint8_t* buf, uint8_t size);
-
-
-
-//
-void mb_init_params(void)
-{
-    uint16_t index = 0;
-    uint16_t addr = 0;
-
-#if defined (MDIO_88)
-    index = mb_init_dio_params(0);
-#endif 
-    
-#if defined (MAI_12)
-    index = mb_init_ai_params(0);
-#endif    
-    
-#if defined (MAO_4)
-    index = mb_init_ao_params(0);
-#endif    
-    
-    // ---------------------------------------------------------------------- //
-	//	Управление контроллером. Разные параметры.
-	// ---------------------------------------------------------------------- //
-    
-    // Управление контроллером
-    mb_param[index].reg = 0x0800;
-	mb_param[index].size = 1;
-	mb_param[index].param = (uint8_t*)&system_cmd; // 
-	mb_param[index].set = mb_control;
-    mb_param[index].get = NULL;
-    mb_param[index].check_handler = mb_check_dummy;
-    
-    index++;
-    
-    // uptime
-    mb_param[index].reg = 0x0801;
-	mb_param[index].size = 2;
-	mb_param[index].param = (uint8_t*)&uptime; // 
-	mb_param[index].set = NULL;
-    mb_param[index].get = NULL;
-    mb_param[index].check_handler = mb_check_dummy;
-    
-    index++;
-    
-    // RTC
-    mb_param[index].reg = 0x0803;
-	mb_param[index].size = 4;
-	mb_param[index].param = (uint8_t*)&value_64; // 
-	mb_param[index].set = mb_set_rtc;
-    mb_param[index].get = get_rtc;
-    mb_param[index].check_handler = mb_check_dummy;
-    
-    index++;
-    
-    // ---------------------------------------------------------------------- //
-    // Журналы/рахивы
-    // ---------------------------------------------------------------------- //
-    
-    // Емкость журнала (максимальная)
-    mb_param[index].reg = 0x0900;
-	mb_param[index].size = 1;
-	mb_param[index].param = (uint8_t*)&log_entries_capacity; // 
-	mb_param[index].set = NULL;
-    mb_param[index].get = NULL;
-    mb_param[index].check_handler = mb_check_dummy;
-    
-    index++;
-    
-    // Текущее количество записей в журнале
-    mb_param[index].reg = 0x0901;
-	mb_param[index].size = 1;
-	mb_param[index].param = NULL; // 
-	mb_param[index].set = NULL;
-    mb_param[index].get = get_log_entries_number;
-    mb_param[index].check_handler = mb_check_dummy;
-    
-    index++;
-    
-    // Емкость архива (максимальная)
-    mb_param[index].reg = 0x0902;
-	mb_param[index].size = 1;
-	mb_param[index].param = (uint8_t*)&archive_entries_capacity; // 
-	mb_param[index].set = NULL;
-    mb_param[index].get = NULL;
-    mb_param[index].check_handler = mb_check_dummy;
-    
-    index++;
-    
-#if 0    
-// TODO    
-    
-    // Текущее количество записей в архиве по каждому каналу
-    addr = 0x0903;
-    for (int i = 0; i < ARCH_CH_NUMBER; i++)
-    {
-        mb_param[index].reg = addr;
-        mb_param[index].size = 1;
-        mb_param[index].param = NULL;
-        mb_param[index].set = NULL;
-        mb_param[index].get = get_ch_entries_number[i];
-        mb_param[index].check_handler = mb_check_dummy;
-        
-        addr++;
-        index++;      
-    }  
-    
-    // Период архива. Регистры 0x0904 - 0x090B
-    addr = 0x090B;
-    for (int i = 0; i < ARCH_CH_NUMBER; i++)
-    {
-        mb_param[index].reg = addr;
-        mb_param[index].size = 1;
-        mb_param[index].param = (uint8_t*)&settings.period_archive[i];  // Счетчик ипульсов
-        mb_param[index].set = NULL;
-        mb_param[index].get = NULL;
-        mb_param[index].check_handler = mb_check_archiv_per;
-        
-        addr++;
-        index++;
-    }
-#endif    
-    
-	// ---------------------------------------------------------------------- //
-	//	Системные настройки
-	// ---------------------------------------------------------------------- //
-
-    // Код модели (только чтение). Определяется прошивкой.
-    mb_param[index].reg = 0x0080;
-	mb_param[index].size = 1;
-	mb_param[index].param = (uint8_t*)&model_code; // 
-	mb_param[index].set = NULL;
-    mb_param[index].get = NULL;
-    mb_param[index].check_handler = mb_check_dummy;
-    
-    index++;
-    
-    // Дата производства Unix формат (чтение/запись по паролю)
-    mb_param[index].reg = 0x0081;
-	mb_param[index].size = 2;
-	mb_param[index].param = (uint8_t*)&temp_sys_settings.prod_date; // 
-	mb_param[index].set = NULL;
-    mb_param[index].get = NULL;
-    mb_param[index].check_handler = mb_check_dummy;
-    
-    index++;
-
-    // Серийный номер (чтение/запись по паролю).
-    mb_param[index].reg = 0x0083;
-	mb_param[index].size = 2;
-	mb_param[index].param = (uint8_t*)&temp_sys_settings.sn; // 
-	mb_param[index].set = NULL;
-    mb_param[index].get = NULL;
-    mb_param[index].check_handler = mb_check_dummy;
-    
-    index++;
-    
-    // Версия ПО (только чтение).
-    memcpy(&fw_version, FW_VERSION, 8);
-    mb_param[index].reg = 0x0085;
-	mb_param[index].size = 4;
-	mb_param[index].param = (uint8_t*)&fw_version; // 
-	mb_param[index].set = NULL;
-    mb_param[index].get = NULL;
-    mb_param[index].check_handler = mb_check_dummy;
-    
-    index++;
-    
-    // Статус тестирования (чтение/запись по паролю).
-    mb_param[index].reg = 0x0089;
-	mb_param[index].size = 1;
-	mb_param[index].param = (uint8_t*)&temp_sys_settings.test_state; // 
-	mb_param[index].set = NULL;
-    mb_param[index].get = NULL;
-    mb_param[index].check_handler = mb_check_dummy;
-    
-    index++;
-    
-    // Пароль
-    mb_param[index].reg = 0x008A;
-	mb_param[index].size = 1;
-	mb_param[index].param = (uint8_t*)&psw; // 
-	mb_param[index].set = mb_password;
-    mb_param[index].get = NULL;
-    mb_param[index].check_handler = mb_check_dummy;
-    
-    index++;
-    
-    // Команда на сохранение системных настроек
-    mb_param[index].reg = 0x008B;
-	mb_param[index].size = 1;
-	mb_param[index].param = (uint8_t*)&save_sys_cmd; // 
-	mb_param[index].set = mb_sys_settings_save;
-    mb_param[index].get = NULL;
-    mb_param[index].check_handler = mb_check_dummy;
-    
-    index++;
-}
-
-
-// Возвращает размер параметра в регистрах
-bool mb_find_param(uint16_t reg, uint16_t *index, uint16_t *size)
-{
-	for (uint16_t i = 0; i < MB_PARAM_MAX; i++)
-	{
-		if (mb_param[i].reg == reg)
-		{
-			*index = i;
-			*size = mb_param[i].size;
-			return true;
-		}
-	}
-	return false;
-}
-
-
-//
-mb_delay_action_t mb_set_param(uint8_t *buf, uint16_t index)
-{
-	uint8_t *ptr = mb_param[index].param;
-
-    // Если параметр только для чтения
-    if (mb_param[index].check_handler == NULL)
-        return MB_NO_ACTION;
-    
-	for (uint16_t i = 0; i < 2*mb_param[index].size; i++)
-	{
-		*ptr = buf[2*mb_param[index].size - 1 - i];
-		ptr++;
-	}
-  
-/*    
-    if (mb_param[index].check_handler != NULL)
-        mb_param[index].check_handler();
-*/    
-    
-    mb_param[index].check_handler();
-    
-    if (mb_param[index].set != NULL)
-        return mb_param[index].set();
-    else
-        return MB_NO_ACTION;
-    
-/*    
-    if (mb_param[index].f_activity)
-        return mb_param[index].set_handler();
-    else
-        return MB_NO_ACTION;
-*/    
-}
-
-
-//
-void mb_get_param(uint8_t *buf, uint16_t index)
-{
-    uint8_t *ptr;
-	
-    if (mb_param[index].get != NULL) {
-        mb_param[index].get(buf, mb_param[index].size);
-        return;
-    }
-
-    ptr = mb_param[index].param + 2*mb_param[index].size - 1;
-
-	for (uint16_t i = 0; i < 2*mb_param[index].size; i++)
-	{
-		*buf = *ptr;
-		buf++;
-		ptr--;
-	}
-}
-
-
-
-
-
-// -------------------------------------------------------------------------- //
-//                          Чтение параметров
-// -------------------------------------------------------------------------- //
-
-#if 0
-void get_time(uint8_t* buf, uint8_t size)
-{
-    uint32_t rtc_unix = RTC_GetUnixTime();
-    uint8_t *ptr = (uint8_t*)&rtc_unix + 2*size - 1;
-
-    for (uint16_t i = 0; i < 2*size; i++)
-	{
-		*buf = *ptr;
-		buf++;
-		ptr--;
-	}
-}
-#endif
-
-
-
-//
-void get_din_mode(uint8_t* buf, uint8_t size)
-{
-    
-}
-
-//
-void get_log_entries_number(uint8_t* buf, uint8_t size)
-{
-    static uint16_t capacity;
-    
-    capacity = swap_uint16(log_capacity());
-    memcpy(buf, &capacity, 2);
-    //buf = (uint8_t*)&capacity;
-}
-
-//
-void get_arch_ch_1(uint8_t* buf, uint8_t size)
-{
-    static uint16_t capacity;
-      
-    capacity = swap_uint16(log_arch_capacity(0));
-    memcpy(buf, &capacity, 2);
-}
-
-//
-void get_arch_ch_2(uint8_t* buf, uint8_t size)
-{
-    static uint16_t capacity;
-      
-    capacity = swap_uint16(log_arch_capacity(1));
-    memcpy(buf, &capacity, 2);
-}
-
-//
-void get_arch_ch_3(uint8_t* buf, uint8_t size)
-{
-    static uint16_t capacity;
-      
-    capacity = swap_uint16(log_arch_capacity(2));
-    memcpy(buf, &capacity, 2);
-}
-
-//
-void get_arch_ch_4(uint8_t* buf, uint8_t size)
-{
-    static uint16_t capacity;
-      
-    capacity = swap_uint16(log_arch_capacity(3));
-    memcpy(buf, &capacity, 2);
-}
-
-//
-void get_arch_ch_5(uint8_t* buf, uint8_t size)
-{
-    static uint16_t capacity;
-      
-    capacity = swap_uint16(log_arch_capacity(4));
-    memcpy(buf, &capacity, 2);
-}
-
-//
-void get_arch_ch_6(uint8_t* buf, uint8_t size)
-{
-    static uint16_t capacity;
-      
-    capacity = swap_uint16(log_arch_capacity(5));
-    memcpy(buf, &capacity, 2);
-}
-
-//
-void get_arch_ch_7(uint8_t* buf, uint8_t size)
-{
-    static uint16_t capacity;
-      
-    capacity = swap_uint16(log_arch_capacity(6));
-    memcpy(buf, &capacity, 2);
-}
-
-//
-void get_arch_ch_8(uint8_t* buf, uint8_t size)
-{
-    static uint16_t capacity;
-      
-    capacity = swap_uint16(log_arch_capacity(7));
-    memcpy(buf, &capacity, 2);
-}
-
-//
-void get_rtc(uint8_t* buf, uint8_t size)
-{
-    uint64_t rtc = swap_uint64(rtc_get_ms());
-        
-    memcpy(buf, &rtc, 8);
-}
-
-
-// -------------------------------------------------------------------------- //
-//                          Установка параметров
-// -------------------------------------------------------------------------- //
-
-//
-mb_delay_action_t mb_set_time(void)
-{
-    TM_RTC_SetDataTimeUnix(rtc_sinhro);
-    
-    return MB_NO_ACTION;
-}
-
-//
-mb_delay_action_t mb_password(void)
-{
-    if (psw != MB_PASSWORD)
-        return MB_PAS_ERR;
-    else {
-        if (psw_ok == false) {
-            psw_ok = true;
-            return MB_PAS_OK;
-        }
-        else
-            return MB_NO_ACTION;
-    }
-}
-
-//
-mb_delay_action_t mb_sys_settings_save(void)
-{
-    if (save_sys_cmd == 1)
-        return MB_SAVE_SYS_SETTINGS;
-    else
-        return MB_NO_ACTION;
-}
-
-//
-mb_delay_action_t mb_control(void)
-{
-    if (system_cmd == MB_COM_SETTINGS_SAVE)
-        return MB_SAVE_SETTINGS;
-    else if (system_cmd == MB_COM_LOG_CLEAR)
-        return MB_LOG_CLEAR;
-    else if ((system_cmd >= (uint8_t)MB_COM_ARCH_CLEAR_1) && (system_cmd <= (uint8_t)MB_COM_ARCH_CLEAR_8)) {
-        arch_channel = system_cmd;
-        return MB_ARCHIVE_CLEAR;
-    }
-    return MB_NO_ACTION;
-    
-#if 0
-    if (system_cmd == 1)
-        return MB_SAVE_SETTINGS;
-    else if (system_cmd == 2)
-        return MB_DEF_SETTINGS;
-    else if (system_cmd == 3)
-        return MB_RESET;
-    else if (system_cmd == 4)
-        return MB_PART_DEF_SETTINGS;
-
-    return MB_NO_ACTION;
-#endif    
-}
-
-//
-mb_delay_action_t mb_set_rtc(void)
-{
-    float delta;
-    uint64_t now = rtc_get_ms();
-
-    if (now >= value_64)
-        delta = (float)(now - value_64);
-    else
-        delta = (float)(value_64 - now);
-    
-    
-    rtc_set_in_ms((uint32_t)(value_64/1000));
-    
-    // -------------------------------------------------------------------------- //
-    // EVENT. Перевод времени.
-    log_add_entry(LOG_CLOCK_CHANGE, LOG_EVENT_STATE_OK, 0, delta);
-    
-    
-    return MB_NO_ACTION;
-}
-
-// -------------------------------------------------------------------------- //
-//                      Проверка параметров                                   //
-// -------------------------------------------------------------------------- //
-
-//
-void mb_check_dummy(void)
-{
-}
-
-//
-void mb_check_archiv_per(void)
-{
-    uint8_t channel_number = log_get_arch_channel_number();
-  
-    for (uint8_t i = 0; i < channel_number; i++)
-    {
-        if (settings.period_archive[i] > (uint16_t)MAX_ARCHIVE_PERIOD)
-            settings.period_archive[i] = (uint16_t)MAX_ARCHIVE_PERIOD;
-    }
-}
-
-
+#include "at32f403a_407.h"
+#include "modbus_params.h"
+#include "modbus_dio_params.h"
+#include "modbus_ai_params.h"
+#include "modbus_ao_params.h"
+#include "io.h"
+#include "uptime.h"
+#include "rtc.h"
+#include "digital_input.h"
+#include "digital_output.h"
+#include "log.h"
+#include "log_dio.h"
+#include "log_ai.h"
+#include "settings_api.h"
+#include "common_config.h"
+#include "swap.h"
+#include <string.h>
+
+
+mb_param_t mb_param[MB_PARAM_MAX];
+
+uint32_t rtc_sinhro;
+
+// Пароль для установки системных настроек
+uint16_t psw;   
+bool psw_ok = false;
+uint8_t fw_version[8];
+uint16_t save_sys_cmd = 0;  // Команда сохранения системных настроек
+uint16_t system_cmd = 0;	// Команда управления контроллером
+uint64_t value_64 = 0;
+uint8_t value_8 = 0;
+uint8_t arch_channel = 0;
+
+void get_time(uint8_t* buf, uint8_t size);
+void get_din_mode(uint8_t* buf, uint8_t size);
+
+void get_log_entries_number(uint8_t* buf, uint8_t size);
+
+void get_arch_ch_1(uint8_t* buf, uint8_t size);
+void get_arch_ch_2(uint8_t* buf, uint8_t size);
+void get_arch_ch_3(uint8_t* buf, uint8_t size);
+void get_arch_ch_4(uint8_t* buf, uint8_t size);
+void get_arch_ch_5(uint8_t* buf, uint8_t size);
+void get_arch_ch_6(uint8_t* buf, uint8_t size);
+void get_arch_ch_7(uint8_t* buf, uint8_t size);
+void get_arch_ch_8(uint8_t* buf, uint8_t size);
+void get_arch_ch_9(uint8_t* buf, uint8_t size);
+void get_arch_ch_10(uint8_t* buf, uint8_t size);
+void get_arch_ch_11(uint8_t* buf, uint8_t size);
+void get_arch_ch_12(uint8_t* buf, uint8_t size);
+
+void (*get_ch_entries_number[12])(uint8_t* buf, uint8_t size) = {
+    get_arch_ch_1, get_arch_ch_2, get_arch_ch_3, get_arch_ch_4,
+    get_arch_ch_5, get_arch_ch_6, get_arch_ch_7, get_arch_ch_8,
+    get_arch_ch_9, get_arch_ch_10, get_arch_ch_11, get_arch_ch_12
+};
+
+
+void get_rtc(uint8_t* buf, uint8_t size);
+
+
+
+//
+void mb_init_params(void)
+{
+    uint16_t index = 0;
+    uint16_t addr = 0;
+
+#if defined (MDIO_88)
+    index = mb_init_dio_params(0);
+#endif 
+    
+#if defined (MAI_12)
+    index = mb_init_ai_params(0);
+#endif    
+    
+#if defined (MAO_4)
+    index = mb_init_ao_params(0);
+#endif    
+    
+    // ---------------------------------------------------------------------- //
+	//	Управление контроллером. Разные параметры.
+	// ---------------------------------------------------------------------- //
+    
+    // Управление контроллером
+    mb_param[index].reg = 0x0800;
+	mb_param[index].size = 1;
+	mb_param[index].param = (uint8_t*)&system_cmd; // 
+	mb_param[index].set = mb_control;
+    mb_param[index].get = NULL;
+    mb_param[index].check_handler = mb_check_dummy;
+    
+    index++;
+    
+    // uptime
+    mb_param[index].reg = 0x0801;
+	mb_param[index].size = 2;
+	mb_param[index].param = (uint8_t*)&uptime; // 
+	mb_param[index].set = NULL;
+    mb_param[index].get = NULL;
+    mb_param[index].check_handler = mb_check_dummy;
+    
+    index++;
+    
+    // RTC
+    mb_param[index].reg = 0x0803;
+	mb_param[index].size = 4;
+	mb_param[index].param = (uint8_t*)&value_64; // 
+	mb_param[index].set = mb_set_rtc;
+    mb_param[index].get = get_rtc;
+    mb_param[index].check_handler = mb_check_dummy;
+    
+    index++;
+    
+    // ---------------------------------------------------------------------- //
+    // Журналы/рахивы
+    // ---------------------------------------------------------------------- //
+    
+    // Емкость журнала (максимальная)
+    mb_param[index].reg = 0x0900;
+	mb_param[index].size = 1;
+	mb_param[index].param = (uint8_t*)&log_entries_capacity; // 
+	mb_param[index].set = NULL;
+    mb_param[index].get = NULL;
+    mb_param[index].check_handler = mb_check_dummy;
+    
+    index++;
+    
+    // Текущее количество записей в журнале
+    mb_param[index].reg = 0x0901;
+	mb_param[index].size = 1;
+	mb_param[index].param = NULL; // 
+	mb_param[index].set = NULL;
+    mb_param[index].get = get_log_entries_number;
+    mb_param[index].check_handler = mb_check_dummy;
+    
+    index++;
+    
+    // Емкость архива (максимальная)
+    mb_param[index].reg = 0x0902;
+	mb_param[index].size = 1;
+	mb_param[index].param = (uint8_t*)&archive_entries_capacity; // 
+	mb_param[index].set = NULL;
+    mb_param[index].get = NULL;
+    mb_param[index].check_handler = mb_check_dummy;
+    
+    index++;
+    
+    
+    uint8_t channel_number = log_get_arch_channel_number();
+    
+    // Текущее количество записей в архиве по каждому каналу
+    addr = 0x0903;
+    for (int i = 0; i < channel_number; i++)
+    {
+        mb_param[index].reg = addr;
+        mb_param[index].size = 1;
+        mb_param[index].param = NULL;
+        mb_param[index].set = NULL;
+        mb_param[index].get = get_ch_entries_number[i];
+        mb_param[index].check_handler = mb_check_dummy;
+        
+        addr++;
+        index++;      
+    }  
+    
+    // Период архива. 
+    addr = 0x090F;
+    for (int i = 0; i < channel_number; i++)
+    {
+        mb_param[index].reg = addr;
+        mb_param[index].size = 1;
+        mb_param[index].param = (uint8_t*)&settings.period_archive[i];  // Счетчик ипульсов
+        mb_param[index].set = NULL;
+        mb_param[index].get = NULL;
+        mb_param[index].check_handler = mb_check_archiv_per;
+        
+        addr++;
+        index++;
+    }
+    
+	// ---------------------------------------------------------------------- //
+	//	Системные настройки
+	// ---------------------------------------------------------------------- //
+
+    // Код модели (только чтение). Определяется прошивкой.
+    mb_param[index].reg = 0x0080;
+	mb_param[index].size = 1;
+	mb_param[index].param = (uint8_t*)&model_code; // 
+	mb_param[index].set = NULL;
+    mb_param[index].get = NULL;
+    mb_param[index].check_handler = mb_check_dummy;
+    
+    index++;
+    
+    // Дата производства Unix формат (чтение/запись по паролю)
+    mb_param[index].reg = 0x0081;
+	mb_param[index].size = 2;
+	mb_param[index].param = (uint8_t*)&temp_sys_settings.prod_date; // 
+	mb_param[index].set = NULL;
+    mb_param[index].get = NULL;
+    mb_param[index].check_handler = mb_check_dummy;
+    
+    index++;
+
+    // Серийный номер (чтение/запись по паролю).
+    mb_param[index].reg = 0x0083;
+	mb_param[index].size = 2;
+	mb_param[index].param = (uint8_t*)&temp_sys_settings.sn; // 
+	mb_param[index].set = NULL;
+    mb_param[index].get = NULL;
+    mb_param[index].check_handler = mb_check_dummy;
+    
+    index++;
+    
+    // Версия ПО (только чтение).
+    memcpy(&fw_version, FW_VERSION, 8);
+    mb_param[index].reg = 0x0085;
+	mb_param[index].size = 4;
+	mb_param[index].param = (uint8_t*)&fw_version; // 
+	mb_param[index].set = NULL;
+    mb_param[index].get = NULL;
+    mb_param[index].check_handler = mb_check_dummy;
+    
+    index++;
+    
+    // Статус тестирования (чтение/запись по паролю).
+    mb_param[index].reg = 0x0089;
+	mb_param[index].size = 1;
+	mb_param[index].param = (uint8_t*)&temp_sys_settings.test_state; // 
+	mb_param[index].set = NULL;
+    mb_param[index].get = NULL;
+    mb_param[index].check_handler = mb_check_dummy;
+    
+    index++;
+    
+    // Пароль
+    mb_param[index].reg = 0x008A;
+	mb_param[index].size = 1;
+	mb_param[index].param = (uint8_t*)&psw; // 
+	mb_param[index].set = mb_password;
+    mb_param[index].get = NULL;
+    mb_param[index].check_handler = mb_check_dummy;
+    
+    index++;
+    
+    // Команда на сохранение системных настроек
+    mb_param[index].reg = 0x008B;
+	mb_param[index].size = 1;
+	mb_param[index].param = (uint8_t*)&save_sys_cmd; // 
+	mb_param[index].set = mb_sys_settings_save;
+    mb_param[index].get = NULL;
+    mb_param[index].check_handler = mb_check_dummy;
+    
+    index++;
+}
+
+
+// Возвращает размер параметра в регистрах
+bool mb_find_param(uint16_t reg, uint16_t *index, uint16_t *size)
+{
+	for (uint16_t i = 0; i < MB_PARAM_MAX; i++)
+	{
+		if (mb_param[i].reg == reg)
+		{
+			*index = i;
+			*size = mb_param[i].size;
+			return true;
+		}
+	}
+	return false;
+}
+
+
+//
+mb_delay_action_t mb_set_param(uint8_t *buf, uint16_t index)
+{
+	uint8_t *ptr = mb_param[index].param;
+
+    // Если параметр только для чтения
+    if (mb_param[index].check_handler == NULL)
+        return MB_NO_ACTION;
+    
+	for (uint16_t i = 0; i < 2*mb_param[index].size; i++)
+	{
+		*ptr = buf[2*mb_param[index].size - 1 - i];
+		ptr++;
+	}
+  
+/*    
+    if (mb_param[index].check_handler != NULL)
+        mb_param[index].check_handler();
+*/    
+    
+    mb_param[index].check_handler();
+    
+    if (mb_param[index].set != NULL)
+        return mb_param[index].set();
+    else
+        return MB_NO_ACTION;
+    
+/*    
+    if (mb_param[index].f_activity)
+        return mb_param[index].set_handler();
+    else
+        return MB_NO_ACTION;
+*/    
+}
+
+
+//
+void mb_get_param(uint8_t *buf, uint16_t index)
+{
+    uint8_t *ptr;
+	
+    if (mb_param[index].get != NULL) {
+        mb_param[index].get(buf, mb_param[index].size);
+        return;
+    }
+
+    ptr = mb_param[index].param + 2*mb_param[index].size - 1;
+
+	for (uint16_t i = 0; i < 2*mb_param[index].size; i++)
+	{
+		*buf = *ptr;
+		buf++;
+		ptr--;
+	}
+}
+
+
+
+
+
+// -------------------------------------------------------------------------- //
+//                          Чтение параметров
+// -------------------------------------------------------------------------- //
+
+#if 0
+void get_time(uint8_t* buf, uint8_t size)
+{
+    uint32_t rtc_unix = RTC_GetUnixTime();
+    uint8_t *ptr = (uint8_t*)&rtc_unix + 2*size - 1;
+
+    for (uint16_t i = 0; i < 2*size; i++)
+	{
+		*buf = *ptr;
+		buf++;
+		ptr--;
+	}
+}
+#endif
+
+
+
+//
+void get_din_mode(uint8_t* buf, uint8_t size)
+{
+    
+}
+
+//
+void get_log_entries_number(uint8_t* buf, uint8_t size)
+{
+    static uint16_t capacity;
+    
+    capacity = swap_uint16(log_capacity());
+    memcpy(buf, &capacity, 2);
+    //buf = (uint8_t*)&capacity;
+}
+
+//
+void get_arch_ch_1(uint8_t* buf, uint8_t size)
+{
+    static uint16_t capacity;
+      
+    capacity = swap_uint16(log_arch_capacity(0));
+    memcpy(buf, &capacity, 2);
+}
+
+//
+void get_arch_ch_2(uint8_t* buf, uint8_t size)
+{
+    static uint16_t capacity;
+      
+    capacity = swap_uint16(log_arch_capacity(1));
+    memcpy(buf, &capacity, 2);
+}
+
+//
+void get_arch_ch_3(uint8_t* buf, uint8_t size)
+{
+    static uint16_t capacity;
+      
+    capacity = swap_uint16(log_arch_capacity(2));
+    memcpy(buf, &capacity, 2);
+}
+
+//
+void get_arch_ch_4(uint8_t* buf, uint8_t size)
+{
+    static uint16_t capacity;
+      
+    capacity = swap_uint16(log_arch_capacity(3));
+    memcpy(buf, &capacity, 2);
+}
+
+//
+void get_arch_ch_5(uint8_t* buf, uint8_t size)
+{
+    static uint16_t capacity;
+      
+    capacity = swap_uint16(log_arch_capacity(4));
+    memcpy(buf, &capacity, 2);
+}
+
+//
+void get_arch_ch_6(uint8_t* buf, uint8_t size)
+{
+    static uint16_t capacity;
+      
+    capacity = swap_uint16(log_arch_capacity(5));
+    memcpy(buf, &capacity, 2);
+}
+
+//
+void get_arch_ch_7(uint8_t* buf, uint8_t size)
+{
+    static uint16_t capacity;
+      
+    capacity = swap_uint16(log_arch_capacity(6));
+    memcpy(buf, &capacity, 2);
+}
+
+//
+void get_arch_ch_8(uint8_t* buf, uint8_t size)
+{
+    static uint16_t capacity;
+      
+    capacity = swap_uint16(log_arch_capacity(7));
+    memcpy(buf, &capacity, 2);
+}
+
+//
+void get_arch_ch_9(uint8_t* buf, uint8_t size)
+{
+    static uint16_t capacity;
+      
+    capacity = swap_uint16(log_arch_capacity(8));
+    memcpy(buf, &capacity, 2);
+}
+
+//
+void get_arch_ch_10(uint8_t* buf, uint8_t size)
+{
+    static uint16_t capacity;
+      
+    capacity = swap_uint16(log_arch_capacity(9));
+    memcpy(buf, &capacity, 2);
+}
+
+//
+void get_arch_ch_11(uint8_t* buf, uint8_t size)
+{
+    static uint16_t capacity;
+      
+    capacity = swap_uint16(log_arch_capacity(10));
+    memcpy(buf, &capacity, 2);
+}
+
+//
+void get_arch_ch_12(uint8_t* buf, uint8_t size)
+{
+    static uint16_t capacity;
+      
+    capacity = swap_uint16(log_arch_capacity(11));
+    memcpy(buf, &capacity, 2);
+}
+
+//
+void get_rtc(uint8_t* buf, uint8_t size)
+{
+    uint64_t rtc = swap_uint64(rtc_get_ms());
+        
+    memcpy(buf, &rtc, 8);
+}
+
+
+// -------------------------------------------------------------------------- //
+//                          Установка параметров
+// -------------------------------------------------------------------------- //
+
+//
+mb_delay_action_t mb_set_time(void)
+{
+    TM_RTC_SetDataTimeUnix(rtc_sinhro);
+    
+    return MB_NO_ACTION;
+}
+
+//
+mb_delay_action_t mb_password(void)
+{
+    if (psw != MB_PASSWORD)
+        return MB_PAS_ERR;
+    else {
+        if (psw_ok == false) {
+            psw_ok = true;
+            return MB_PAS_OK;
+        }
+        else
+            return MB_NO_ACTION;
+    }
+}
+
+//
+mb_delay_action_t mb_sys_settings_save(void)
+{
+    if (save_sys_cmd == 1)
+        return MB_SAVE_SYS_SETTINGS;
+    else
+        return MB_NO_ACTION;
+}
+
+//
+mb_delay_action_t mb_control(void)
+{
+    if (system_cmd == MB_COM_SETTINGS_SAVE)
+        return MB_SAVE_SETTINGS;
+    else if (system_cmd == MB_COM_LOG_CLEAR)
+        return MB_LOG_CLEAR;
+    else if ((system_cmd >= (uint8_t)MB_COM_ARCH_CLEAR_1) && (system_cmd <= (uint8_t)MB_COM_ARCH_CLEAR_8)) {
+        arch_channel = system_cmd;
+        return MB_ARCHIVE_CLEAR;
+    }
+    return MB_NO_ACTION;
+    
+#if 0
+    if (system_cmd == 1)
+        return MB_SAVE_SETTINGS;
+    else if (system_cmd == 2)
+        return MB_DEF_SETTINGS;
+    else if (system_cmd == 3)
+        return MB_RESET;
+    else if (system_cmd == 4)
+        return MB_PART_DEF_SETTINGS;
+
+    return MB_NO_ACTION;
+#endif    
+}
+
+//
+mb_delay_action_t mb_set_rtc(void)
+{
+    float delta;
+    uint64_t now = rtc_get_ms();
+
+    if (now >= value_64)
+        delta = (float)(now - value_64);
+    else
+        delta = (float)(value_64 - now);
+    
+    
+    rtc_set_in_ms((uint32_t)(value_64/1000));
+    
+    // -------------------------------------------------------------------------- //
+    // EVENT. Перевод времени.
+    log_add_entry(LOG_CLOCK_CHANGE, LOG_EVENT_STATE_OK, 0, delta);
+    
+    
+    return MB_NO_ACTION;
+}
+
+// -------------------------------------------------------------------------- //
+//                      Проверка параметров                                   //
+// -------------------------------------------------------------------------- //
+
+//
+void mb_check_dummy(void)
+{
+}
+
+//
+void mb_check_archiv_per(void)
+{
+    uint8_t channel_number = log_get_arch_channel_number();
+  
+    for (uint8_t i = 0; i < channel_number; i++)
+    {
+        if (settings.period_archive[i] > (uint16_t)MAX_ARCHIVE_PERIOD)
+            settings.period_archive[i] = (uint16_t)MAX_ARCHIVE_PERIOD;
+    }
+}
+
+

+ 237 - 237
fw/modules/settings/settings_api.h

@@ -1,237 +1,237 @@
-#ifndef SETTINGS_API_H
-#define SETTINGS_API_H
-
-#include "at32f403a_407.h"
-#include "model_cfg.h"
-#include "usart.h"
-#include "sys_api.h"
-#include "io.h"
-#include "mb.h"
-#include "mbport.h"
-#include "log.h"
-#include "analog_input.h"
-#include "analog_output.h"
-#include <stdbool.h>
-
-
-// Изменить версию если поменялась структура настроек
-#define SETTINGS_VERSION    0x01
-
-
-// ------------------------------------------------------------------- //
-//					 	Граничные значения
-// ------------------------------------------------------------------- //
-
-#define MAX_ARCHIVE_PERIOD  43200
-
-// ------------------------------------------------------------------- //
-//					 	Настройки лога и архива
-// ------------------------------------------------------------------- //
-
-#define ARCH_DIO_CH_NUMBER              8
-
-#define ARCH_AI_CH_NUMBER               12  
-
-
-// ------------------------------------------------------------------- //
-//					 		Draft
-// ------------------------------------------------------------------- //
-
-/*
-1. Uptime (uint32_t)                    // +
-2. Realtime (unix timestamp, uint32_t)  // +
-3. Версия прошивки                      // +
-4. Модель (char 16 байт)                // +
-
-*/
-
-
-
-// ------------------------------------------------------------------- //
-//					 		Modbus
-// ------------------------------------------------------------------- //
-
-#define MB_STOP_BIT_MASK    0x03
-#define MB_STOP_BIT_1       0x00
-#define MB_STOP_BIT_2       0x02
-
-#define MB_PARITY_MASK      (0x03 << 3)
-#define MB_NO_PAR           (0x00 << 3)
-#define MB_EVEN_PAR         (0x02 << 3)
-#define MB_ODD_PAR          (0x03 << 3)
-
-#define MB_BRD_MASK         (0x07 << 5)
-#define MB_BRD_2400         (0x00 << 5)
-#define MB_BRD_4800         (0x01 << 5)
-#define MB_BRD_9600         (0x02 << 5)
-#define MB_BRD_19200        (0x03 << 5)
-#define MB_BRD_38400        (0x04 << 5)
-#define MB_BRD_57600        (0x05 << 5)
-#define MB_BRD_115200       (0x06 << 5)
-
-
-
-// Modbus 
-typedef struct
-{
-	rate_t     baud;		// Скорость порта 
-	parity_t   parity;		// Четность 
-	databits_t databits;	// Число бит данных
-	stopbits_t stopbits;	// Число стоп-бит  
-    
-} modbus_t;
-
-
-// Общая структура настроек для IAP и FW
-typedef struct
-{
-    uint16_t    mb_port;    // Настройки порта для modbus
-    //char model[MODEL_LEN];  // Модель
-} com_settings_t;
-
-
-#if 0
-// Дискретные входы
-typedef struct
-{
-    uint16_t debounce_time; // период антидребезга в мс (0 - 10 сек)
-} dinput_t;
-#endif
-
-
-// Полная структура настроек
-typedef struct
-{
-    com_settings_t  com_settings;
-    uint32_t    critical_section_crc;
-/* WARNING! До поля CritSecCRC включительно структура настроек должна быть
-* идентичной между бутлоадером и основным ПО и не должна изменяться при обновлении ПО.
-* Контроль целостности настроек внутри IAP выполняется только для критической секции,
-* т.к. контроль целостности всей структуры не имеет смысла
-* (структура настроек всегда будет отличаться внутри основного ПО).
-* В случае повреждения критического сектора, загружаются параметры по умолчанию. */    
-    
-    uint16_t    settings_version;   // Версия структуры настроек 
-    uint32_t    control_word;       // Слово для контроля целостности структуры настроек
-    
-#if defined (MDIO_88)          
-    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]; // значение заполнения ШИМ в безопасном режиме
-    uint16_t    do_pwm_period[DO_NUMBER];  // период ШИМ в [0.1с (10..1000)]
-    uint16_t    do_pwm_period_save[DO_NUMBER]; // период ШИМ в безопасном режиме [0.1с (10..1000)]
-    
-    uint16_t    period_archive[ARCH_DIO_CH_NUMBER]; // период архивирования
-#endif
-
-#if defined (MAI_12)
-    ai_t        ai[AI_COMMON_NUMBER];   // 
-    ai_t        ai_add[AI_ADD_NUMBER];  //
-     
-    uint16_t    ai_state_bits;      // статус входа (для 12 основных), 0 - выкл, 1 - вкл
-    uint16_t    ai_mode_bits;       // режим работы входов (для 12 основных), 0 - измерение напряжения, 1 - тока
-    uint16_t    ext_sens_power;     // питание внешних датчиков, 0 - выкл, 1 - вкл
-    
-    uint16_t    period_archive[ARCH_AI_CH_NUMBER]; // период архивирования
-#endif    
-
-#if defined (MAO_4)    
-    
-    ao_t        ao[AO_NUMBER];      // параметры выходов 
-    ao_t        ao_save[AO_NUMBER]; // параметры выходов в безопасном режиме
-    
-    uint16_t    ao_state_bits;      // статус выхода, 0 - выкл, 1 - вкл
-    uint16_t    ao_state_save_bits; // статус выхода в безопасном режиме, 0 - выкл, 1 - вкл
-    uint16_t    ao_mode_bits;       // режим работы выходов, 0 - напряжения, 1 - ток
-    uint16_t    ao_mode_save_bits;  // режим работы выходов в безопасном режиме, 0 - напряжения, 1 - ток
-    
-#endif    
-    
-    bool        save_mode;          // безопасный режим, 0 - выкл, 1 - вкл
-    uint16_t    save_delay;         // время ожидания опроса (сек.)
-      
-    
-    
-} settings_t;
-
-
-
-// Загрузка структуры настроек из flesh
-void settings_load(settings_t *settings);
-
-//
-void init_settings(void);
-
-//
-void settings_read_from_flash(uint8_t *data, uint32_t size);
-
-//
-uint32_t settings_get_crc(settings_t *settings);
-
-//
-uint32_t settings_get_crit_sec_crc(settings_t *settings);
-
-// Сброс всех настроек в значения по умолчанию
-void settings_set_all_default(void);
-
-
-// -------------------------------------------------------------------------- //
-// Настройки по умолчанию
-
-//
-void settings_set_modbus_def(uint16_t *mb_port);
-
-//
-void settings_conv_modbus_def(modbus_t *mb_settings, uint16_t *mb_port);
-
-// Установка параметров Modbus
-void settings_set_modbus_params(uint16_t mb_port);
-
-//
-uint32_t settings_get_mb_baud(modbus_t *mb_settings);
-
-//
-eMBParity settings_get_mb_par(modbus_t *mb_settings);
-
-//
-void settings_init_mb_port(uint8_t mb_addr);
-
-// -------------------------------------------------------------------------- //
-
-// Запись структуры настроек во flash
-bool settings_save(settings_t *settings);
-
-//
-bool settings_save_with_log(void);
-
-//
-bool settings_write_to_flash(uint8_t *data, uint32_t size);
-
-// Очистка сектора настроек
-void settings_erase_flash_sector(void);
-
-//
-bool settings_is_changed(settings_t *new_settings);
-
-//
-void settings_print(void);
-
-
-// Системные настройки
-extern sys_settings_t sys_settings;
-
-// Копия системных настроек
-extern sys_settings_t temp_sys_settings;
-
-// Общая структура настроек
-extern settings_t settings;
-
-
-#endif /* #ifndef SETTINGS_API_H */
-
+#ifndef SETTINGS_API_H
+#define SETTINGS_API_H
+
+#include "at32f403a_407.h"
+#include "model_cfg.h"
+#include "usart.h"
+#include "sys_api.h"
+#include "io.h"
+#include "mb.h"
+#include "mbport.h"
+#include "log.h"
+#include "analog_input.h"
+#include "analog_output.h"
+#include <stdbool.h>
+
+
+// Изменить версию если поменялась структура настроек
+#define SETTINGS_VERSION    0x01
+
+
+// ------------------------------------------------------------------- //
+//					 	Граничные значения
+// ------------------------------------------------------------------- //
+
+#define MAX_ARCHIVE_PERIOD  43200
+
+// ------------------------------------------------------------------- //
+//					 	Настройки лога и архива
+// ------------------------------------------------------------------- //
+
+#define ARCH_DIO_CH_NUMBER              8
+
+#define ARCH_AI_CH_NUMBER               12 //12  
+
+
+// ------------------------------------------------------------------- //
+//					 		Draft
+// ------------------------------------------------------------------- //
+
+/*
+1. Uptime (uint32_t)                    // +
+2. Realtime (unix timestamp, uint32_t)  // +
+3. Версия прошивки                      // +
+4. Модель (char 16 байт)                // +
+
+*/
+
+
+
+// ------------------------------------------------------------------- //
+//					 		Modbus
+// ------------------------------------------------------------------- //
+
+#define MB_STOP_BIT_MASK    0x03
+#define MB_STOP_BIT_1       0x00
+#define MB_STOP_BIT_2       0x02
+
+#define MB_PARITY_MASK      (0x03 << 3)
+#define MB_NO_PAR           (0x00 << 3)
+#define MB_EVEN_PAR         (0x02 << 3)
+#define MB_ODD_PAR          (0x03 << 3)
+
+#define MB_BRD_MASK         (0x07 << 5)
+#define MB_BRD_2400         (0x00 << 5)
+#define MB_BRD_4800         (0x01 << 5)
+#define MB_BRD_9600         (0x02 << 5)
+#define MB_BRD_19200        (0x03 << 5)
+#define MB_BRD_38400        (0x04 << 5)
+#define MB_BRD_57600        (0x05 << 5)
+#define MB_BRD_115200       (0x06 << 5)
+
+
+
+// Modbus 
+typedef struct
+{
+	rate_t     baud;		// Скорость порта 
+	parity_t   parity;		// Четность 
+	databits_t databits;	// Число бит данных
+	stopbits_t stopbits;	// Число стоп-бит  
+    
+} modbus_t;
+
+
+// Общая структура настроек для IAP и FW
+typedef struct
+{
+    uint16_t    mb_port;    // Настройки порта для modbus
+    //char model[MODEL_LEN];  // Модель
+} com_settings_t;
+
+
+#if 0
+// Дискретные входы
+typedef struct
+{
+    uint16_t debounce_time; // период антидребезга в мс (0 - 10 сек)
+} dinput_t;
+#endif
+
+
+// Полная структура настроек
+typedef struct
+{
+    com_settings_t  com_settings;
+    uint32_t    critical_section_crc;
+/* WARNING! До поля CritSecCRC включительно структура настроек должна быть
+* идентичной между бутлоадером и основным ПО и не должна изменяться при обновлении ПО.
+* Контроль целостности настроек внутри IAP выполняется только для критической секции,
+* т.к. контроль целостности всей структуры не имеет смысла
+* (структура настроек всегда будет отличаться внутри основного ПО).
+* В случае повреждения критического сектора, загружаются параметры по умолчанию. */    
+    
+    uint16_t    settings_version;   // Версия структуры настроек 
+    uint32_t    control_word;       // Слово для контроля целостности структуры настроек
+    
+#if defined (MDIO_88)          
+    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]; // значение заполнения ШИМ в безопасном режиме
+    uint16_t    do_pwm_period[DO_NUMBER];  // период ШИМ в [0.1с (10..1000)]
+    uint16_t    do_pwm_period_save[DO_NUMBER]; // период ШИМ в безопасном режиме [0.1с (10..1000)]
+    
+    uint16_t    period_archive[ARCH_DIO_CH_NUMBER]; // период архивирования
+#endif
+
+#if defined (MAI_12)
+    ai_t        ai[AI_COMMON_NUMBER];   // 
+    ai_t        ai_add[AI_ADD_NUMBER];  //
+     
+    uint16_t    ai_state_bits;      // статус входа (для 12 основных), 0 - выкл, 1 - вкл
+    uint16_t    ai_mode_bits;       // режим работы входов (для 12 основных), 0 - измерение напряжения, 1 - тока
+    uint16_t    ext_sens_power;     // питание внешних датчиков, 0 - выкл, 1 - вкл
+    
+    uint16_t    period_archive[ARCH_AI_CH_NUMBER]; // период архивирования
+#endif    
+
+#if defined (MAO_4)    
+    
+    ao_t        ao[AO_NUMBER];      // параметры выходов 
+    ao_t        ao_save[AO_NUMBER]; // параметры выходов в безопасном режиме
+    
+    uint16_t    ao_state_bits;      // статус выхода, 0 - выкл, 1 - вкл
+    uint16_t    ao_state_save_bits; // статус выхода в безопасном режиме, 0 - выкл, 1 - вкл
+    uint16_t    ao_mode_bits;       // режим работы выходов, 0 - напряжения, 1 - ток
+    uint16_t    ao_mode_save_bits;  // режим работы выходов в безопасном режиме, 0 - напряжения, 1 - ток
+    
+#endif    
+    
+    bool        save_mode;          // безопасный режим, 0 - выкл, 1 - вкл
+    uint16_t    save_delay;         // время ожидания опроса (сек.)
+      
+    
+    
+} settings_t;
+
+
+
+// Загрузка структуры настроек из flesh
+void settings_load(settings_t *settings);
+
+//
+void init_settings(void);
+
+//
+void settings_read_from_flash(uint8_t *data, uint32_t size);
+
+//
+uint32_t settings_get_crc(settings_t *settings);
+
+//
+uint32_t settings_get_crit_sec_crc(settings_t *settings);
+
+// Сброс всех настроек в значения по умолчанию
+void settings_set_all_default(void);
+
+
+// -------------------------------------------------------------------------- //
+// Настройки по умолчанию
+
+//
+void settings_set_modbus_def(uint16_t *mb_port);
+
+//
+void settings_conv_modbus_def(modbus_t *mb_settings, uint16_t *mb_port);
+
+// Установка параметров Modbus
+void settings_set_modbus_params(uint16_t mb_port);
+
+//
+uint32_t settings_get_mb_baud(modbus_t *mb_settings);
+
+//
+eMBParity settings_get_mb_par(modbus_t *mb_settings);
+
+//
+void settings_init_mb_port(uint8_t mb_addr);
+
+// -------------------------------------------------------------------------- //
+
+// Запись структуры настроек во flash
+bool settings_save(settings_t *settings);
+
+//
+bool settings_save_with_log(void);
+
+//
+bool settings_write_to_flash(uint8_t *data, uint32_t size);
+
+// Очистка сектора настроек
+void settings_erase_flash_sector(void);
+
+//
+bool settings_is_changed(settings_t *new_settings);
+
+//
+void settings_print(void);
+
+
+// Системные настройки
+extern sys_settings_t sys_settings;
+
+// Копия системных настроек
+extern sys_settings_t temp_sys_settings;
+
+// Общая структура настроек
+extern settings_t settings;
+
+
+#endif /* #ifndef SETTINGS_API_H */
+

+ 2 - 1
fw/modules/terminal/terminal_sbs.cpp

@@ -128,7 +128,8 @@ int SbsTerminal::execute(int argc, const char * const *argv)
     }
     //
     if (strcmp(argv[0], "astate") == 0) {
-        log_archive_state(atoi(argv[1]));
+        if (argc > 1)
+            log_archive_state(atoi(argv[1]));
         return 0;
     }
     // ---------------------------------------------------------------------- //

BIN
output/fw.bin


Файловите разлики са ограничени, защото са твърде много
+ 430 - 409
project/ewarm/iap/iap.dep


+ 1330 - 1330
project/ewarm/module_universal_io.dep

@@ -5,3688 +5,3688 @@
     <configuration>
         <name>Debug</name>
         <outputs>
-            <file>$PROJ_DIR$\..\..\fw\modules\misc\usb_clock.h</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\modbus\modbus.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\projdefs.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\netifapi.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\err.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\prot\icmp.h</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_def.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\priv\tcpip_priv.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_board.xcl</file>
-            <file>$PROJ_DIR$\..\..\shared\rtc\rtc.h</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\adc\ms5192t.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\prot\etharp.h</file>
-            <file>$PROJ_DIR$\..\..\shared\freemodbus\port\tim_delay.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\digital_input.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\tasks.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_emac.o</file>
-            <file>$TOOLKIT_DIR$\inc\c\inttypes.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\prot\udp.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\ip6_frag.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\icmp.h</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\dac\dac_transport.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\modbus_ai_params.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\inet.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\uptime.o</file>
-            <file>$TOOLKIT_DIR$\lib\dl7M_tlf.a</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_usb.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\sys_hal.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\igmp.h</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_debug.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\common_gpio.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\FreeRTOS-openocd.o</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_flash.c</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_acc.c</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_misc.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_crm.c</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_gpio.c</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_crc.c</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_i2c.c</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_pwc.c</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_debug.c</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_rtc.c</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_sdio.c</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_tmr.c</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_usb.c</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_wdt.c</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_emac.c</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_bpr.c</file>
-            <file>$PROJ_DIR$\..\..\fw\user\usb_conf.h</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_dac.c</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_usart.c</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_wwdt.c</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_adc.c</file>
-            <file>$PROJ_DIR$\..\..\fw\user\main.h</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\cmsis\cm4\device_support\at32f403a_407.h</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_can.c</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_dma.c</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\cmsis\cm4\device_support\startup\iar\startup_at32f403a_407.s</file>
-            <file>$PROJ_DIR$\..\..\fw\user\system_at32f403a_407.c</file>
-            <file>$PROJ_DIR$\..\..\fw\user\MicroRLConfig.h</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_exint.c</file>
-            <file>$PROJ_DIR$\Debug\Obj\system_at32f403a_407.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_wwdt.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\sys_api.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\inet_chksum.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\debug.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_spi.o</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\misc\misc.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\ethernet.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\timeouts.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_can.xcl</file>
-            <file>$PROJ_DIR$\..\..\output\fw.bin</file>
-            <file>$PROJ_DIR$\Debug\Obj\usbd_rndis_core.o</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_sdio.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\sys_api.o</file>
-            <file>$PROJ_DIR$\..\..\shared\sys\sys_api.h</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\io\mux.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\sys.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_crc.o</file>
-            <file>$TOOLKIT_DIR$\inc\c\DLib_Product_string.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\tcpip.h</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_crc.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\tim_delay.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\shift_reg.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbrtu.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\ms5192t.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\adc_transport.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\dhserver.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_gpio.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfuncholding.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfunccoils.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\netdb.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\ethernetif.o</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\cmsis\cm4\core_support\cmsis_iccarm.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\soft_wdt.o</file>
-            <file>$TOOLKIT_DIR$\inc\c\stdbool.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\usb.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\log.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\tcp.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\portserial.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_tmr.o</file>
-            <file>$PROJ_DIR$\Debug\List\module_universal_io.map</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_spi.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\terminal_usartbridge.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\netif\ethernet.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\shift_reg.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\system\arch\sys_arch.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_dma.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\inet_chksum.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\tcp.xcl</file>
-            <file>$PROJ_DIR$\..\..\shared\utils\utility.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\ip4_addr.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\sys.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_crm.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\io_utils.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\init.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_clock.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_usart.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\terminal_usartbridge.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\priv\memp_std.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_adc.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\ip4_frag.o</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\io\analog_output.h</file>
-            <file>$PROJ_DIR$\..\..\shared\sys\sys_hal.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\prot\ip4.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\semphr.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_gpio.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\ip6_addr.h</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_exint.h</file>
-            <file>$PROJ_DIR$\AT32F403AxG.icf</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_wdt.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\modbus_ao_params.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\dns.h</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_misc.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\log_api.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\mux.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\usbd_core.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\mux.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\nd6.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\buttons.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\netif\ppp\pppoe.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbascii.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\heap_4.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\portserial.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_sdio.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\netifapi.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_dac.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\sys_hal.o</file>
-            <file>$PROJ_DIR$\..\..\shared\utils\at32f403a_407_board.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\prot\tcp.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\sockets.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\analog_input.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\memp.h</file>
-            <file>$TOOLKIT_DIR$\lib\rt7M_tl.a</file>
-            <file>$PROJ_DIR$\Debug\Obj\err.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfuncfile.o</file>
-            <file>$TOOLKIT_DIR$\inc\c\iccarm_builtin.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\api_lib.xcl</file>
-            <file>$TOOLKIT_DIR$\lib\shb_l.a</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_flash.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\settings_ai.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_board.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\prot\dns.h</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\cmsis\cm4\core_support\cmsis_compiler.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbascii.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\etharp.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\rng.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\queue.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\io.xcl</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\modbus\modbus_ao_params.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_emac.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_i2c.h</file>
-            <file>$PROJ_DIR$\..\..\fw\user\at32f403a_407_int.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\prot\icmp6.h</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\usb\inc\usb_std.h</file>
-            <file>$PROJ_DIR$\..\..\shared\peripherals\inc\usart.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_acc.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\ip4_addr.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfuncother.o</file>
-            <file>$TOOLKIT_DIR$\inc\c\DLib_Config_Full.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\wdt.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\portable.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\def.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_bpr.o</file>
-            <file>$TOOLKIT_DIR$\inc\c\stddef.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\etharp.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\portother.o</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\io\analog_input.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\priv\tcp_priv.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\FreeRTOS.h</file>
-            <file>$TOOLKIT_DIR$\inc\c\DLib_Product_stdlib.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\port.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\rndis\rndis_driver\ndis.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\utility.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\autoip.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\dhcp.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\usbd_desc.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\prot\ethernet.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfuncdisc.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\update.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_exint.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\tcp_out.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\settings_ao.o</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\usb\inc\usbd_int.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\dns.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\rtc.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\err.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\netbuf.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\extended_sram.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\memp.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\system\arch\epstruct.h</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_flash.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\ringfs.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\inet_chksum.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\arch.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\tcpip.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_bpr.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\tcpip.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\timeouts.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\system_at32f403a_407.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\mem.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\io.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\flash_ram_const.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32_uid.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\settings_dio.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\modbus_params.xcl</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\settings\settings_ao.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\system\arch\bpstruct.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\rndis\rndis_driver\usbd_conf.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\rndis\rndis_driver\usbd_rndis_core.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\def.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\usbd_desc.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfuncother.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbutils.xcl</file>
-            <file>$PROJ_DIR$\..\..\shared\peripherals\inc\rng.h</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\monitor\monitoring.h</file>
-            <file>$TOOLKIT_DIR$\inc\c\DLib_Defaults.h</file>
-            <file>$TOOLKIT_DIR$\inc\c\stdlib.h</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_tmr.h</file>
-            <file>$PROJ_DIR$\..\..\shared\freemodbus\ascii\mbascii.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\prot\ip.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\spi_common.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32_uid.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\icmp.o</file>
-            <file>$PROJ_DIR$\Debug\Exe\module_universal_io.out</file>
-            <file>$PROJ_DIR$\Debug\Obj\wdt.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\ip4.h</file>
-            <file>$TOOLKIT_DIR$\lib\m7M_tls.a</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\stats.h</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\misc\uptime.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbrtu.o</file>
-            <file>$TOOLKIT_DIR$\lib\dlpp7M_tl_fc.a</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_usb.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\queue.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\io_utils.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_int.xcl</file>
-            <file>$TOOLKIT_DIR$\inc\c\math.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\raw.xcl</file>
-            <file>$PROJ_DIR$\..\..\shared\utils\utility.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\terminal\terminal_sbs.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\port\FreeRTOS\ethernetif.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\raw.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\etharp.xcl</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\terminal\terminal_usartbridge.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\misc.xcl</file>
-            <file>$TOOLKIT_DIR$\inc\c\ctype.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\netif\ppp\ppp_impl.h</file>
-            <file>$PROJ_DIR$\..\..\shared\wdt\wdt.c</file>
-            <file>$PROJ_DIR$\Debug\Obj\buttons.xcl</file>
-            <file>$PROJ_DIR$\..\..\shared\utils\at32f403a_407_board.c</file>
-            <file>$PROJ_DIR$\..\..\shared\utils\extended_sram.c</file>
-            <file>$TOOLKIT_DIR$\inc\c\limits.h</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\cmsis\cm4\core_support\cmsis_version.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\mem.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\usb\inc\usbd_core.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\system\arch\cpu.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\port.o</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\modbus\modbus_params.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\fat_fs\src\ffconf.h</file>
-            <file>$PROJ_DIR$\..\..\shared\sys\sys_hal.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\settings\settings_ai.h</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\io\digital_input.h</file>
-            <file>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfunccoils.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\mem.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\netif.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\sys.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\def.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\tcp.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\tcp_out.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\netif\ethernet.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\udp.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\raw.c</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_wwdt.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\main.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_can.o</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_usb.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_rtc.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\settings_api.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\priv\memp_priv.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\spi_common.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_dma.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\rndis\dns-server\dnserver.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\extended_sram.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\netif.h</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\io\io_utils.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\heap_4.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\modbus.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\portevent.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\FreeRTOS-openocd.xcl</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\modbus\modbus_ai_params.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\event_groups.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\rng.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\microrl\microrl.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\sockets.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\priv\nd6_priv.h</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_xmc.h</file>
+            <file>$TOOLKIT_DIR$\inc\c\DLib_float_setup.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\dns.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\udp.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\netif\etharp.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\deprecated_definitions.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbutils.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\sys_arch.o</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\log\log.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_i2c.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\croutine.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\uptime.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\netbuf.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_crc.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_dac.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\microrl.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\dhcp.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\api_msg.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfuncdiag.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\ms5192t.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\ip.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\task.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\soft_test.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\autoip.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\mpu_wrappers.h</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\testing\soft_test.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\utility.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\usbd_int.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\priv\api_msg.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\usbd_int.o</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\io\filter.h</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_dma.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbcrc.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\digital_output.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\spi_flash.xcl</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\log\ringfs_api.h</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_emac.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\igmp.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\ringfs\ringfs.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\errno.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\modbus_ai_params.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\modbus_dio_params.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\tcp_in.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\common_gpio.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\netif\ppp\ppp_opts.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\settings_dio.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\stats.xcl</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\log\log_ai.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\mem.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\api_lib.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_gpio.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\modbus_dio_params.o</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\settings\settings_dio.h</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\log\log_dio.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\dac_transport.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_misc.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\igmp.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\list.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\update.xcl</file>
+            <file>$PROJ_DIR$\..\..\shared\utils\extended_sram.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\usb.xcl</file>
+            <file>$TOOLKIT_DIR$\inc\c\ysizet.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\snmp.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\fat_fs\src\diskio.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\filter.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\hash.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_crm.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_sdio.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\def.h</file>
+            <file>$TOOLKIT_DIR$\inc\c\DLib_Product.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\opt.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfuncinput.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_exint.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\flash_ram_const.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\monitoring.xcl</file>
+            <file>$TOOLKIT_DIR$\inc\c\stdio.h</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\modbus\update.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\mld6.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\system\arch\cc.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\log.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_rtc.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_clock.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\rndis\dhcp-server\dhserver.h</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\system\at32f403a_407_clock.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\sys.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\fat_fs\src\integer.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbcrc.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\ip_addr.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\netif.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\timeouts.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\modbus.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\spi_flash.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\digital_output.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_adc.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\monitoring.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\usb_clock.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\hash.xcl</file>
+            <file>$PROJ_DIR$\..\..\shared\wdt\wdt.h</file>
+            <file>$PROJ_DIR$\..\..\shared\freemodbus\rtu\mbrtu.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\dhserver.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\fr_timers.h</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\misc\at32_uid.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_int.o</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_can.h</file>
             <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\inet_chksum.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ip.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\stats.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\init.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\netif.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\tcp.c</file>
             <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\tcp_in.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\tcp_out.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\udp.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\netif\ethernet.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\port\FreeRTOS\ethernetif.c</file>
             <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\port\FreeRTOS\sys_arch.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\init.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\timeouts.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\sys.c</file>
             <file>$PROJ_DIR$\..\..\libs\thirdparty\ringfs\ringfs.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\ip4.c</file>
             <file>$PROJ_DIR$\..\..\libs\thirdparty\rndis\dhcp-server\dhserver.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\memp.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\timeouts.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\ip4_addr.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\pbuf.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\dns.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\port\FreeRTOS\ethernetif.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\ip4_frag.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\def.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\raw.c</file>
             <file>$PROJ_DIR$\..\..\libs\thirdparty\rndis\dns-server\dnserver.c</file>
             <file>$PROJ_DIR$\..\..\libs\thirdparty\rndis\rndis_driver\usbd_desc.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\rndis\rndis_driver\usbd_rndis_core.c</file>
             <file>$PROJ_DIR$\..\..\shared\board\common.h</file>
-            <file>$PROJ_DIR$\..\..\shared\board\common_config.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\ip4_frag.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\rndis\rndis_driver\usbd_rndis_core.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ip.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\igmp.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\ip4_addr.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\pbuf.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\memp.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\icmp.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\mem.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\stats.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\dns.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\etharp.c</file>
+            <file>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbutils.c</file>
             <file>$PROJ_DIR$\..\..\shared\freemodbus\ascii\mbascii.c</file>
-            <file>$PROJ_DIR$\Debug\Obj\ringfs_api.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\ringfs_api.o</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\io\analog_output.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\io\digital_output.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\io\io.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\io\analog_input.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\log\log_api.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\log\log_ai.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\dac\dac_transport.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\io\filter.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\io\mux.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\adc\adc_transport.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\io\digital_input.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\adc\ms5192t.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\io\io_utils.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\log\log.c</file>
-            <file>$PROJ_DIR$\..\..\shared\peripherals\src\rng.c</file>
-            <file>$PROJ_DIR$\..\..\shared\peripherals\src\spi_common.c</file>
-            <file>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfuncholding.c</file>
-            <file>$PROJ_DIR$\..\..\shared\freemodbus\include\mbproto.h</file>
-            <file>$PROJ_DIR$\..\..\shared\freemodbus\port\portother.c</file>
-            <file>$PROJ_DIR$\..\..\shared\freemodbus\include\mbutils.h</file>
-            <file>$PROJ_DIR$\..\..\shared\freemodbus\include\mbframe.h</file>
-            <file>$PROJ_DIR$\..\..\shared\freemodbus\rtu\mbcrc.c</file>
-            <file>$PROJ_DIR$\..\..\shared\rtc\rtc.c</file>
-            <file>$PROJ_DIR$\..\..\shared\sys\sys_api.c</file>
-            <file>$PROJ_DIR$\..\..\shared\peripherals\src\buttons.c</file>
-            <file>$PROJ_DIR$\..\..\shared\peripherals\src\usb.c</file>
-            <file>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfuncdiag.c</file>
-            <file>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfuncdisc.c</file>
-            <file>$PROJ_DIR$\..\..\shared\freemodbus\mb.c</file>
+            <file>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfuncfile.c</file>
             <file>$PROJ_DIR$\..\..\shared\freemodbus\include\mbconfig.h</file>
-            <file>$PROJ_DIR$\..\..\shared\freemodbus\include\mbport.h</file>
+            <file>$PROJ_DIR$\..\..\shared\freemodbus\include\mbutils.h</file>
+            <file>$PROJ_DIR$\..\..\shared\freemodbus\port\portother.c</file>
             <file>$PROJ_DIR$\..\..\shared\freemodbus\port\porttimer.c</file>
+            <file>$PROJ_DIR$\..\..\shared\freemodbus\rtu\mbrtu.c</file>
             <file>$PROJ_DIR$\..\..\shared\model\model_cfg.h</file>
+            <file>$PROJ_DIR$\..\..\shared\peripherals\src\buttons.c</file>
             <file>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfuncother.c</file>
-            <file>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbutils.c</file>
+            <file>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfuncinput.c</file>
+            <file>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfuncdisc.c</file>
+            <file>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfuncdiag.c</file>
+            <file>$PROJ_DIR$\..\..\shared\freemodbus\include\mbport.h</file>
             <file>$PROJ_DIR$\..\..\shared\freemodbus\port\portevent.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\peripherals\src\rng.c</file>
+            <file>$PROJ_DIR$\..\..\shared\peripherals\src\spi_common.c</file>
+            <file>$PROJ_DIR$\..\..\shared\peripherals\src\usb.c</file>
+            <file>$PROJ_DIR$\..\..\shared\freemodbus\port\port.h</file>
             <file>$PROJ_DIR$\..\..\shared\freemodbus\port\portserial.c</file>
-            <file>$PROJ_DIR$\..\..\shared\freemodbus\port\tim_delay.c</file>
-            <file>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfuncinput.c</file>
             <file>$PROJ_DIR$\..\..\shared\freemodbus\include\mb.h</file>
-            <file>$PROJ_DIR$\..\..\shared\freemodbus\include\mbfunc.h</file>
-            <file>$PROJ_DIR$\..\..\shared\freemodbus\port\port.h</file>
-            <file>$PROJ_DIR$\..\..\shared\freemodbus\rtu\mbrtu.c</file>
-            <file>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfuncfile.c</file>
-            <file>$PROJ_DIR$\..\..\shared\peripherals\src\common_gpio.c</file>
-            <file>$PROJ_DIR$\Debug\Obj\icmp.xcl</file>
-            <file>$PROJ_DIR$\..\..\shared\peripherals\inc\buttons.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\modbus_ao_params.xcl</file>
-            <file>$TOOLKIT_DIR$\inc\c\yvals.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\StackMacros.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\netdb.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\netif\ppp\polarssl\md5.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\ip.xcl</file>
-            <file>$TOOLKIT_DIR$\inc\c\string.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\api.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\soft_wdt.xcl</file>
-            <file>$PROJ_DIR$\..\..\fw\user\system_at32f403a_407.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\microrl.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\ip4_addr.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\usb_eth.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\portother.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\pbuf.h</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_usart.h</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\user_fatfs\user_fatfs.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\list.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\adc_transport.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\event_groups.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\porttimer.o</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\usb\usb_eth.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\swap.o</file>
-            <file>$PROJ_DIR$\..\..\shared\peripherals\inc\spi_common.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfuncdisc.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfuncholding.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\ip4_frag.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\cmsis\cm4\core_support\mpu_armv7.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\dhcp.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_pwc.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\swap.xcl</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\settings\settings_api.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\dac_transport.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\settings_api.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_wdt.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\udp.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\log_api.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_tmr.xcl</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\misc\swap.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\tcp_in.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\fr_timers.o</file>
-            <file>$TOOLKIT_DIR$\inc\c\ycheck.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\ip4_frag.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\dnserver.o</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_dac.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\ip4.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\netifapi.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\mb.xcl</file>
-            <file>$PROJ_DIR$\..\..\shared\freemodbus\rtu\mbcrc.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\settings_ao.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfuncfile.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\settings_ai.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_xmc.o</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\terminal\terminal.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\terminal_sbs.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stats.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\croutine.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\prot\dhcp.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\usbd_sdr.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\misc.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_misc.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\tcp_out.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\usbd_core.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\init.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\portasm.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_pwc.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\ip.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\main.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\croutine.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\queue.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_flash.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\ethernet.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_wdt.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\cmsis\cm4\core_support\core_cm4.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_acc.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\pbuf.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\digital_input.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\rndis\rndis_driver\rndis_protocol.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\analog_output.xcl</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\misc\soft_wdt.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\usb_clock.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\pbuf.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\usb\inc\usbd_sdr.h</file>
-            <file>$TOOLKIT_DIR$\inc\c\intrinsics.h</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_crm.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_spi.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\terminal_sbs.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_debug.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\ringfs.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\portevent.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\sockets.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\usb_eth.o</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\settings\settings_api.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\terminal\terminal_usartbridge.cpp</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\misc\at32_uid.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\terminal\terminal_sbs.cpp</file>
-            <file>$PROJ_DIR$\..\..\fw\user\at32f403a_407_int.c</file>
-            <file>$PROJ_DIR$\..\..\fw\user\flash_ram_const.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\misc\swap.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\misc\uptime.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\modbus\modbus_ai_params.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\monitor\monitoring.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\settings\settings_dio.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\modbus\update.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\terminal\terminal.cpp</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\testing\soft_test.c</file>
-            <file>$PROJ_DIR$\..\..\fw\user\FreeRTOSConfig.h</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\spi_flash\spi_flash.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\log\log_dio.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\settings\settings_ai.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\misc\usb_clock.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\usb\usb_eth.c</file>
-            <file>$PROJ_DIR$\..\..\fw\user\lwipopts.h</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\shift_reg\shift_reg.c</file>
-            <file>$PROJ_DIR$\..\..\fw\user\main.cpp</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\misc\hash.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\misc\misc.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\modbus\modbus.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\modbus\modbus_ao_params.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\misc\soft_wdt.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\modbus\modbus_dio_params.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\modbus\modbus_params.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\settings\settings_ao.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\log\ringfs_api.c</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\spi_flash\spi_flash.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\netdb.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\api_msg.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\netbuf.xcl</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\adc\adc_transport.h</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\io\io.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\modbus_params.o</file>
-            <file>$TOOLKIT_DIR$\inc\c\iar_intrinsics_common.h</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\shift_reg\shift_reg.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\porttimer.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\startup_at32f403a_407.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\analog_input.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\rtc.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\ip4.xcl</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\modbus\modbus_dio_params.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\dnserver.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\filter.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\icmp6.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\fr_timers.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\terminal.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\usbd_sdr.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_adc.h</file>
-            <file>$TOOLKIT_DIR$\inc\c\stdint.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\analog_output.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\init.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_pwc.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\soft_test.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\list.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_i2c.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\autoip.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\mb.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\ip4.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\list.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\api_msg.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\autoip.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\microrl\microrl.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\portable\IAR\ARM_CM4F\portasm.s</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\portable\IAR\ARM_CM4F\port.c</file>
+            <file>$PROJ_DIR$\..\..\shared\freemodbus\include\mbproto.h</file>
+            <file>$PROJ_DIR$\..\..\shared\freemodbus\rtu\mbcrc.c</file>
+            <file>$PROJ_DIR$\..\..\shared\freemodbus\mb.c</file>
+            <file>$PROJ_DIR$\..\..\shared\freemodbus\include\mbfunc.h</file>
+            <file>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfunccoils.c</file>
+            <file>$PROJ_DIR$\..\..\shared\freemodbus\port\tim_delay.c</file>
+            <file>$PROJ_DIR$\..\..\shared\board\common_config.h</file>
+            <file>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfuncholding.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\prot\etharp.h</file>
+            <file>$PROJ_DIR$\..\..\shared\utils\at32f403a_407_board.c</file>
+            <file>$PROJ_DIR$\..\..\shared\rtc\rtc.h</file>
+            <file>$PROJ_DIR$\..\..\shared\wdt\wdt.c</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_emac.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\prot\udp.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\icmp.h</file>
+            <file>$PROJ_DIR$\..\..\shared\utils\extended_sram.c</file>
+            <file>$PROJ_DIR$\..\..\shared\freemodbus\port\tim_delay.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\inet.h</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\modbus\modbus.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\netifapi.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\err.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\digital_input.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\priv\tcpip_priv.h</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\misc\usb_clock.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\ip6_frag.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\uptime.o</file>
+            <file>$TOOLKIT_DIR$\lib\dl7M_tlf.a</file>
+            <file>$PROJ_DIR$\..\..\shared\sys\sys_hal.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\projdefs.h</file>
+            <file>$PROJ_DIR$\..\..\shared\sys\sys_api.c</file>
+            <file>$PROJ_DIR$\..\..\shared\utils\utility.c</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_def.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_board.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\tasks.xcl</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\dac\dac_transport.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\modbus_ai_params.xcl</file>
+            <file>$TOOLKIT_DIR$\inc\c\inttypes.h</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\adc\ms5192t.h</file>
+            <file>$PROJ_DIR$\..\..\shared\rtc\rtc.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\prot\icmp.h</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\system\at32f403a_407_conf.h</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$\..\..\libs\thirdparty\freertos\event_groups.c</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_wdt.c</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\usb\src\usbd_sdr.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\list.c</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\usb\src\usbd_core.c</file>
             <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\queue.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\netdb.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\microrl\microrl.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\api_msg.c</file>
             <file>$PROJ_DIR$\..\..\libs\artery\usb\src\usbd_int.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\netifapi.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\sockets.c</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\usb\src\usbd_core.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\etharp.c</file>
             <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\portable\memmang\heap_4.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\FreeRTOS-openocd.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\tasks.c</file>
             <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\api_lib.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\err.c</file>
             <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\netbuf.c</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\usb\src\usbd_sdr.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\croutine.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\tasks.c</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\system\at32f403a_407_clock.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\netdb.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\err.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\portable\IAR\ARM_CM4F\port.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\portable\IAR\ARM_CM4F\portasm.s</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\netifapi.c</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_wwdt.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\FreeRTOS-openocd.c</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\sockets.c</file>
             <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\tcpip.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\icmp.c</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\system\at32f403a_407_conf.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\autoip.c</file>
             <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\dhcp.c</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\system\at32f403a_407_clock.c</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_xmc.c</file>
             <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\fr_timers.c</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\igmp.c</file>
-            <file>$PROJ_DIR$\Debug\Obj\tasks.o</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\io\digital_output.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\event_groups.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfuncinput.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\terminal.o</file>
-            <file>$TOOLKIT_DIR$\inc\c\stdarg.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\memp.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_rtc.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\netifapi.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\sys_hal.o</file>
+            <file>$PROJ_DIR$\AT32F403AxG.icf</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_wdt.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\priv\memp_std.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\dns.h</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_misc.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\semphr.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\ip4_frag.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\mux.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\buttons.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\prot\ip4.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_dac.xcl</file>
+            <file>$PROJ_DIR$\..\..\shared\utils\at32f403a_407_board.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\terminal_usartbridge.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\prot\tcp.h</file>
+            <file>$PROJ_DIR$\..\..\shared\sys\sys_hal.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\ip6_addr.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_gpio.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_adc.o</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_exint.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\modbus_ao_params.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\usbd_core.o</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\io\analog_output.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\nd6.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbascii.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\log_api.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\heap_4.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\netif\ppp\pppoe.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\mux.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\portserial.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_sdio.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\api_lib.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\io.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\cmsis\cm4\core_support\cmsis_compiler.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\prot\dns.h</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\usb\inc\usb_std.h</file>
+            <file>$TOOLKIT_DIR$\inc\c\iccarm_builtin.h</file>
+            <file>$PROJ_DIR$\..\..\fw\user\at32f403a_407_int.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\prot\icmp6.h</file>
+            <file>$PROJ_DIR$\..\..\shared\peripherals\inc\usart.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\ip4_addr.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfuncother.o</file>
+            <file>$TOOLKIT_DIR$\inc\c\DLib_Config_Full.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\wdt.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\err.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_acc.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\portable.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\sockets.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\queue.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\analog_input.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfuncfile.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_flash.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\memp.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\settings_ai.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbascii.o</file>
+            <file>$TOOLKIT_DIR$\lib\rt7M_tl.a</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_board.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\etharp.h</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\modbus\modbus_ao_params.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_emac.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\rng.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_i2c.h</file>
+            <file>$TOOLKIT_DIR$\lib\shb_l.a</file>
+            <file>$PROJ_DIR$\..\..\shared\sys\sys_api.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\tim_delay.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_spi.o</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_sdio.h</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_wwdt.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\usbd_rndis_core.o</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\io\mux.h</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_crc.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\shift_reg.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbrtu.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\adc_transport.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\sys_hal.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\sys_api.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\FreeRTOS-openocd.o</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_debug.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\inet_chksum.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\debug.h</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\misc\misc.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_can.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\sys_api.xcl</file>
+            <file>$PROJ_DIR$\..\..\output\fw.bin</file>
+            <file>$PROJ_DIR$\Debug\Obj\timeouts.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_crc.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\sys.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\ms5192t.xcl</file>
+            <file>$TOOLKIT_DIR$\inc\c\DLib_Product_string.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_usb.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\igmp.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\ethernet.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\tcpip.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\common_gpio.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\system_at32f403a_407.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\ethernetif.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_clock.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfunccoils.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\netdb.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_gpio.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\usb.o</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_spi.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\portserial.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\log.o</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\cmsis\cm4\core_support\cmsis_iccarm.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\terminal_usartbridge.o</file>
+            <file>$PROJ_DIR$\..\..\shared\utils\utility.h</file>
+            <file>$TOOLKIT_DIR$\inc\c\stdbool.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\sys.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\netif\ethernet.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\inet_chksum.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\tcp.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\soft_wdt.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_usart.xcl</file>
+            <file>$PROJ_DIR$\Debug\List\module_universal_io.map</file>
+            <file>$PROJ_DIR$\Debug\Obj\dhserver.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\tcp.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_tmr.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfuncholding.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\shift_reg.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_crm.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\system\arch\sys_arch.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_dma.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\init.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\io_utils.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\ip4_addr.h</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\adc\ms5192t.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\adc\adc_transport.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\dac\dac_transport.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\io\analog_input.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\io\analog_output.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\io\digital_input.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\io\digital_output.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\io\io.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\io\filter.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\io\io_utils.c</file>
+            <file>$PROJ_DIR$\..\..\shared\freemodbus\ascii\mbascii.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\prot\ip.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\io.o</file>
+            <file>$PROJ_DIR$\Debug\Exe\module_universal_io.out</file>
+            <file>$PROJ_DIR$\Debug\Obj\def.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\spi_common.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32_uid.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\icmp.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\usbd_desc.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\mem.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\tcpip.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\timeouts.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\flash_ram_const.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\arch.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\modbus_params.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\settings_dio.xcl</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\settings\settings_ao.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\rndis\rndis_driver\usbd_conf.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\rndis\rndis_driver\usbd_rndis_core.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbutils.xcl</file>
+            <file>$PROJ_DIR$\..\..\shared\peripherals\inc\rng.h</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\monitor\monitoring.h</file>
+            <file>$TOOLKIT_DIR$\inc\c\DLib_Defaults.h</file>
+            <file>$TOOLKIT_DIR$\inc\c\stdlib.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\tcpip.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_bpr.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\inet_chksum.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\system_at32f403a_407.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32_uid.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\system\arch\bpstruct.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfuncother.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_tmr.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\ip4.h</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\misc\uptime.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbrtu.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\buttons.xcl</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\modbus\modbus_params.h</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\terminal\terminal_sbs.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\raw.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\io_utils.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_int.xcl</file>
+            <file>$TOOLKIT_DIR$\inc\c\math.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\misc.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\etharp.xcl</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\io\digital_input.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\mem.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\wdt.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\stats.h</file>
+            <file>$TOOLKIT_DIR$\lib\dlpp7M_tl_fc.a</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_usb.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\port\FreeRTOS\ethernetif.h</file>
+            <file>$TOOLKIT_DIR$\inc\c\ctype.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\queue.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\cmsis\cm4\core_support\cmsis_version.h</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\usb\inc\usbd_core.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\port.o</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\terminal\terminal_usartbridge.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\fat_fs\src\ffconf.h</file>
+            <file>$TOOLKIT_DIR$\lib\m7M_tls.a</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\settings\settings_ai.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\raw.xcl</file>
+            <file>$TOOLKIT_DIR$\inc\c\limits.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\netif\ppp\ppp_impl.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\system\arch\cpu.h</file>
+            <file>$PROJ_DIR$\..\..\shared\peripherals\inc\spi_common.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfuncdisc.o</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\cmsis\cm4\core_support\mpu_armv7.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\list.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\soft_wdt.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfuncholding.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\ringfs_api.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\ringfs_api.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\icmp.xcl</file>
+            <file>$PROJ_DIR$\..\..\shared\peripherals\inc\buttons.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\modbus_ao_params.xcl</file>
+            <file>$TOOLKIT_DIR$\inc\c\yvals.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\StackMacros.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\ip.xcl</file>
+            <file>$TOOLKIT_DIR$\inc\c\string.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\ip4_addr.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\portother.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_usart.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\usb_eth.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\swap.o</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\user_fatfs\user_fatfs.h</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\usb\usb_eth.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\netif\ppp\polarssl\md5.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\porttimer.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\ip4_frag.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\netdb.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\pbuf.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\adc_transport.o</file>
+            <file>$PROJ_DIR$\..\..\fw\user\system_at32f403a_407.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\microrl.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\api.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\event_groups.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\utility.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_bpr.o</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\io\analog_input.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfuncdisc.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\FreeRTOS.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\memp.o</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_flash.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\rtc.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\ringfs.o</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\usb\inc\usbd_int.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\priv\tcp_priv.h</file>
+            <file>$TOOLKIT_DIR$\inc\c\stddef.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\dhcp.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\etharp.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\autoip.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\update.o</file>
+            <file>$TOOLKIT_DIR$\inc\c\DLib_Product_stdlib.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\rndis\rndis_driver\ndis.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\def.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\prot\ethernet.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_exint.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\tcp_out.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\portother.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\port.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\settings_ao.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\dns.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\err.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\usbd_desc.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\netbuf.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\extended_sram.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\system\arch\epstruct.h</file>
             <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\ip6.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_bpr.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\sys_arch.xcl</file>
+            <file>$PROJ_DIR$\..\..\shared\peripherals\inc\common_gpio.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfunccoils.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_xmc.xcl</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\misc\hash.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\rndis\rndis_driver\usbd_desc.h</file>
             <file>$PROJ_DIR$\Debug\Obj\ethernetif.xcl</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\log\log_api.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\tim_delay.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_debug.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\tasks.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\usbd_rndis_core.xcl</file>
             <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\tcp.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\sys_arch.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_bpr.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\tim_delay.xcl</file>
+            <file>$TOOLKIT_DIR$\inc\c\stdarg.h</file>
             <file>$PROJ_DIR$\Debug\Obj\udp.o</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\io\digital_output.h</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\log\log_api.h</file>
             <file>$PROJ_DIR$\Debug\Obj\mbfuncdiag.o</file>
-            <file>$PROJ_DIR$\..\..\shared\peripherals\inc\common_gpio.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_xmc.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfunccoils.xcl</file>
             <file>$PROJ_DIR$\..\..\shared\peripherals\inc\usb.h</file>
             <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\raw.h</file>
             <file>$PROJ_DIR$\Debug\Obj\module_universal_io.pbd</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\misc\hash.h</file>
             <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_wwdt.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\rndis\rndis_driver\usbd_desc.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_debug.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\usbd_rndis_core.xcl</file>
             <file>$PROJ_DIR$\..\..\libs\thirdparty\fat_fs\src\ff.h</file>
             <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_acc.h</file>
             <file>$PROJ_DIR$\Debug\Obj\netif.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_usart.o</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_can.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\rndis\dhcp-server\dhserver.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\timeouts.o</file>
-            <file>$PROJ_DIR$\..\..\shared\freemodbus\rtu\mbrtu.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\dhserver.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_clock.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\fr_timers.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\hash.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\digital_output.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_int.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\fat_fs\src\integer.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\mld6.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\log.xcl</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\misc\at32_uid.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\sys.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\flash_ram_const.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\modbus.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\system\arch\cc.h</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_rtc.h</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\system\at32f403a_407_clock.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbcrc.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\ip_addr.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\netif.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\spi_flash.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\monitoring.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_adc.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\monitoring.o</file>
-            <file>$TOOLKIT_DIR$\inc\c\stdio.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\usb_clock.o</file>
-            <file>$PROJ_DIR$\..\..\shared\wdt\wdt.h</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\modbus\update.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_dma.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\settings_api.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\modbus.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\microrl\microrl.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\rndis\dns-server\dnserver.h</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\log\log.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbutils.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\sys_arch.o</file>
-            <file>$TOOLKIT_DIR$\inc\c\DLib_float_setup.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_wwdt.o</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\io\io_utils.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\main.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\dns.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\extended_sram.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_can.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\netif.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\heap_4.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\portevent.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_usb.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_rtc.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\priv\memp_priv.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\spi_common.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\FreeRTOS-openocd.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\udp.h</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\modbus\modbus_ai_params.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\event_groups.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\rng.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\sockets.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\priv\nd6_priv.h</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_xmc.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\netif\etharp.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\deprecated_definitions.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\uptime.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\dhcp.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\netbuf.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\ip.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\priv\api_msg.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\api_msg.o</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\testing\soft_test.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\ringfs\ringfs.h</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_emac.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\errno.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\modbus_ai_params.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_i2c.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\igmp.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\croutine.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\soft_test.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_crc.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\microrl.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_dac.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbcrc.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfuncdiag.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\usbd_int.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\ms5192t.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\mpu_wrappers.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\digital_output.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\autoip.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\utility.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\task.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\usbd_int.o</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\io\filter.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\spi_flash.xcl</file>
-            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_dma.h</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\log\ringfs_api.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\netif\ppp\ppp_opts.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\filter.xcl</file>
-            <file>$PROJ_DIR$\..\..\shared\utils\extended_sram.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\mbfuncinput.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\modbus_dio_params.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\usb.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\tcp_in.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\hash.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\common_gpio.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_crm.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_misc.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\modbus_dio_params.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\settings_dio.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\dac_transport.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\update.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_exint.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\stats.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_gpio.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\igmp.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\opt.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\list.h</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\log\log_ai.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\mem.h</file>
-            <file>$TOOLKIT_DIR$\inc\c\ysizet.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\api_lib.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_sdio.o</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\snmp.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\fat_fs\src\diskio.h</file>
-            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\def.h</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\settings\settings_dio.h</file>
-            <file>$PROJ_DIR$\..\..\fw\modules\log\log_dio.h</file>
-            <file>$TOOLKIT_DIR$\inc\c\DLib_Product.h</file>
-            <file>$PROJ_DIR$\Debug\Obj\log_dio.xcl</file>
-            <file>$PROJ_DIR$\Debug\Obj\log_dio.o</file>
-            <file>$PROJ_DIR$\Debug\Obj\log_ai.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_rtc.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\event_groups.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\terminal.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\memp.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfuncinput.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\udp.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\dac_transport.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\mb.xcl</file>
+            <file>$PROJ_DIR$\..\..\shared\freemodbus\rtu\mbcrc.h</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\misc\swap.h</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_pwc.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\tcp_in.o</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_wdt.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_xmc.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\log_api.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\stats.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\croutine.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\netifapi.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\ip4_frag.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\prot\dhcp.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\settings_ai.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\settings_api.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\misc.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\swap.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\dhcp.xcl</file>
+            <file>$TOOLKIT_DIR$\inc\c\ycheck.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_tmr.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\settings_ao.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\dnserver.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\mbfuncfile.xcl</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\terminal\terminal.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\terminal_sbs.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\usbd_sdr.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\fr_timers.o</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_dac.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\ip4.o</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\settings\settings_api.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\croutine.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\usbd_core.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\pbuf.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\portasm.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\ethernet.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\freertos\include\queue.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\digital_input.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_pwc.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\init.o</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_crm.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\sockets.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_wdt.xcl</file>
+            <file>$TOOLKIT_DIR$\inc\c\intrinsics.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\terminal_sbs.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\portevent.o</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\cmsis\cm4\core_support\core_cm4.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\tcp_out.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_misc.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\usb_clock.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\rndis\rndis_driver\rndis_protocol.h</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\usb\inc\usbd_sdr.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_acc.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_spi.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\pbuf.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_flash.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_debug.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\ringfs.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\main.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\usb_eth.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\analog_output.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\ip.h</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\misc\soft_wdt.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\fr_timers.xcl</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\spi_flash\spi_flash.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\netbuf.xcl</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\shift_reg\shift_reg.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\modbus_params.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\ip4.xcl</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\adc\adc_transport.h</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\icmp6.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\netdb.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\terminal.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\inc\at32f403a_407_adc.h</file>
+            <file>$TOOLKIT_DIR$\inc\c\stdint.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\analog_output.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\soft_test.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\usbd_sdr.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\list.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\autoip.h</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\io\io.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\startup_at32f403a_407.o</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\modbus\modbus_dio_params.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\analog_input.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\porttimer.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\rtc.o</file>
+            <file>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\include\lwip\init.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_pwc.o</file>
+            <file>$TOOLKIT_DIR$\inc\c\iar_intrinsics_common.h</file>
+            <file>$PROJ_DIR$\Debug\Obj\at32f403a_407_i2c.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\mb.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\dnserver.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\filter.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\api_msg.xcl</file>
             <file>$PROJ_DIR$\Debug\Obj\log_ai.xcl</file>
+            <file>$PROJ_DIR$\Debug\Obj\log_ai.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\log_dio.o</file>
+            <file>$PROJ_DIR$\Debug\Obj\log_dio.xcl</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\cmsis\cm4\device_support\at32f403a_407.h</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_acc.c</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_can.c</file>
+            <file>$PROJ_DIR$\..\..\fw\user\at32f403a_407_int.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_i2c.c</file>
+            <file>$PROJ_DIR$\..\..\fw\user\main.cpp</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\startup\iar\startup_at32f403a_407.s</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_spi.c</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_sdio.c</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_usart.c</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_exint.c</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_rtc.c</file>
+            <file>$PROJ_DIR$\..\..\fw\user\system_at32f403a_407.c</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_adc.c</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_debug.c</file>
+            <file>$PROJ_DIR$\..\..\fw\user\usb_conf.h</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_tmr.c</file>
+            <file>$PROJ_DIR$\..\..\fw\user\main.h</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_flash.c</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_dma.c</file>
+            <file>$PROJ_DIR$\..\..\fw\user\flash_ram_const.c</file>
+            <file>$PROJ_DIR$\..\..\fw\user\FreeRTOSConfig.h</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_dac.c</file>
+            <file>$PROJ_DIR$\..\..\fw\user\lwipopts.h</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_crc.c</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_emac.c</file>
+            <file>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_bpr.c</file>
+            <file>$PROJ_DIR$\..\..\fw\user\MicroRLConfig.h</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\log\log_ai.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\misc\hash.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\misc\soft_wdt.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\misc\swap.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\modbus\modbus_dio_params.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\settings\settings_ai.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\misc\uptime.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\modbus\update.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\modbus\modbus_ao_params.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\monitor\monitoring.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\settings\settings_ao.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\log\ringfs_api.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\modbus\modbus_ai_params.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\settings\settings_api.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\shift_reg\shift_reg.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\spi_flash\spi_flash.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\misc\misc.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\terminal\terminal.cpp</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\terminal\terminal_sbs.cpp</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\misc\at32_uid.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\modbus\modbus.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\log\log_api.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\log\log_dio.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\modbus\modbus_params.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\terminal\terminal_usartbridge.cpp</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\log\log.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\settings\settings_dio.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\testing\soft_test.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\usb\usb_eth.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\io\mux.c</file>
+            <file>$PROJ_DIR$\..\..\fw\modules\misc\usb_clock.c</file>
         </outputs>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_flash.c</name>
+            <name>[ROOT_NODE]</name>
+            <outputs>
+                <tool>
+                    <name>ILINK</name>
+                    <file> 394 369</file>
+                </tool>
+            </outputs>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\inet_chksum.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 433</file>
+                    <file> 417</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 160</file>
+                    <file> 365</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 333 481 203 110 91 380 420 517 271 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_acc.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\init.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 177</file>
+                    <file> 590</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 437</file>
+                    <file> 378</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 637 438 71 307 258 6 363 203 376 491 674 211 301 28 225 594 291 639 47 44 80 587 261 62 481 11 110 91 380 420 517 271 21 200 612 423 265 518 392 538 26 196 497 530 197 222 269 345 259 402 312 506 191 278 100 485 35 67 453</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_misc.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\netif.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 686</file>
+                    <file> 111</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 423</file>
+                    <file> 543</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 469 343 91 110 380 420 517 271 11 203 481 438 71 307 258 6 497 530 612 423 265 518 392 197 222 269 26 196 538 85 345 312 506 191 363 376 491 674 211 301 28 225 594 291 639 47 44 80 587 261 62 364 499</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_spi.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\tcp.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 67</file>
+                    <file> 371</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 448</file>
+                    <file> 366</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 91 71 307 258 6 438 530 481 203 612 110 380 420 517 271 11 423 265 518 392 197 222 497 269 278 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_xmc.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\tcp_in.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 415</file>
+                    <file> 556</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 567</file>
+                    <file> 65</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 497 530 71 481 203 612 91 110 380 420 517 271 11 438 307 258 6 423 265 518 392 197 222 269 333 278</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_crm.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\tcp_out.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 114</file>
+                    <file> 508</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 685</file>
+                    <file> 598</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 497 530 71 481 203 612 91 110 380 420 517 271 11 438 307 258 6 423 265 518 392 197 222 269 333 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_gpio.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\udp.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 693</file>
+                    <file> 533</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 127</file>
+                    <file> 550</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 26 481 203 11 110 91 380 420 517 271 438 71 307 258 6 612 423 265 518 392 196 333 197 222 621 293 85 499 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_crc.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\netif\ethernet.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 79</file>
+                    <file> 346</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 659</file>
+                    <file> 586</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 364 481 203 11 110 91 380 420 517 271 438 71 307 258 6 506 312 423 265 191 612 518 392 85 469 343 67</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_i2c.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\port\FreeRTOS\ethernetif.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 515</file>
+                    <file> 350</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 655</file>
+                    <file> 526</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 91 71 481 203 363 376 491 674 211 301 28 225 594 291 639 47 44 80 587 261 62 438 307 258 6 85 110 380 420 517 271 27 312 11 423 265 506 191 364 282 67 441 59 649 597 444 288 359 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_pwc.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\port\FreeRTOS\sys_arch.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 512</file>
+                    <file> 30</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 428</file>
+                    <file> 520</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 93 676 91 363 203 376 491 674 211 301 28 225 594 291 639 47 44 80 587 261 62 71 438 307 258 6</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_debug.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\timeouts.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 450</file>
+                    <file> 112</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 575</file>
+                    <file> 339</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 402 203 363 376 491 674 211 301 28 225 594 291 639 47 44 80 587 261 62 497 530 71 481 612 91 110 380 420 517 271 11 438 307 258 6 423 265 518 392 197 222 269 205 347 563 312 506 191 499 26 196 630 345 259 278 207 100</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_rtc.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\sys.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 631</file>
+                    <file> 107</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 556</file>
+                    <file> 341</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 363 203 376 491 674 211 301 28 225 594 291 639 47 44 80 587 261 62</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_sdio.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\ringfs\ringfs.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 701</file>
+                    <file> 495</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 145</file>
+                    <file> 608</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 61 625 570 466 413 297 92 98 84 414 503 219 362 498 189 649 597 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_tmr.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\ip4.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 101</file>
+                    <file> 580</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 400</file>
+                    <file> 619</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 612 91 481 203 110 380 420 517 271 11 438 71 307 258 6 423 265 518 392 563 333 197 222 345 538 26 196 497 530 269 630 564 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_usb.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\rndis\dhcp-server\dhserver.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 253</file>
+                    <file> 122</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 25</file>
+                    <file> 370</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 105 98 570 466 413 297 92 84 625 362 469 343 203 93 676 334 404 101 454 414 503 498 219 452 26 481 11 110 91 380 420 517 271 438 71 307 258 6 612 423 265 518 392 196 27 312 506 191 364 476</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_wdt.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\ip4_frag.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 131</file>
+                    <file> 262</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 435</file>
+                    <file> 479</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 563 203 481 11 110 91 380 420 517 271 438 71 307 258 6 612 423 265 518 392 333 197 222 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_emac.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\def.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 15</file>
+                    <file> 395</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 171</file>
+                    <file> 505</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 91 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_bpr.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\raw.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 184</file>
+                    <file> 429</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 563</file>
+                    <file> 451</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 91 307 258 6 71 438 110 380 420 517 271 11 203 481 538 612 423 265 518 392 333 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_dac.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\rndis\dns-server\dnserver.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 661</file>
+                    <file> 573</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 147</file>
+                    <file> 642</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 9 625 570 466 413 297 92 362 98 84 469 343 91 404 101 454 414 503 498 219 452 93 676 334 203 26 481 11 110 380 420 517 271 438 71 307 258 6 612 423 265 518 392 196 27 312 506 191 364 476</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_usart.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\rndis\rndis_driver\usbd_desc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 580</file>
+                    <file> 514</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 118</file>
+                    <file> 399</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 445 668 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 267 98 84 290 525 408 409 362 469 343 498 601 504 189</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_wwdt.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\rndis\rndis_driver\usbd_rndis_core.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 621</file>
+                    <file> 323</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 573</file>
+                    <file> 529</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 409 625 570 466 413 297 92 362 469 84 343 498 445 668 649 597 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 267 98 290 601 504 525 408 189</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_adc.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ip.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 121</file>
+                    <file> 43</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 606</file>
+                    <file> 468</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 110 91 380 420 517 271 612 481 203 11 438 71 307 258 6 423 265 518 392</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_can.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\igmp.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 626</file>
+                    <file> 79</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 71</file>
+                    <file> 60</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_dma.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\ip4_addr.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 612</file>
+                    <file> 295</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 108</file>
+                    <file> 470</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 110 91 380 420 517 271 11 203 481 438 71 307 258 6</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\cmsis\cm4\device_support\startup\iar\startup_at32f403a_407.s</name>
-            <outputs>
-                <tool>
-                    <name>AARM</name>
-                    <file> 497</file>
-                </tool>
-            </outputs>
-        </file>
-        <file>
-            <name>$PROJ_DIR$\..\..\fw\user\system_at32f403a_407.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\pbuf.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 220</file>
+                    <file> 605</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 62</file>
+                    <file> 584</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 438 71 307 258 6 91 481 203 363 376 491 674 211 301 28 225 594 291 639 47 44 80 587 261 62 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_exint.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\memp.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 691</file>
+                    <file> 492</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 201</file>
+                    <file> 548</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 545 447 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 307 258 6 71 438 363 203 376 491 674 211 301 28 225 594 291 639 47 44 80 587 261 62 469 343 481 538 91 612 110 380 420 517 271 11 423 265 518 392 26 196 530 197 222 497 269 563 35 485 205 347 402 51 345 21 200 202 312 506 191 67 480 259 22 207 100</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\Debug\Exe\module_universal_io.out</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\icmp.c</name>
             <outputs>
                 <tool>
-                    <name>ILINK</name>
-                    <file> 102</file>
+                    <name>ICCARM</name>
+                    <file> 398</file>
                 </tool>
                 <tool>
-                    <name>OBJCOPY</name>
-                    <file> 72</file>
+                    <name>BICOMP</name>
+                    <file> 463</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
-                    <name>ILINK</name>
-                    <file> 130 381 498 510 700 649 224 177 121 162 184 626 117 79 114 661 450 612 15 691 433 693 515 590 686 512 631 701 67 101 580 253 131 621 415 195 140 29 431 689 231 645 585 13 667 624 406 155 186 69 93 637 625 503 596 403 30 683 143 244 694 214 426 222 255 647 408 178 122 514 98 710 399 709 430 517 165 662 91 565 387 156 388 552 179 251 618 221 210 660 422 614 654 132 687 493 607 665 136 208 488 603 409 438 277 427 452 187 100 383 168 262 213 315 638 499 161 203 613 688 106 151 513 95 633 604 497 418 385 595 75 619 148 220 549 99 402 202 218 553 417 104 83 583 564 200 23 97 609 454 137 197 671 73 421 194 181 159 154 252 248 24</file>
+                    <name>ICCARM</name>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 197 481 203 110 91 380 420 517 271 11 438 71 307 258 6 222 333 612 423 265 518 392 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\utils\utility.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\mem.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 194</file>
+                    <file> 400</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 669</file>
+                    <file> 436</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 190 185 404 364 237 180 707 699 509 469 2 182 643 525 446 157 494 666 670 696 432 126 111 173 55 436 273 164 94 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 608 369 80</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 71 91 363 203 376 491 674 211 301 28 225 594 291 639 47 44 80 587 261 62 438 307 258 6 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\wdt\wdt.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\stats.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 181</file>
+                    <file> 560</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 246</file>
+                    <file> 69</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 610</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 91 438 71 307 258 6 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\utils\at32f403a_407_board.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\dns.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 162</file>
+                    <file> 25</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 8</file>
+                    <file> 512</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 149 608 404 364 237 180 707 699 55 436 509 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 91 26 481 203 11 110 380 420 517 271 438 71 307 258 6 612 423 265 518 392 196 259 289 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\utils\extended_sram.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\etharp.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 625</file>
+                    <file> 500</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 209</file>
+                    <file> 434</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 678 348 96</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 312 481 203 380 91 420 517 11 110 271 438 71 307 258 6 423 265 506 191 85 499 26 612 518 392 196 630 364 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\sys\sys_hal.c</name>
+            <name>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbutils.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 148</file>
+                    <file> 29</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 26</file>
+                    <file> 410</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 509 404 364 237 180 707 124 76 96 311 55 436 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 310 608 699</file>
+                    <file> 414 570 466 413 297 92 84 503 469 343 180 649 597 625 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 491 498 674 211 301 28 225 594 639 47 44 80 182 173 183</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfunccoils.c</name>
+            <name>$PROJ_DIR$\..\..\shared\freemodbus\ascii\mbascii.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 91</file>
+                    <file> 309</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 568</file>
+                    <file> 279</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 238 404 364 237 180 707 699 191 369 80 357 55 436 509 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 190 185 469 2 182 643 525 446 494 666 670 696 355 346 333 336 345</file>
+                    <file> 414 570 466 413 297 92 84 503 469 343 180 649 597 625 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 491 498 674 211 301 28 225 594 639 47 44 80 182 173 183 162 391 175 553</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\mem.c</name>
+            <name>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfuncfile.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 221</file>
+                    <file> 305</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 274</file>
+                    <file> 574</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 698 704 113 4 107 190 469 2 182 643 525 446 157 494 666 670 696 432 126 653 249 153 120 632 369 80</file>
+                    <file> 414 570 466 413 297 92 84 503 469 343 180 649 597 625 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 491 498 674 211 301 28 225 594 639 47 44 80 182 173 183 175 162 98</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\netif.c</name>
+            <name>$PROJ_DIR$\..\..\shared\freemodbus\port\portother.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 603</file>
+                    <file> 509</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 579</file>
+                    <file> 471</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 369 80 704 602 112 228 211 128 627 4 377 249 698 153 120 632 189 561 429 247 125 557 241 19 5 150 635 17 570 702 27 166 198 11 113 107 190 469 2 182 643 525 446 157 494 666 670 696 432 126 653 105 196</file>
+                    <file> 414 570 466 413 297 92 84 503 491 498 625 674 211 301 28 225 594 291 639 47 44 80 261 587 182 180 649 597 444 288 359 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 173 183</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\sys.c</name>
+            <name>$PROJ_DIR$\..\..\shared\freemodbus\port\porttimer.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 595</file>
+                    <file> 478</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 78</file>
+                    <file> 635</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 113 4 107 190 469 2 182 643 525 446 157 494 666 670 696 432 126 653</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 491 498 84 674 211 301 28 225 594 639 47 44 80 180 182 173 183 324 362</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\def.c</name>
+            <name>$PROJ_DIR$\..\..\shared\freemodbus\rtu\mbrtu.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 231</file>
+                    <file> 425</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 183</file>
+                    <file> 327</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 704 369 80</file>
+                    <file> 414 570 466 413 297 92 84 503 469 343 180 649 597 625 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 491 498 674 211 301 28 225 594 639 47 44 80 182 173 183 121 175 553</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\tcp.c</name>
+            <name>$PROJ_DIR$\..\..\shared\peripherals\src\buttons.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 99</file>
+                    <file> 264</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 110</file>
+                    <file> 426</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 704 698 153 120 632 249 561 377 4 429 602 112 228 211 128 627 247 125 557 241 19 5 189 150 139 369 80</file>
+                    <file> 464 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 362 581 167 294 491 498 84 674 211 301 28 225 594 639 47 261 587 318 631 182 180 44 80 173 183 31 489 277 189 469 343 98</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\tcp_out.c</name>
+            <name>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfuncother.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 202</file>
+                    <file> 296</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 424</file>
+                    <file> 421</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 189 561 698 377 4 429 704 602 112 228 211 128 627 249 153 120 632 247 125 557 241 19 5 150 65 369 80</file>
+                    <file> 414 570 466 413 297 92 84 503 469 343 180 649 597 625 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 491 498 674 211 301 28 225 594 639 47 44 80 182 173 183 175 162</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\netif\ethernet.c</name>
+            <name>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfuncinput.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 69</file>
+                    <file> 549</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 434</file>
+                    <file> 94</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 105 377 4 627 602 704 112 228 211 128 249 698 153 120 632 198 166 247 125 11 429 557 241 702 369 80 676</file>
+                    <file> 414 570 466 413 297 92 84 503 469 343 180 649 597 625 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 491 498 674 211 301 28 225 594 639 47 44 80 182 173 183 175 162</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\udp.c</name>
+            <name>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfuncdisc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 564</file>
+                    <file> 456</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 398</file>
+                    <file> 490</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 635 377 4 627 602 704 112 228 211 128 249 698 153 120 632 429 247 125 557 241 17 65 19 5 504 174 702 196 369 80</file>
+                    <file> 414 570 466 413 297 92 84 503 469 343 180 649 597 625 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 491 498 674 211 301 28 225 594 639 47 44 80 182 173 183 175 162</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\raw.c</name>
+            <name>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfuncdiag.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 262</file>
+                    <file> 536</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 258</file>
+                    <file> 41</file>
                 </tool>
             </outputs>
-            <inputs>
-                <tool>
-                    <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 704 153 120 632 698 249 602 112 228 211 128 627 4 377 570 429 247 125 557 241 65 369 80</file>
-                </tool>
-            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\inet_chksum.c</name>
+            <name>$PROJ_DIR$\..\..\shared\freemodbus\port\portevent.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 214</file>
+                    <file> 596</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 109</file>
+                    <file> 15</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 65 377 4 602 704 112 228 211 128 369 80</file>
+                    <file> 491 498 570 466 413 297 92 84 625 674 211 301 28 225 594 291 639 47 44 80 587 182 180 649 597 444 288 359 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 173 183</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ip.c</name>
+            <name>$PROJ_DIR$\..\..\shared\peripherals\src\common_gpio.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 647</file>
+                    <file> 348</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 368</file>
+                    <file> 66</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 602 704 112 228 211 128 429 377 4 627 249 698 153 120 632 247 125 557 241</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 521 362 491 498 84 674 211 301 28 225 594 639 47 44 80 631</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\stats.c</name>
+            <name>$PROJ_DIR$\..\..\shared\peripherals\src\rng.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 418</file>
+                    <file> 19</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 692</file>
+                    <file> 315</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 704 249 698 153 120 632 369 80</file>
+                    <file> 411 625 570 466 413 297 92 649 597 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 98 84 414 503</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\tcp_in.c</name>
+            <name>$PROJ_DIR$\..\..\shared\peripherals\src\spi_common.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 402</file>
+                    <file> 7</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 682</file>
+                    <file> 396</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 189 561 698 377 4 429 704 602 112 228 211 128 627 249 153 120 632 247 125 557 241 19 5 150 65 139</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 455 362</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\port\FreeRTOS\sys_arch.c</name>
+            <name>$PROJ_DIR$\..\..\shared\peripherals\src\usb.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 619</file>
+                    <file> 355</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 562</file>
+                    <file> 83</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 695 475 704 113 4 107 190 469 2 182 643 525 446 157 494 666 670 696 432 126 653 698 249 153 120 632</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 537 445 668 267 98 84 290 525 496</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\init.c</name>
+            <name>$PROJ_DIR$\..\..\shared\freemodbus\port\portserial.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 426</file>
+                    <file> 357</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 116</file>
+                    <file> 284</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 511 249 698 153 120 632 113 4 107 190 469 2 182 643 525 446 157 494 666 670 696 432 126 653 377 627 602 704 112 228 211 128 639 22 429 247 125 557 241 570 635 17 189 561 19 5 150 27 133 219 166 198 11 139 592 370 646 676 267</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 267 98 84 491 498 674 211 301 28 225 594 639 47 44 80 182 180 173 183 199 362 324 414 503</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\ringfs\ringfs.c</name>
+            <name>$PROJ_DIR$\..\..\shared\freemodbus\rtu\mbcrc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 213</file>
+                    <file> 55</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 451</file>
+                    <file> 109</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 651 509 404 364 237 180 707 608 699 238 191 16 96 185 311 55 436 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 180 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 491 498 84 674 211 301 28 225 594 639 47 44 80</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\rndis\dhcp-server\dhserver.c</name>
+            <name>$PROJ_DIR$\..\..\shared\freemodbus\mb.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 585</file>
+                    <file> 641</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 88</file>
+                    <file> 552</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 582 608 404 364 237 180 707 699 509 96 369 80 4 695 475 66 215 598 276 238 191 185 16 272 635 377 627 602 704 112 228 211 128 249 698 153 120 632 429 247 125 557 241 17 642 166 198 11 105 384</file>
+                    <file> 414 570 466 413 297 92 84 503 469 343 180 649 597 625 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 491 498 674 211 301 28 225 594 639 47 44 80 182 173 183 162 175 186 121</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\memp.c</name>
+            <name>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfunccoils.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 210</file>
+                    <file> 352</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 555</file>
+                    <file> 522</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 153 120 632 698 249 113 4 107 190 469 2 182 643 525 446 157 494 666 670 696 432 126 653 369 80 377 570 704 429 602 112 228 211 128 627 247 125 557 241 635 17 561 19 5 189 150 405 646 370 7 81 219 648 27 639 22 3 166 198 11 676 366 133 640 18 592</file>
+                    <file> 414 570 466 413 297 92 84 503 469 343 180 649 597 625 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 491 498 674 211 301 28 225 594 639 47 44 80 182 173 183 175 162</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\timeouts.c</name>
+            <name>$PROJ_DIR$\..\..\shared\freemodbus\port\tim_delay.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 583</file>
+                    <file> 319</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 70</file>
+                    <file> 531</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 219 4 113 107 190 469 2 182 643 525 446 157 494 666 670 696 432 126 653 189 561 698 377 429 704 602 112 228 211 128 627 249 153 120 632 247 125 557 241 19 5 150 7 81 405 166 198 11 196 635 17 516 27 133 139 18 592</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 199 362 324</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\ip4_addr.c</name>
+            <name>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfuncholding.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 178</file>
+                    <file> 460</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 374</file>
+                    <file> 373</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 602 704 112 228 211 128 627 4 377 249 698 153 120 632</file>
+                    <file> 414 570 466 413 297 92 84 503 469 343 180 649 597 625 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 491 498 674 211 301 28 225 594 639 47 44 80 182 173 183 175 162</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\pbuf.c</name>
+            <name>$PROJ_DIR$\..\..\shared\utils\at32f403a_407_board.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 438</file>
+                    <file> 311</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 444</file>
+                    <file> 215</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 249 698 153 120 632 704 377 4 113 107 190 469 2 182 643 525 446 157 494 666 670 696 432 126 653 369 80</file>
+                    <file> 267 98 570 466 413 297 92 84 649 597 625 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\dns.c</name>
+            <name>$PROJ_DIR$\..\..\shared\wdt\wdt.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 624</file>
+                    <file> 298</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 205</file>
+                    <file> 437</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 704 635 377 4 627 602 112 228 211 128 249 698 153 120 632 429 247 125 557 241 17 133 163 369 80</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 120</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\port\FreeRTOS\ethernetif.c</name>
+            <name>$PROJ_DIR$\..\..\shared\utils\extended_sram.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 93</file>
+                    <file> 10</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 558</file>
+                    <file> 516</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 704 698 377 4 113 107 190 469 2 182 643 525 446 157 494 666 670 696 432 126 653 249 153 120 632 702 602 112 228 211 128 642 166 627 247 125 198 11 105 141 676 261 652 55 436 273 164 94 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 369 80</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 82 167 362</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\rndis\dns-server\dnserver.c</name>
+            <name>$PROJ_DIR$\..\..\shared\sys\sys_hal.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 406</file>
+                    <file> 255</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 502</file>
+                    <file> 329</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 616 509 404 364 237 180 707 96 608 699 369 80 704 215 598 276 238 191 185 16 272 695 475 66 4 635 377 627 602 112 228 211 128 249 698 153 120 632 429 247 125 557 241 17 642 166 198 11 105 384</file>
+                    <file> 625 570 466 413 297 92 270 318 362 189 649 597 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 147 98 84</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\rndis\rndis_driver\usbd_desc.c</name>
+            <name>$PROJ_DIR$\..\..\shared\sys\sys_api.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 197</file>
+                    <file> 330</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 232</file>
+                    <file> 337</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 275 49 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 149 608 699 175 574 229 230 96 369 80 185 440 193 311</file>
+                    <file> 625 570 466 413 297 92 318 362 270 581 649 597 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 167 294 491 498 84 674 211 301 28 225 594 639 47 261 587 631 182 180 44 80 173 183 31 489 277 189 147 193 469 343 98</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\rndis\rndis_driver\usbd_rndis_core.c</name>
+            <name>$PROJ_DIR$\..\..\shared\utils\utility.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 73</file>
+                    <file> 487</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 576</file>
+                    <file> 49</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 230 509 404 364 237 180 707 96 369 699 80 185 275 49 55 436 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 149 608 175 440 193 574 229 311</file>
+                    <file> 491 498 570 466 413 297 92 84 625 674 211 301 28 225 594 291 639 47 44 80 587 261 361 292 649 597 444 288 359 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 98 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\ip4_frag.c</name>
+            <name>$PROJ_DIR$\..\..\shared\rtc\rtc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 122</file>
+                    <file> 636</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 389</file>
+                    <file> 494</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 405 4 377 627 602 704 112 228 211 128 249 698 153 120 632 429 247 125 557 241 65 19 5 369 80</file>
+                    <file> 193 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 581 167 362 294 491 498 84 674 211 301 28 225 594 639 47 261 587 318 631 182 180 44 80 173 183 31 489 277 189 469 343 98</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\freemodbus\ascii\mbascii.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_usb.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 165</file>
+                    <file> 440</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 142</file>
+                    <file> 344</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 238 404 364 237 180 707 699 191 369 80 357 55 436 509 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 190 185 469 2 182 643 525 446 494 666 670 696 355 346 333 345 240 336 411</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\io\analog_output.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\freertos\croutine.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 510</file>
+                    <file> 582</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 441</file>
+                    <file> 561</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 123 96 495 111 190 185 699 469 2 182 643 525 446 494 666 670 696 394 348 176 126 432 76 492 355 357 346 333 617 188 20 236 77 622 608</file>
+                    <file> 491 498 570 466 413 297 92 84 625 674 211 301 28 225 594 291 639 47 44 80 33</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\io\digital_output.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\freertos\event_groups.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 667</file>
+                    <file> 18</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 589</file>
+                    <file> 486</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 550 96 492 190 185 699 469 2 182 643 525 446 494 666 670 696 394 348 176 126 432 76 355 357 346 333 617 188 123 622 77 608</file>
+                    <file> 414 570 466 413 297 92 84 503 491 498 625 674 211 301 28 225 594 291 639 47 44 80 123 546</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\io\io.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_wdt.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 222</file>
+                    <file> 257</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 169</file>
+                    <file> 593</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 492 96 190 185 699 469 2 182 643 525 446 494 666 670 696 394 348 176 126 432 76 355 357 346 333 617 188 123 622 608</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\io\analog_input.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\usb\src\usbd_sdr.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 498</file>
+                    <file> 577</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 152</file>
+                    <file> 628</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 188 96 495 111 190 185 699 469 2 182 643 525 446 494 666 670 696 394 348 176 126 432 76 492 355 357 346 333 617 123 491 10 236 77 672 608</file>
+                    <file> 602 445 668 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 267 98 84 290 189</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\log\log_api.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\freertos\list.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 399</file>
+                    <file> 629</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 135</file>
+                    <file> 458</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 559 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 651 608 699 238 191 96 617 9 487 190 185 469 2 182 643 525 446 494 666 670 696 126 432 369 80 16</file>
+                    <file> 414 570 466 413 297 92 84 503 491 498 625 674 211 301 28 225 594 291 639 47 80</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\log\log_ai.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\usb\src\usbd_core.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 710</file>
+                    <file> 276</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 711</file>
+                    <file> 583</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 697 394 348 96 176 190 185 699 469 2 182 643 525 446 494 666 126 432 76 492 355 357 670 696 346 333 617 188 123 651 608 238 191 675 487</file>
+                    <file> 445 668 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 267 98 84 290 602</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\dac\dac_transport.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\freertos\queue.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 689</file>
+                    <file> 303</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 395</file>
+                    <file> 443</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 20 96 190 185 699 469 2 182 643 525 446 494 666 670 696 68 608</file>
+                    <file> 414 570 466 413 297 92 84 503 469 343 491 498 625 674 211 301 28 225 594 291 639 47 44 80 587</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\io\filter.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\microrl\microrl.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 503</file>
+                    <file> 38</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 677</file>
+                    <file> 484</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 672 96 111 190 185 699 469 2 182 643 525 446 494 666 670 696 394 348 176 126 432 76 492 355 357 346 333 617 188 123 608</file>
+                    <file> 469 570 466 413 297 92 84 343 442 414 503 20 680</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\io\mux.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\api_msg.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 136</file>
+                    <file> 40</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 138</file>
+                    <file> 644</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 77 96 190 185 699 469 2 182 643 525 446 494 666 670 696</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 51 110 91 380 420 517 271 203 363 376 491 674 211 301 28 225 594 291 639 47 44 80 587 261 62 345 11 481 438 71 307 258 6 485 35 205 347 402 612 423 265 518 392 26 196 530 197 222 538 259 100 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\adc\adc_transport.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\usb\src\usbd_int.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 381</file>
+                    <file> 52</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 87</file>
+                    <file> 50</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 10 190 185 699 469 2 182 643 525 446 494 666 670 696 394 348 96 176 126 432 76 492 355 357 346 333 617 188 123 622 491 68 111 608</file>
+                    <file> 496 445 668 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 267 98 84 290 189 408</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\io\digital_input.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\freertos\portable\memmang\heap_4.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 13</file>
+                    <file> 281</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 439</file>
+                    <file> 13</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 282 96 492 190 185 699 469 2 182 643 525 446 494 666 670 696 394 348 176 126 432 76 355 357 346 333 617 188 123 622 77 608</file>
+                    <file> 414 570 466 413 297 92 84 503 491 498 625 674 211 301 28 225 594 291 639 47 44 80</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\adc\ms5192t.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\freertos\tasks.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 665</file>
+                    <file> 528</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 86</file>
+                    <file> 216</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 10 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 491</file>
+                    <file> 414 570 466 413 297 92 84 503 469 343 491 498 625 674 211 301 28 225 594 291 639 47 44 80 123 467 98</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\io\io_utils.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\api_lib.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 255</file>
+                    <file> 72</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 115</file>
+                    <file> 286</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 622 96 190 185 699 469 2 182 643 525 446 494 666 670 696 394 348 176 126 432 76 492 355 357 346 333 617 188 123 77 608</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 485 35 481 203 110 91 380 420 517 271 363 376 491 674 211 301 28 225 594 291 639 47 44 80 587 261 62 307 258 6 71 438 612 11 423 265 518 392 538 26 196 51 345 205 347 402 497 530 197 222 269 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\log\log.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\netbuf.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 98</file>
+                    <file> 515</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 593</file>
+                    <file> 616</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 617 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 96 9 651 608 699 238 191 487 190 185 469 2 182 643 525 446 494 666 670 696 126 432 551 587 394 348 176 76 492 355 357 346 333 188 123 282 697 706 675 369 80 16</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 35 481 203 110 91 380 420 517 271 307 258 6 71 438 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\peripherals\src\rng.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\netdb.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 638</file>
+                    <file> 622</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 167</file>
+                    <file> 353</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 235 509 404 364 237 180 707 55 436 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 608 699 238 191</file>
+                    <file> 480 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 200 91 110 380 420 517 271 21 203 62 71 307 258 6 438 485 35 481 363 376 491 674 211 301 28 225 594 291 639 47 44 80 587 261 259 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\peripherals\src\spi_common.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\err.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 633</file>
+                    <file> 299</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 242</file>
+                    <file> 513</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 386 96</file>
+                    <file> 203 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 91 363 376 491 674 211 301 28 225 594 291 639 47 44 80 587 261 62</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfuncholding.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\freertos\portable\IAR\ARM_CM4F\port.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 388</file>
+                    <file> 446</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 90</file>
+                    <file> 510</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 238 404 364 237 180 707 699 191 369 80 357 55 436 509 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 190 185 469 2 182 643 525 446 494 666 670 696 355 346 333 336 345</file>
+                    <file> 594 291 466 413 297 92 639 491 498 570 84 625 674 211 301 28 225 47 44 80</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\freemodbus\port\portother.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\freertos\portable\IAR\ARM_CM4F\portasm.s</name>
             <outputs>
                 <tool>
-                    <name>ICCARM</name>
-                    <file> 187</file>
-                </tool>
-                <tool>
-                    <name>BICOMP</name>
-                    <file> 376</file>
+                    <name>AARM</name>
+                    <file> 585</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
-                    <name>ICCARM</name>
-                    <file> 238 404 364 237 180 707 699 191 190 185 509 469 2 182 643 525 446 157 494 666 670 696 126 432 355 357 55 436 273 164 94 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 346 333</file>
+                    <name>AARM</name>
+                    <file> 674</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\freemodbus\rtu\mbcrc.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\netifapi.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 662</file>
+                    <file> 562</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 601</file>
+                    <file> 254</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 357 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 190 185 699 469 2 182 643 525 446 494 666 670 696</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\rtc\rtc.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_wwdt.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 499</file>
+                    <file> 0</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 206</file>
+                    <file> 540</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 9 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 394 348 96 176 190 185 699 469 2 182 643 525 446 494 666 126 432 76 492 355 357 670 696 346 333 617 188 123 311 369 80 608</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\sys\sys_api.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\freertos\FreeRTOS-openocd.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 75</file>
+                    <file> 331</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 64</file>
+                    <file> 16</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 509 404 364 237 180 707 76 96 124 394 55 436 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 348 176 190 185 699 469 2 182 643 525 446 494 666 126 432 492 355 357 670 696 346 333 617 188 123 311 310 9 369 80 608</file>
+                    <file> 491 498 570 466 413 297 92 84 625 674 211 301 28 225 594 291 639 47</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\peripherals\src\buttons.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\sockets.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 140</file>
+                    <file> 302</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 269</file>
+                    <file> 592</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 362 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 96 394 348 176 190 185 699 469 2 182 643 525 446 494 666 126 432 76 492 355 357 670 696 346 333 617 188 123 311 369 80 608</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 21 110 91 380 420 517 271 203 200 62 485 35 481 363 376 491 674 211 301 28 225 594 291 639 47 44 80 587 261 345 11 438 71 307 258 6 530 612 423 265 518 392 197 222 538 26 196 205 347 402 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\peripherals\src\usb.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\tcpip.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 97</file>
+                    <file> 401</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 681</file>
+                    <file> 415</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 569 275 49 149 608 699 175 574 204</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 205 347 203 402 363 376 491 674 211 301 28 225 594 291 639 47 44 80 587 261 62 11 110 91 380 420 517 271 481 438 71 307 258 6 637 612 423 265 518 392 312 506 191 364</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfuncdiag.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\autoip.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 565</file>
+                    <file> 501</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 663</file>
+                    <file> 46</file>
                 </tool>
             </outputs>
+            <inputs>
+                <tool>
+                    <name>ICCARM</name>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452</file>
+                </tool>
+            </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfuncdisc.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\dhcp.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 387</file>
+                    <file> 39</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 199</file>
+                    <file> 569</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 238 404 364 237 180 707 699 191 369 80 357 55 436 509 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 190 185 469 2 182 643 525 446 494 666 670 696 355 346 333 336 345</file>
+                    <file> 93 676 334 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 438 71 307 258 6 26 481 203 11 110 91 380 420 517 271 612 423 265 518 392 196 499 630 259 312 506 191 564 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\freemodbus\mb.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\system\at32f403a_407_clock.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 517</file>
+                    <file> 351</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 410</file>
+                    <file> 104</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 238 404 364 237 180 707 699 191 369 80 357 55 436 509 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 190 185 469 2 182 643 525 446 494 666 670 696 355 346 333 345 336 356 584</file>
+                    <file> 106 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\freemodbus\port\porttimer.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_xmc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 383</file>
+                    <file> 558</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 496</file>
+                    <file> 523</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 190 185 699 469 2 182 643 525 446 494 666 670 696 357 355 346 333 77 96</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfuncother.c</name>
+            <name>$PROJ_DIR$\..\..\libs\thirdparty\freertos\fr_timers.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 179</file>
+                    <file> 578</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 233</file>
+                    <file> 614</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 238 404 364 237 180 707 699 191 369 80 357 55 436 509 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 190 185 469 2 182 643 525 446 494 666 670 696 355 346 333 336 345</file>
+                    <file> 414 570 466 413 297 92 84 503 491 498 625 674 211 301 28 225 594 291 639 47 44 80 587 123</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbutils.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\adc\ms5192t.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 618</file>
+                    <file> 42</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 234</file>
+                    <file> 342</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 238 404 364 237 180 707 699 191 369 80 357 55 436 509 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 190 185 469 2 182 643 525 446 494 666 670 696 355 346 333</file>
+                    <file> 220 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 620</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\freemodbus\port\portevent.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\adc\adc_transport.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 452</file>
+                    <file> 482</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 629</file>
+                    <file> 328</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 190 185 404 364 237 180 707 699 509 469 2 182 643 525 446 157 494 666 670 696 432 355 357 55 436 273 164 94 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 346 333</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 220 491 498 84 674 211 301 28 225 594 639 47 44 80 581 167 362 294 261 587 318 631 182 180 173 183 31 489 277 12 620 335 361 98</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\freemodbus\port\portserial.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\dac\dac_transport.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 100</file>
+                    <file> 77</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 144</file>
+                    <file> 551</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 149 608 699 190 185 469 2 182 643 525 446 494 666 670 696 355 357 346 333 12 96 77 238 191</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 217 362 491 498 84 674 211 301 28 225 594 639 47 44 80 335 98</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\freemodbus\port\tim_delay.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\io\analog_input.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 83</file>
+                    <file> 634</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 560</file>
+                    <file> 304</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 12 96 77</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 489 362 617 361 491 498 84 674 211 301 28 225 594 639 47 44 80 581 167 294 261 587 318 631 182 180 173 183 31 277 620 220 412 324 53 98</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfuncinput.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\io\analog_output.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 552</file>
+                    <file> 626</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 679</file>
+                    <file> 611</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 238 404 364 237 180 707 699 191 369 80 357 55 436 509 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 190 185 469 2 182 643 525 446 494 666 670 696 355 346 333 336 345</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 277 362 617 361 491 498 84 674 211 301 28 225 594 639 47 44 80 581 167 294 261 587 318 631 182 180 173 183 31 489 217 412 324 12 98</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\freemodbus\rtu\mbrtu.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\io\digital_input.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 251</file>
+                    <file> 204</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 85</file>
+                    <file> 588</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 238 404 364 237 180 707 699 191 369 80 357 55 436 509 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 190 185 469 2 182 643 525 446 494 666 670 696 355 346 333 584 336 411</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 435 362 631 491 498 84 674 211 301 28 225 594 639 47 44 80 581 167 294 261 587 318 182 180 173 183 31 489 277 12 324 98</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\freemodbus\functions\mbfuncfile.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\io\digital_output.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 156</file>
+                    <file> 56</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 413</file>
+                    <file> 115</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 238 404 364 237 180 707 699 191 369 80 357 55 436 509 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 190 185 469 2 182 643 525 446 494 666 670 696 355 346 333 336 345 608</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 534 362 631 491 498 84 674 211 301 28 225 594 639 47 44 80 581 167 294 261 587 318 182 180 173 183 31 489 277 12 324 98</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\shared\peripherals\src\common_gpio.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\io\io.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 29</file>
+                    <file> 393</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 684</file>
+                    <file> 287</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 566 96 190 185 699 469 2 182 643 525 446 494 666 670 696 492</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 631 362 491 498 84 674 211 301 28 225 594 639 47 44 80 581 167 294 261 587 318 182 180 173 183 31 489 277 12 98</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\settings\settings_api.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\io\filter.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 613</file>
+                    <file> 643</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 396</file>
+                    <file> 87</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 394 348 96 176 190 185 699 469 2 182 643 525 446 494 666 126 432 76 492 355 357 670 696 346 333 617 188 123 705 227 281 311 310 594 572 111 559 651 608 238 191 257 620 369 80</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 53 362 361 491 498 84 674 211 301 28 225 594 639 47 44 80 581 167 294 261 587 318 631 182 180 173 183 31 489 277 98</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\terminal\terminal_usartbridge.cpp</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\io\io_utils.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 104</file>
+                    <file> 430</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 119</file>
+                    <file> 379</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 264 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 416 615 60 260 190 185 699 469 2 182 643 525 446 494 666 670 696 126 432 369 80 608</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 12 362 491 498 84 674 211 301 28 225 594 639 47 44 80 581 167 294 261 587 318 631 182 180 173 183 31 489 277 324 98</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\misc\at32_uid.c</name>
+            <name>$PROJ_DIR$\Debug\Exe\module_universal_io.out</name>
             <outputs>
                 <tool>
-                    <name>ICCARM</name>
-                    <file> 224</file>
+                    <name>ILINK</name>
+                    <file> 369</file>
                 </tool>
                 <tool>
-                    <name>BICOMP</name>
-                    <file> 243</file>
+                    <name>OBJCOPY</name>
+                    <file> 338</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
-                    <name>ICCARM</name>
-                    <file> 594 509 404 364 237 180 707 608 699 369 80</file>
+                    <name>ILINK</name>
+                    <file> 256 482 634 626 72 40 419 300 273 311 488 2 351 340 375 37 607 8 195 95 606 73 640 125 78 638 4 90 320 372 544 440 257 0 558 501 264 348 582 77 395 39 122 204 56 25 573 299 500 346 350 18 10 643 96 578 331 88 281 398 79 417 590 393 430 43 580 295 262 629 358 646 559 647 609 641 309 55 352 536 456 305 460 549 296 425 29 400 492 38 567 14 63 275 74 618 117 42 263 515 622 111 562 605 446 585 596 509 357 478 303 429 495 462 19 636 308 511 5 68 374 302 627 367 7 114 632 560 474 107 330 30 255 418 528 371 556 508 401 547 576 360 319 112 533 502 208 355 118 610 276 514 52 323 577 487 298 317 310 439 449 209</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\terminal\terminal_sbs.cpp</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_acc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 417</file>
+                    <file> 300</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 449</file>
+                    <file> 603</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 260 416 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 615 60 190 185 699 469 2 182 643 525 446 494 666 670 696 126 432 311 608 238 191 369 80 96 16 617 559 651 9 394 348 176 76 492 355 357 346 333 188 123 111</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\user\at32f403a_407_int.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_can.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 590</file>
+                    <file> 2</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 256</file>
+                    <file> 336</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 173 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\user\flash_ram_const.c</name>
+            <name>$PROJ_DIR$\..\..\fw\user\at32f403a_407_int.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 596</file>
+                    <file> 125</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 223</file>
+                    <file> 431</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 348 96</file>
+                    <file> 292 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\misc\swap.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_crm.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 385</file>
+                    <file> 375</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 393</file>
+                    <file> 89</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 401 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\misc\uptime.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_gpio.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 23</file>
+                    <file> 73</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 644</file>
+                    <file> 272</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 250 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 9 622 96 608 699</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\modbus\modbus_ai_params.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_i2c.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 654</file>
+                    <file> 640</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 21</file>
+                    <file> 32</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 636 355 357 190 185 699 469 2 182 643 525 446 494 666 670 696 346 333 1 96 394 348 176 126 432 76 492 617 188 123 278</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\monitor\monitoring.c</name>
+            <name>$PROJ_DIR$\..\..\fw\user\main.cpp</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 607</file>
+                    <file> 609</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 605</file>
+                    <file> 1</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 236 96</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 267 98 84 106 189 491 498 674 211 301 28 225 594 639 47 44 80 587 261 476 362 324 335 455 475 86 108 541 448 615 82 201 521 631 318 581 167 294 182 180 173 183 31 489 277 99 424 193 12 435 534 464 620 617 217 554 361 48 613 206 53 17 428 575 20 680 447 469 343 414 503</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\settings\settings_dio.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_misc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 688</file>
+                    <file> 78</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 225</file>
+                    <file> 599</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 394 348 96 176 190 185 699 469 2 182 643 525 446 494 666 126 432 76 492 355 357 670 696 346 333 617 188 123 705</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\modbus\update.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_pwc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 200</file>
+                    <file> 638</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 690</file>
+                    <file> 589</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 611 311 190 185 699 469 2 182 643 525 446 494 666 670 696 587 608</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\terminal\terminal.cpp</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\cmsis\cm4\device_support\startup\iar\startup_at32f403a_407.s</name>
+            <outputs>
+                <tool>
+                    <name>AARM</name>
+                    <file> 632</file>
+                </tool>
+            </outputs>
+        </file>
+        <file>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_spi.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 553</file>
+                    <file> 320</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 506</file>
+                    <file> 604</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 416 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 615 60 369 699 80 554</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\testing\soft_test.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_sdio.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 513</file>
+                    <file> 90</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 658</file>
+                    <file> 285</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 650 190 185 699 469 2 182 643 525 446 494 666 670 696 282 96 492 77 608</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\spi_flash\spi_flash.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_usart.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 604</file>
+                    <file> 544</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 673</file>
+                    <file> 368</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 487 96 190 185 699 469 2 182 643 525 446 494 666 386 670 696 311 369 80 608</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\log\log_dio.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_exint.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 709</file>
+                    <file> 95</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 708</file>
+                    <file> 507</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 706 394 348 96 176 190 185 699 469 2 182 643 525 446 494 666 126 432 76 492 355 357 670 696 346 333 617 188 123</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\settings\settings_ai.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_rtc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 161</file>
+                    <file> 4</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 414</file>
+                    <file> 545</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 394 348 96 176 190 185 699 469 2 182 643 525 446 494 666 126 432 76 492 355 357 670 696 346 333 617 188 123 281</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\misc\usb_clock.c</name>
+            <name>$PROJ_DIR$\..\..\fw\user\system_at32f403a_407.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 609</file>
+                    <file> 418</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 443</file>
+                    <file> 349</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 0</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\usb\usb_eth.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_adc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 454</file>
+                    <file> 273</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 375</file>
+                    <file> 116</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 384 96 582 608 699 369 80 4 695 475 66 215 598 276 238 191 185 16 272 635 377 627 602 704 112 228 211 128 249 698 153 120 632 429 247 125 557 241 17 642 166 198 11 105 616 230 275 49 149 175 440 193 511 19 5 370 646 113 107 190 469 2 182 643 525 446 494 666 670 696 432 126 653 22 133 81 219 569 310</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\shift_reg\shift_reg.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_debug.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 106</file>
+                    <file> 607</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 84</file>
+                    <file> 527</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 495 96 190 185 699 469 2 182 643 525 446 494 666 670 696 68 608</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\user\main.cpp</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_tmr.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 430</file>
+                    <file> 372</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 623</file>
+                    <file> 571</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 149 608 699 600 311 190 185 469 2 182 643 525 446 494 666 670 696 432 126 384 96 77 68 386 379 703 591 577 279 487 678 1 566 492 76 394 348 176 355 357 346 333 617 188 123 611 250 9 622 282 550 362 491 495 20 401 111 650 442 0 672 636 260 416 615 60 264 369 80 238 191</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\misc\hash.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_flash.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 683</file>
+                    <file> 606</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 588</file>
+                    <file> 306</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 367 676 695 475 66 572</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\misc\misc.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_dma.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 422</file>
+                    <file> 8</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 265</file>
+                    <file> 377</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 68 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 190 185 699 469 2 182 643 525 446 494 666 670 696 77 96 355 357 346 333 149 608</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\modbus\modbus.c</name>
+            <name>$PROJ_DIR$\..\..\fw\user\flash_ram_const.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 614</file>
+                    <file> 96</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 597</file>
+                    <file> 403</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 311 1 611 190 185 699 469 2 182 643 525 446 494 666 670 696 587 355 357 346 333 584 12 96 278 566 622 617 559 651 608 238 191 394 348 176 126 432 76 492 188 123 369 80</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 167 362</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\modbus\modbus_ao_params.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_dac.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 132</file>
+                    <file> 37</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 363</file>
+                    <file> 266</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 170 355 357 190 185 699 469 2 182 643 525 446 494 666 670 696 346 333 1 96 394 348 176 126 432 76 492 617 188 123 278</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\misc\soft_wdt.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_crc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 95</file>
+                    <file> 340</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 371</file>
+                    <file> 36</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 442 190 185 699 469 2 182 643 525 446 494 666 670 696 566 96</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\modbus\modbus_dio_params.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_emac.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 687</file>
+                    <file> 195</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 680</file>
+                    <file> 314</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 501 355 357 190 185 699 469 2 182 643 525 446 494 666 670 696 346 333 1 96 278 282 492 550 394 348 176 126 432 76 617 188 123</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\modbus\modbus_params.c</name>
+            <name>$PROJ_DIR$\..\..\libs\artery\drivers\src\at32f403a_407_bpr.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 493</file>
+                    <file> 488</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 226</file>
+                    <file> 519</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 278 355 357 190 185 699 469 2 182 643 525 446 494 666 670 696 346 333 1 96 501 636 170 492 250 9 282 550 617 706 697 394 348 176 126 432 76 188 123 311 401 369 80</file>
+                    <file> 223 591 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\settings\settings_ao.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\log\log_ai.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 203</file>
+                    <file> 646</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 412</file>
+                    <file> 645</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 394 348 96 176 190 185 699 469 2 182 643 525 446 494 666 126 432 76 492 355 357 670 696 346 333 617 188 123 227</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 70 491 498 84 674 211 301 28 225 594 639 47 44 80 261 587 546 123 581 167 362 294 318 631 182 180 173 183 31 489 277 61 98 414 503 58 615</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\fw\modules\log\ringfs_api.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\misc\hash.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 315</file>
+                    <file> 88</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 314</file>
+                    <file> 119</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 675 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 651 608 699 238 191 487 96 190 185 469 2 182 643 525 446 494 666 9 670 696 126 432 551 587 394 348 176 76 492 355 357 346 333 617 188 123 282 697 706 369 80 16</file>
+                    <file> 404 101 454 98 570 466 413 297 92 84 414 503 498 625 219 452 477 67 93 676 334 524</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>[ROOT_NODE]</name>
-            <outputs>
-                <tool>
-                    <name>ILINK</name>
-                    <file> 245 102</file>
-                </tool>
-            </outputs>
-        </file>
-        <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\ip4.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\misc\soft_wdt.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 408</file>
+                    <file> 367</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 500</file>
+                    <file> 459</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 429 704 377 4 602 112 228 211 128 627 249 698 153 120 632 247 125 557 241 405 65 19 5 27 570 635 17 189 561 150 516 420 369 80</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 613 491 498 84 674 211 301 28 225 594 639 47 44 80 521 362</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\freertos\list.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\misc\swap.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 514</file>
+                    <file> 474</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 380</file>
+                    <file> 568</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 238 404 364 237 180 707 699 191 190 185 509 469 2 182 643 525 446 157 494 666 696</file>
+                    <file> 554 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\api_msg.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\modbus\modbus_dio_params.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 649</file>
+                    <file> 74</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 489</file>
+                    <file> 64</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 648 602 704 112 228 211 128 4 113 107 190 469 2 182 643 525 446 157 494 666 670 696 432 126 653 27 627 377 249 698 153 120 632 370 646 7 81 219 429 247 125 557 241 635 17 561 19 5 570 133 592 369 80</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 633 182 180 491 498 84 674 211 301 28 225 594 639 47 44 80 173 183 201 362 427 435 631 534 581 167 294 261 587 318 31 489 277</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\autoip.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\settings\settings_ai.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 195</file>
+                    <file> 308</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 668</file>
+                    <file> 565</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 581 167 362 294 491 498 84 674 211 301 28 225 594 639 47 261 587 318 631 182 180 44 80 173 183 31 489 277 450</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\microrl\microrl.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\misc\uptime.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 660</file>
+                    <file> 208</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 373</file>
+                    <file> 34</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 369 404 364 237 180 707 699 80 266 238 191 615 60</file>
+                    <file> 424 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 193 12 362 98 84</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\freertos\portable\IAR\ARM_CM4F\portasm.s</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\modbus\update.c</name>
             <outputs>
                 <tool>
-                    <name>AARM</name>
-                    <file> 427</file>
+                    <name>ICCARM</name>
+                    <file> 502</file>
+                </tool>
+                <tool>
+                    <name>BICOMP</name>
+                    <file> 81</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
-                    <name>AARM</name>
-                    <file> 469</file>
+                    <name>ICCARM</name>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 99 189 491 498 84 674 211 301 28 225 594 639 47 44 80 123 98</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\freertos\portable\IAR\ARM_CM4F\port.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\modbus\modbus_ao_params.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 277</file>
+                    <file> 275</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 192</file>
+                    <file> 465</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 446 157 364 237 180 707 494 190 185 404 699 509 469 2 182 643 525 666 670 696</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 313 182 180 491 498 84 674 211 301 28 225 594 639 47 44 80 173 183 201 362 581 167 294 261 587 318 631 31 489 277 427</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\freertos\event_groups.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\monitor\monitoring.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 637</file>
+                    <file> 117</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 382</file>
+                    <file> 97</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 238 404 364 237 180 707 699 191 190 185 509 469 2 182 643 525 446 157 494 666 670 696 587 551</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 412 362</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\freertos\queue.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\settings\settings_ao.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 168</file>
+                    <file> 511</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 254</file>
+                    <file> 572</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 238 404 364 237 180 707 699 191 369 80 190 185 509 469 2 182 643 525 446 157 494 666 670 696 432</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 581 167 362 294 491 498 84 674 211 301 28 225 594 639 47 261 587 318 631 182 180 44 80 173 183 31 489 277 407</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\netdb.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\log\ringfs_api.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 488</file>
+                    <file> 462</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 92</file>
+                    <file> 461</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 366 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 22 704 602 112 228 211 128 639 4 653 698 153 120 632 249 370 646 377 113 107 190 469 2 182 643 525 446 157 494 666 670 696 432 126 133 369 80</file>
+                    <file> 58 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 61 98 84 414 503 615 362 491 498 674 211 301 28 225 594 639 47 193 44 80 261 587 546 123 581 167 294 318 631 182 180 173 183 31 489 277 435 70 76 469 343 219</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\usb\src\usbd_int.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\modbus\modbus_ai_params.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 671</file>
+                    <file> 63</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 664</file>
+                    <file> 218</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 204 275 49 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 149 608 699 175 311 229</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 17 182 180 491 498 84 674 211 301 28 225 594 639 47 44 80 173 183 201 362 581 167 294 261 587 318 631 31 489 277 427</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\netifapi.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\settings\settings_api.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 409</file>
+                    <file> 5</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 146</file>
+                    <file> 566</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 581 167 362 294 491 498 84 674 211 301 28 225 594 639 47 261 587 318 631 182 180 44 80 173 183 31 489 277 75 407 450 189 147 124 524 361 535 61 98 414 503 432 24 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\sockets.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\shift_reg\shift_reg.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 151</file>
+                    <file> 374</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 453</file>
+                    <file> 326</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 639 602 704 112 228 211 128 4 22 653 370 646 377 113 107 190 469 2 182 643 525 446 157 494 666 670 696 432 126 27 627 249 698 153 120 632 561 429 247 125 557 241 19 5 570 635 17 7 81 219 369 80</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 617 362 491 498 84 674 211 301 28 225 594 639 47 44 80 335 98</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\usb\src\usbd_core.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\spi_flash\spi_flash.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 137</file>
+                    <file> 114</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 425</file>
+                    <file> 57</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 275 49 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 149 608 699 175 445</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 615 362 491 498 84 674 211 301 28 225 594 639 47 455 44 80 189 469 343 98</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\etharp.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\misc\misc.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 186</file>
+                    <file> 567</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 263</file>
+                    <file> 433</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 166 377 4 112 704 228 211 627 602 128 249 698 153 120 632 247 125 198 11 702 196 635 429 557 241 17 516 105 369 80</file>
+                    <file> 335 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 491 498 84 674 211 301 28 225 594 639 47 44 80 324 362 182 180 173 183 267 98</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\freertos\portable\memmang\heap_4.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\terminal\terminal.cpp</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 143</file>
+                    <file> 547</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 628</file>
+                    <file> 623</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 238 404 364 237 180 707 699 191 190 185 509 469 2 182 643 525 446 157 494 666 670 696</file>
+                    <file> 575 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 20 680 469 84 343 532</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\freertos\FreeRTOS-openocd.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\terminal\terminal_sbs.cpp</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 30</file>
+                    <file> 576</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 634</file>
+                    <file> 595</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 190 185 404 364 237 180 707 699 509 469 2 182 643 525 446 157 494 666</file>
+                    <file> 428 575 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 20 680 491 498 84 674 211 301 28 225 594 639 47 44 80 261 587 189 98 414 503 469 343 362 219 31 535 61 193 581 167 294 318 631 182 180 173 183 489 277 361</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\api_lib.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\misc\at32_uid.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 700</file>
+                    <file> 419</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 158</file>
+                    <file> 397</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 370 646 377 4 602 704 112 228 211 128 113 107 190 469 2 182 643 525 446 157 494 666 670 696 432 126 653 153 120 632 698 249 429 627 247 125 557 241 570 635 17 648 27 7 81 219 189 561 19 5 150 369 80</file>
+                    <file> 124 625 570 466 413 297 92 98 84 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\err.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\modbus\modbus.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 155</file>
+                    <file> 14</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 207</file>
+                    <file> 113</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 4 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 704 113 107 190 469 2 182 643 525 446 157 494 666 670 696 432 126 653</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 189 201 99 491 498 84 674 211 301 28 225 594 639 47 44 80 123 182 180 173 183 121 199 362 427 521 12 31 535 61 98 414 503 581 167 294 261 587 318 631 489 277 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\netbuf.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\log\log_api.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 208</file>
+                    <file> 559</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 490</file>
+                    <file> 280</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 646 377 4 602 704 112 228 211 128 153 120 632 698 249 369 80</file>
+                    <file> 535 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 61 98 84 414 503 362 31 193 615 491 498 674 211 301 28 225 594 639 47 44 80 261 587 469 343 219</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\usb\src\usbd_sdr.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\log\log_dio.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 421</file>
+                    <file> 647</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 507</file>
+                    <file> 648</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 445 275 49 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652 149 608 699 175 311</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 76 491 498 84 674 211 301 28 225 594 639 47 44 80 261 587 546 123 581 167 362 294 318 631 182 180 173 183 31 489 277 61 98 414 503 58 615</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\freertos\croutine.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\modbus\modbus_params.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 431</file>
+                    <file> 618</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 419</file>
+                    <file> 405</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 190 185 404 364 237 180 707 699 509 469 2 182 643 525 446 157 494 666 670 696 657</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 427 182 180 491 498 84 674 211 301 28 225 594 639 47 44 80 173 183 201 362 633 17 313 631 424 193 435 534 31 76 261 587 546 123 70 581 167 294 318 489 277 189 554 469 343</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\freertos\tasks.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\terminal\terminal_usartbridge.cpp</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 549</file>
+                    <file> 360</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 14</file>
+                    <file> 268</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 238 404 364 237 180 707 699 191 369 80 190 185 509 469 2 182 643 525 446 157 494 666 670 696 587 365 608</file>
+                    <file> 447 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 575 20 680 428 491 498 84 674 211 301 28 225 594 639 47 44 80 261 587 469 343 98</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\artery\system\at32f403a_407_clock.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\log\log.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 117</file>
+                    <file> 358</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 586</file>
+                    <file> 102</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 600 55 436 509 404 364 237 180 707 273 164 94 157 390 372 6 545 447 239 599 217 89 172 378 392 581 508 407 103 674 28 212 82 63 397 129 74 641 578 134 630 652</file>
+                    <file> 31 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 362 193 61 98 84 414 503 615 491 498 674 211 301 28 225 594 639 47 44 80 261 587 546 123 581 167 294 318 631 182 180 173 183 489 277 435 70 76 58 469 343 219</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\api\tcpip.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\settings\settings_dio.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 218</file>
+                    <file> 68</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 216</file>
+                    <file> 406</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 7 81 4 219 113 107 190 469 2 182 643 525 446 157 494 666 670 696 432 126 653 627 602 704 112 228 211 128 377 249 698 153 120 632 511 429 247 125 557 241 166 198 11 105</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 581 167 362 294 491 498 84 674 211 301 28 225 594 639 47 261 587 318 631 182 180 44 80 173 183 31 489 277 75</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\icmp.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\testing\soft_test.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 244</file>
+                    <file> 627</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 361</file>
+                    <file> 45</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 19 377 4 602 704 112 228 211 128 627 249 698 153 120 632 5 65 429 247 125 557 241 369 80</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 48 491 498 84 674 211 301 28 225 594 639 47 44 80 435 362 631 324 98</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\dhcp.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\usb\usb_eth.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 645</file>
+                    <file> 610</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 391</file>
+                    <file> 473</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272 249 698 153 120 632 635 377 4 627 602 704 112 228 211 128 429 247 125 557 241 17 196 516 133 166 198 11 420 369 80</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 476 362 105 98 84 469 343 203 93 676 334 404 101 454 414 503 498 219 452 26 481 11 110 91 380 420 517 271 438 71 307 258 6 612 423 265 518 392 196 27 312 506 191 364 9 409 445 668 267 290 601 504 637 197 222 485 35 363 376 491 674 211 301 28 225 594 639 47 44 80 587 261 62 200 259 347 402 537 147</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\freertos\fr_timers.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\io\mux.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 403</file>
+                    <file> 263</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 505</file>
+                    <file> 283</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 238 404 364 237 180 707 699 191 190 185 509 469 2 182 643 525 446 157 494 666 670 696 432 587</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 324 362 491 498 84 674 211 301 28 225 594 639 47 44 80</file>
                 </tool>
             </inputs>
         </file>
         <file>
-            <name>$PROJ_DIR$\..\..\libs\thirdparty\LwIP\src\core\ipv4\igmp.c</name>
+            <name>$PROJ_DIR$\..\..\fw\modules\misc\usb_clock.c</name>
             <outputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 694</file>
+                    <file> 118</file>
                 </tool>
                 <tool>
                     <name>BICOMP</name>
-                    <file> 656</file>
+                    <file> 600</file>
                 </tool>
             </outputs>
             <inputs>
                 <tool>
                     <name>ICCARM</name>
-                    <file> 695 475 66 215 598 276 608 404 364 237 180 707 699 238 191 185 509 16 272</file>
+                    <file> 649 597 625 570 466 413 297 92 444 288 359 291 457 483 214 223 591 422 103 416 354 316 472 555 126 624 579 356 54 332 493 325 322 557 274 321 23 542 260 3 59 206</file>
                 </tool>
             </inputs>
         </file>

Някои файлове не бяха показани, защото твърде много файлове са промени