#ifndef _UPDATE_H_ #define _UPDATE_H_ #include "typedef.h" extern u32 UPDATA_BEG; #define UPDATA_FLAG_ADDR ((void *)((u32)&UPDATA_BEG + 0x08)) #define BOOT_STATUS_ADDR ((void *)((u32)&UPDATA_BEG)) //预留8个bytes #define UPDATA_MAGIC (0x5A00) //防止CRC == 0 的情况 typedef enum { UPDATA_NON = UPDATA_MAGIC, UPDATA_READY, UPDATA_SUCC, UPDATA_PARM_ERR, UPDATA_DEV_ERR, UPDATA_KEY_ERR, } UPDATA_RESULT; typedef enum { USB_UPDATA = UPDATA_MAGIC, //0x5A00 SD0_UPDATA, //0x5A01 SD1_UPDATA, PC_UPDATA, UART_UPDATA, BT_UPDATA, BLE_APP_UPDATA, SPP_APP_UPDATA, DUAL_BANK_UPDATA, BLE_TEST_UPDATA, NORFLASH_UPDATA, //NOTE:以上的定义不要调整,新升级方式在此下面定义; USER_NORFLASH_UFW_UPDATA, NON_DEV = 0xFFFF, } UPDATA_TYPE; // sd enum { SD_CONTROLLER_0 = 1, SD_CONTROLLER_1, }; enum { SD0_IO_A = 1, SD0_IO_B, SD1_IO_A, SD1_IO_B, SD0_IO_C, SD0_IO_D, SD0_IO_E, SD0_IO_F, }; typedef struct _UPDATA_SD { u8 control_type; u8 control_io; u8 online_check_way; u8 max_data_baud; u16 wDevTimeOutMax; u8 per_online_status; u8 hc_mode; u8(*io_det_func)(void); u8 power; } UPDATA_SD; // uart typedef struct _UPDATA_UART { u32 control_io_tx; //