#define __I2C_IAP__H #define __I2C_IAP__H enum { IAP_CMD_NOP = 0x00, IAP_CMD_EXIT = 0x01, IAP_CMD_MASTER_ERASE = 0x02, IAP_CMD_PASSWORD = 0x03, IAP_CMD_GET_STATUS = 0x04, IAP_CMD_GET_SUPPORT = 0x05, IAP_CMD_GET_CODE_SIZE = 0x06, IAP_CMD_GET_DATA_SIZE = 0x07, IAP_CMD_GET_LOADER_VER = 0x08, IAP_CMD_GET_ROM_VER = 0x09, IAP_CMD_ID_BANNER = 0x0d, IAP_CMD_LOAD_CODE = 0x10, IAP_CMD_LOAD_DATA = 0x11, IAP_CMD_DUMP_CODE = 0x20, IAP_CMD_DUMP_DATA = 0x21, IAP_CMD_CRC_CODE = 0x30, IAP_CMD_CRC_DATA = 0x31, IAP_CMD_VERIFY_CODE = 0x40, IAP_CMD_VERIFY_DATA = 0x41, IAP_CMD_LOAD_VERIFY_CODE = 0x50, IAP_CMD_LOAD_VERIFY_DATA = 0x51, IAP_CMD_LOAD_VERIFY_CODE = 0x50, IAP_CMD_PAGE_ERASE = 0xe0, }; typedef struct { INT8U FileName[32]; //文件名 INT16U FileSize; //文件大小 INT16U FileCRC; //文件CRC值 INT16U FWVersion; //固件版本 INT16U Addr; //写入地址 INT16U PackNum; //接收包计数 INT16U PackSize; //包大小 INT16U PackCRC; //包CRC值 INT8U PackBuff[256]; //包数据缓存 } IAP_Str; #endif