| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- #ifndef MAIN_H
- #define MAIN_H
- #include "stdint.h"
- #include "cfg.h"
- //mod bus base addr
- #define MD_BASE_Addr (1500)
- //read
- #define MD_STATUS_Addr (1)
- //read not used
- #define MB_Boot_Loader_Version_Addr (1)
- #define MB_Boot_APP1_Version (2)
- #define MB_Boot_APP2_Version (3)
- #define MB_default_Start_Area (4) //defalut start and defalut app1
- #define MB_Last_Running_Area (5)
- #define MB_Last_Running_Error (6) //running error number
- #define MB_Upload_Status (7)
- #define MB_APP1_CRC (8)
- #define MB_APP2_CRC (9)
- //write
- #define MD_WRITE_Addr (50)
- #define MD_WRITE_Reset (51)
- //modbus register addr
- #define MD_READ_STATUS (MD_BASE_Addr + MD_STATUS_Addr)
- #define MD_WRIE_DATA (MD_BASE_Addr + MD_WRITE_Addr)
- //chache lenth
- #define MAX_LENTH (128)
- #define Mb_Wcmd_Width (8)
- //
- #define NOERROR (0)
- #define MAX_ERROR_COUNT (10)
- #define ERROR_VERSION (0XFFFFFFFF)
- #define UPGRADE_STATUS_IDE (1)
- #define UPGRADE_STATUS_ERASE_PROGRAME (2)
- #define UPGRADE_STATUS_WRITE_PROGRAME (3)
- #define UPGRADE_STATUS_ERASE_META (4)
- #define UPGRADE_STATUS_WTITE_META (5)
- #define UPGRADE_STATUS_FINISH (6)
- typedef int (*user_code)(void);
- enum{
- ONE = 0x00000001,
- SECOND
- };
- enum {
- FAILD = 0,
- SUCEESS,
- };
- typedef struct {
- int16_t index;
- uint16_t lenth;
- uint8_t recive[MAX_LENTH];
- }Flash_Data;
- typedef struct
- {
- uint8_t flag;
- uint16_t base_addr;
- Flash_Data flash_Data;
- }MD_DATA;
- typedef struct g_MD_Data{
- uint8_t count;
- MD_DATA data[Mb_Wcmd_Width];
- }g_MD_Data;
- typedef struct {
- char magic[14];
- uint16_t size;
- uint32_t patition;
- uint32_t version;
- }md_msg;
- typedef struct {
- char magic[14];
- uint16_t size;
- uint32_t patition;
- uint32_t version;
- uint32_t md5[8];
- }get_md_msg;
- typedef struct {
- uint16_t md_status; //current upgrade status
- uint8_t get_head_sucess_flag;
- uint8_t meta_erase_flag;
- uint8_t meta_write_sucesse_flag;
- uint8_t app_erase_flag;
- uint8_t app_write_sucessful_flag;
- uint8_t led_flash_flag;
-
- uint32_t start_app_addr;
- uint32_t erase_size;
-
- g_MD_Data md_data; //cache
- md_msg md_msg_head;
- META_DATA_S meta;
- }Upgrade;
- g_MD_Data* get_md_data();
- //md_msg* get_md_msg(Upgrade *upgrade);
- Upgrade *get_upgrade();
- uint8_t operation_ide(Upgrade *upgrade);
- uint8_t operation_erase_programe(Upgrade *upgrade);
- uint8_t operation_erase_meta(Upgrade *upgrade);
- void operation_pro_or_msg(Upgrade *upgrade,Flash_Data *data);
- uint8_t operation_write_meta(Upgrade *upgrade);
- void del_modbus_uart(void);
- void del_md_timer(void);
- #endif /* MAIN_H */
|