9 #ifndef __FLASH_UPDATE__ 10 #define __FLASH_UPDATE__ 21 #define FLASH_SPI_PORT QSPI0 23 #ifdef BOOTLOADER_DEBUG_BY_UART 24 enum BOOTLOADER_LOG_LEVEL
26 BOOTLOADER_LOG_ERROR = 0,
33 #define BOOTLOADER_DEBUG_LEVEL BOOTLOADER_LOG_INFO 36 #define bootloader_loginfo(fmt, args...) do { if (BOOTLOADER_DEBUG_LEVEL>=BOOTLOADER_LOG_INFO) mprintf(fmt, ## args); } while(0) 37 #define bootloader_logdebug(fmt, args...) do { if (BOOTLOADER_DEBUG_LEVEL>=BOOTLOADER_LOG_DEBUG) mprintf(fmt, ## args); } while(0) 38 #define bootloader_logwar(fmt, args...) do { if (BOOTLOADER_DEBUG_LEVEL>=BOOTLOADER_LOG_WARN) mprintf("\x1b[35m"fmt"\x1b[0m", ## args); } while(0) 39 #define bootloader_logerr(fmt, args...) do { if (BOOTLOADER_DEBUG_LEVEL>=BOOTLOADER_LOG_ERROR) mprintf("\x1b[31m"fmt"\x1b[0m", ## args); } while(0) 41 #define bootloader_assert(x) if( ( x ) == 0 ) { while(1); } 43 #define bootloader_loginfo(fmt, args...) do{}while(0) 44 #define bootloader_logdebug(fmt, args...) do{}while(0) 45 #define bootloader_logwar(fmt, args...) do{}while(0) 46 #define bootloader_logerr(fmt, args...) do{}while(0) 47 #define bootloader_assert(x) do{}while(0) 52 #define BOOT_LOADER_NEW_STR "V20102" 53 #define BOOT_LOADER_NEW_MAJOR 0x02 54 #define BOOT_LOADER_NEW_MINOR 0x01 55 #define BOOT_LOADER_NEW_RELEASE 0x02 58 #define USER_CODE_AREA_STA_UPDATE 0xFC 59 #define USER_CODE_AREA_STA_OK 0xF0 60 #define USER_CODE_AREA_STA_OLD 0xC0 68 #define MSG_TYPE_CMD 0xA0 69 #define MSG_TYPE_REQ 0xA1 70 #define MSG_TYPE_ACK 0xA2 71 #define MSG_TYPE_NOTIFY 0xA3 73 #define MSG_CMD_UPDATE_REQ 0x03 74 #define MSG_CMD_GET_INFO 0x04 75 #define MSG_CMD_UPDATE_CHECK_READY 0x05 76 #define MSG_CMD_UPDATE_BLOCK_INFO 0x06 77 #define MSG_CMD_UPDATE_ERA 0x07 78 #define MSG_CMD_UPDATE_WRITE 0x08 79 #define MSG_CMD_UPDATE_BLOCK_WRITE_DONE 0x09 80 #define MSG_CMD_UPDATE_VERIFY 0x0A 81 #define MSG_CMD_TRY_FAST_BD 0x0b 82 #define MSG_CMD_TRY_FAST_BD_TEST 0x0c 83 #define MSG_CMD_UPDATE_READ 0x0d 84 #define MSG_CMD_UPDATE_COMPLETE 0x0e 85 #define MSG_CMD_UPDATE_EXTERNAL_DEV 0x10 86 #define MSG_CMD_UPDATE_PROGRESS 0x11 88 #define MSG_CMD_TESTCMD 0xA0 //测试命令 89 #define MSG_CMD_SYS_RST 0xA1 //复位命令 92 #define MSG_LEN_UPDATE_REQ 0x00 //0x01 93 #define MSG_LEN_GET_INFO 0x08 94 #define MSG_LEN_UPDATE_CHECK_READY 0x00 95 #define MSG_LEN_UPDATE_BLOCK_INFO 0x00 96 #define MSG_LEN_UPDATE_ERA 0x00 97 #define MSG_LEN_UPDATE_WRITE 0x08 98 #define MSG_LEN_UPDATE_BLOCK_WRITE_DONE 0x00 99 #define MSG_LEN_UPDATE_VERIFY 0x01 100 #define MSG_LEN_TRY_FAST_BD 0x04 101 #define MSG_LEN_TRY_FAST_BD_TEST 0x00 //Input size 102 #define MSG_LEN_UPDATE_READ 0x00 //Input size +4 103 #define MSG_LEN_UPDATE_COMPLETE 0x01 105 #define FILECONFIG_SPIFLASH_START_ADDR (0x8000) 106 #define FILECONFIG_SPIFLASH_SIZE (4096) 108 #define USERCODE_MAX_SIZE (1024*448) 109 #define USERCODE_PER_SIZE (4096) 111 #define CMPT_STATUS_FAIL (0xFF) 112 #define CMPT_STATUS_OK (0x00) 114 #define UNIQUE_ID_LENGTH 16 134 uint32_t ProductID[2];
198 uint16_t
crc_func(uint16_t crc,uint8_t * buf,uint32_t len);
uint32_t HWVersion
Definition: flash_update.h:137
uint32_t VoicePlayingStartAddr
Definition: flash_update.h:169
uint32_t UserCode2Version
Definition: flash_update.h:150
uint32_t VoicePlayingVersion
Definition: flash_update.h:168
uint8_t cmd
Definition: flash_update.h:122
void send_ack_system_reset(void)
Definition: flash_update.c:569
void send_ack_update_block_info_packet(void)
Definition: flash_update.c:605
void receive_func(uint8_t receive_char)
Definition: flash_update.c:219
uint32_t VoicePlayingSize
Definition: flash_update.h:170
uint32_t VoicePlayingCRC
Definition: flash_update.h:171
uint32_t SWVersion
Definition: flash_update.h:139
void send_req_update_req_packet(void)
Definition: flash_update.c:540
uint16_t crc
Definition: flash_update.h:125
uint32_t UserCode1CRC
Definition: flash_update.h:147
uint32_t UserFileSize
Definition: flash_update.h:176
uint16_t msg_head
Definition: flash_update.h:119
uint32_t ConsumerDataSize
Definition: flash_update.h:181
void send_ack_update_era_packet(void)
Definition: flash_update.c:611
uint32_t ASRCMDModelVersion
Definition: flash_update.h:156
uint32_t UserFileStartAddr
Definition: flash_update.h:175
void set_update_complete_status(void)
Definition: flash_update.c:674
void send_ack_update_check_ready_packet(void)
Definition: flash_update.c:599
uint8_t UserCode2CompltStatus
Definition: flash_update.h:154
Definition: flash_update.h:117
void send_req_update_block_write_done_packet(void)
Definition: flash_update.c:563
void Resolution_func()
Definition: flash_update.c:340
uint8_t UserCode1CompltStatus
Definition: flash_update.h:148
uint8_t number
Definition: flash_update.h:123
void send_func(void)
Definition: flash_update.c:190
void send_notify_progress_packet(int index, int current, int total)
Definition: flash_update.c:655
uint32_t UserCode2CRC
Definition: flash_update.h:153
void send_ack_update_complet_packet(void)
Definition: flash_update.c:649
uint32_t BootLoaderVersion
Definition: flash_update.h:141
void send_ack_update_verify_packet(uint8_t verify)
Definition: flash_update.c:617
uint32_t UserCode1StartAddr
Definition: flash_update.h:145
uint16_t length
Definition: flash_update.h:120
uint32_t ASRCMDModelSize
Definition: flash_update.h:158
uint16_t crc_func(uint16_t crc, uint8_t *buf, uint32_t len)
Definition: flash_update.c:518
int32_t get_update_state(void)
Definition: flash_update.c:662
uint32_t UserCode2Size
Definition: flash_update.h:152
uint32_t UserCode2StartAddr
Definition: flash_update.h:151
void send_req_update_write_packet(uint32_t offset, uint32_t size)
Definition: flash_update.c:546
int32_t check_req_recv(void)
uint32_t offset
Definition: flash_update.c:82
uint32_t ManufacturerID
Definition: flash_update.h:133
uint8_t type
Definition: flash_update.h:121
uint32_t DNNModelCRC
Definition: flash_update.h:165
int32_t have_a_new_message(void)
Definition: flash_update.c:720
int32_t flash_update_buf_init(void)
Definition: flash_update.c:133
void send_ack_update_extern_dev_packet(void)
uint32_t DNNModelStartAddr
Definition: flash_update.h:163
void send_ack_try_fast_bd_packet(void)
Definition: flash_update.c:624
void send_ack_try_fast_bd_test_packet(uint32_t size)
Definition: flash_update.c:630
uint8_t DNNModelCompltStatus
Definition: flash_update.h:166
uint8_t * data
Definition: flash_update.h:124
uint32_t DNNModelSize
Definition: flash_update.h:164
int32_t check_req_ack(void)
uint32_t UserCode1Version
Definition: flash_update.h:144
uint8_t ASRCMDModelCompltStatus
Definition: flash_update.h:160
void send_ack_get_info_packet(void)
Definition: flash_update.c:578
uint32_t ConsumerDataStartAddr
Definition: flash_update.h:180
uint32_t UserFileCRC
Definition: flash_update.h:177
Definition: flash_update.h:131
uint32_t ASRCMDModelStartAddr
Definition: flash_update.h:157
uint8_t UserFileCompltStatus
Definition: flash_update.h:178
uint32_t DNNModelVersion
Definition: flash_update.h:162
void send_ack_update_read_packet(uint32_t StartAddr, uint32_t Size)
Definition: flash_update.c:641
uint16_t PartitionTableChecksum
Definition: flash_update.h:183
uint32_t UserFileVersion
Definition: flash_update.h:174
uint8_t msg_tail
Definition: flash_update.h:126
uint8_t VoicePlayingCompltStatus
Definition: flash_update.h:172
uint32_t ASRCMDModelCRC
Definition: flash_update.h:159
uint32_t UserCode1Size
Definition: flash_update.h:146
void send_req_update_write_packet_ex(uint32_t index, uint32_t offset, uint32_t size)
Definition: flash_update.c:554