#ifndef COMMON_CONFIG_H #define COMMON_CONFIG_H #include "at32f403a_407.h" #define METROLOG_M3 /** * @brief Маркер ревизии платы для валидации *.bin файла * */ #define HW_REV_LEN 16 #define HW_REV_OFFSET 0x1F0 #define HW_REV "MT_M03" /** * @brief Название модели устройства */ #define MODEL "Метролог M3" /** * @brief Производитель */ #define MANUFACTURER "АО \"НПК РоТеК\"" /** * @brief Версия прошивки */ #define VERSION "1.01t" /** * @brief MD5 CRC */ #define MD5_CRC "BF704428A06FE45359B2037ADBAA2C6E" /** * @brief Адрес сектора настроек */ #define SETTINGS_SECTOR 0x08020000 /** * @brief Адрес CRC настроек */ #define CRC_ADDRESS 0x080207FC /** * @brief Адрес сектора системных настроек */ #define SYS_SECTOR 0x08020800 /** * @brief Адрес CRC системных настроек */ #define SYS_CRC_ADDRESS 0x08020FFC /** * @brief Слово для контроля целостности структуры настроек */ #define SETTINGS_CONTROL_WORD 123456789 /** * @brief Число (-1) попыток загрузки основной прошивки */ #define BOOT_TRY 26 /** * @brief Таймаут возврата в основное ПО, сек. */ #define UPDATE_TIMEOUT 120 #define USER_FLASH_FIRST_PAGE_ADDRESS 0x08021000 #define USER_FLASH_END_ADDRESS 0x080C0FFF #define USER_FLASH_CRC_ADDRESS 0x080C0FFC #define FLASH_SECTOR_SIZE 0x800 #define IAP_FLASH_FIRST_PAGE_ADDRESS 0x08000000 // Only as example see comment #define IAP_FLASH_CRC_ADDRESS 0x0801FFFC #define SYSTEMTICK_PERIOD_MS 1 // #define MQTT_CLIENT // LwIP Software watchdog //#define SOFTWARE_LWIP_WATCHDOG // #define USB_RNDIS /** * @brief Название файла прошивки */ #define MAIN_FW_NAME "MT_M03.bin" /** * @brief Название файла прошивки (backup) */ #define BACKUP_MAIN_FW_NAME "BACKUP.bin" /** * @brief Вкл/выкл лог */ #define LOG_ENABLE /** * @brief Название файла лога */ #define LOG_NAME "LOG.txt" //#define FLASH_TYPE_AT25SF161 #define FLASH_TYPE_MX25L1606E // -------------------------------------------------------------------------- // typedef enum { MB_REV_0 = 0, MB_REV_1 = 1, MB_REV_2 = 2, MB_REV_3 = 3, MB_REV_4 = 4, MB_REV_5 = 5, MB_REV_6 = 6, MB_REV_7 = 7, } MBOARD_REV_t; typedef enum { DB_ABS = 0, DB_REV_1 = 1, DB_REV_2 = 2, DB_REV_3 = 3, DB_REV_4 = 4, DB_REV_5 = 5, DB_REV_6 = 6, DB_REV_7 = 7, DB_REV_8 = 8, DB_REV_9 = 9, DB_REV_10 = 10, } DBOARD_REV_t; typedef enum { ADC_PWR_MEAS = 0, ADC_DB_REV = 1, ADC_MB_REV = 2, } ADC_REV_CH_t; extern uint8_t mboard_rev; // Ревизия основной платы extern uint8_t dboard_rev; // Ревизия дочерней платы // -------------------------------------------------------------------------- // // Вывод DEBUG //#define SETTINGS_DEBUG // Настройки //#define CM_DEBUG // Connection manager //#define CM_PING_DEBUG //#define FS_DEBUG // SPI FLASH и файловая система //#define GSM_DEBUG // GSM //#define MQTT__DEBUG // MQTT //#define POWER_DEBUG // Power manager //#define BOOT_DEBUG // Bootloader #define USB_DEBUG // USB RNDIS #ifdef DEBUG #ifdef SETTINGS_DEBUG #define SDBG #else #define SDBG if (0) #endif #ifdef CM_DEBUG #define CMDBG #else #define CMDBG if (0) #endif #ifdef CM_PING_DEBUG #define CMPDBG #else #define CMPDBG if (0) #endif #ifdef FS_DEBUG #define FSDBG #else #define FSDBG if (0) #endif #ifdef GSM_DEBUG #define GDBG #else #define GDBG if (0) #endif #ifdef MQTT__DEBUG #define MQDBG #else #define MQDBG if (0) #endif #ifdef POWER_DEBUG #define PMDBG #else #define PMDBG if (0) #endif #ifdef BOOT_DEBUG #define BOOTDBG #else #define BOOTDBG if (0) #endif #ifdef USB_DEBUG #define UDBG #else #define UDBG if (0) #endif #else #define SDBG if (0) #define CMDBG if (0) #define FSDBG if (0) #define GDBG if (0) #define MQDBG if (0) #define CMPDBG if (0) #define PMDBG if (0) #define BOOTDBG if (0) #define UDBG if (0) #endif #endif /* #ifndef COMMON_CONFIG_H */ /********************************* (C) РОТЕК **********************************/