#ifndef COMMON_CONFIG_H #define COMMON_CONFIG_H #include "at32f403a_407.h" #ifdef DEBUG #define DBG #else #undef DBG #define DBG if (0) #endif /** * @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.00.01" /** * @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 // Абсолютный адрес основоного FW #define FW_BEGIN_ADDRESS 0x08021000 #define FLASH_PAGE_SIZE 0x00000800U // Номер первой страницы FW //#define FW_FIRST_PAGE ((FW_BEGIN_ADDRESS - 0x08000000)/2048) // #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; // Ревизия дочерней платы #endif /* #ifndef COMMON_CONFIG_H */ /********************************* (C) РОТЕК **********************************/