CI130X SDK API手册  2.2.0
本手册用于描述CI130X SDK各个组件和驱动API
结构体 | 宏定义 | 类型定义 | 函数
flash_update.h 文件参考
#include "stdint.h"
#include "ci130x_spiflash.h"

浏览源代码.

结构体

struct  Data_t
 
struct  FileConfig_Struct
 

宏定义

#define FLASH_SPI_PORT   QSPI0
 
#define bootloader_loginfo(fmt, args...)   do{}while(0)
 
#define bootloader_logdebug(fmt, args...)   do{}while(0)
 
#define bootloader_logwar(fmt, args...)   do{}while(0)
 
#define bootloader_logerr(fmt, args...)   do{}while(0)
 
#define bootloader_assert(x)   do{}while(0)
 
#define BOOT_LOADER_NEW_STR   "V20102"
 
#define BOOT_LOADER_NEW_MAJOR   0x02
 
#define BOOT_LOADER_NEW_MINOR   0x01
 
#define BOOT_LOADER_NEW_RELEASE   0x02
 
#define USER_CODE_AREA_STA_UPDATE   0xFC
 
#define USER_CODE_AREA_STA_OK   0xF0
 
#define USER_CODE_AREA_STA_OLD   0xC0
 
#define MSG_TYPE_CMD   0xA0
 
#define MSG_TYPE_REQ   0xA1
 
#define MSG_TYPE_ACK   0xA2
 
#define MSG_TYPE_NOTIFY   0xA3
 
#define MSG_CMD_UPDATE_REQ   0x03
 
#define MSG_CMD_GET_INFO   0x04
 
#define MSG_CMD_UPDATE_CHECK_READY   0x05
 
#define MSG_CMD_UPDATE_BLOCK_INFO   0x06
 
#define MSG_CMD_UPDATE_ERA   0x07
 
#define MSG_CMD_UPDATE_WRITE   0x08
 
#define MSG_CMD_UPDATE_BLOCK_WRITE_DONE   0x09
 
#define MSG_CMD_UPDATE_VERIFY   0x0A
 
#define MSG_CMD_TRY_FAST_BD   0x0b
 
#define MSG_CMD_TRY_FAST_BD_TEST   0x0c
 
#define MSG_CMD_UPDATE_READ   0x0d
 
#define MSG_CMD_UPDATE_COMPLETE   0x0e
 
#define MSG_CMD_UPDATE_EXTERNAL_DEV   0x10
 
#define MSG_CMD_UPDATE_PROGRESS   0x11
 
#define MSG_CMD_TESTCMD   0xA0
 
#define MSG_CMD_SYS_RST   0xA1
 
#define MSG_LEN_UPDATE_REQ   0x00
 
#define MSG_LEN_GET_INFO   0x08
 
#define MSG_LEN_UPDATE_CHECK_READY   0x00
 
#define MSG_LEN_UPDATE_BLOCK_INFO   0x00
 
#define MSG_LEN_UPDATE_ERA   0x00
 
#define MSG_LEN_UPDATE_WRITE   0x08
 
#define MSG_LEN_UPDATE_BLOCK_WRITE_DONE   0x00
 
#define MSG_LEN_UPDATE_VERIFY   0x01
 
#define MSG_LEN_TRY_FAST_BD   0x04
 
#define MSG_LEN_TRY_FAST_BD_TEST   0x00
 
#define MSG_LEN_UPDATE_READ   0x00
 
#define MSG_LEN_UPDATE_COMPLETE   0x01
 
#define FILECONFIG_SPIFLASH_START_ADDR   (0x8000)
 
#define FILECONFIG_SPIFLASH_SIZE   (4096)
 
#define USERCODE_MAX_SIZE   (1024*448)
 
#define USERCODE_PER_SIZE   (4096)
 
#define CMPT_STATUS_FAIL   (0xFF)
 
#define CMPT_STATUS_OK   (0x00)
 
#define UNIQUE_ID_LENGTH   16
 

类型定义

typedef struct Data_tData_p
 

函数

void send_func (void)
 
void receive_func (uint8_t receive_char)
 
void Resolution_func ()
 
uint16_t crc_func (uint16_t crc, uint8_t *buf, uint32_t len)
 
int32_t flash_update_buf_init (void)
 
void send_req_update_req_packet (void)
 
void send_req_update_write_packet (uint32_t offset, uint32_t size)
 
void send_req_update_write_packet_ex (uint32_t index, uint32_t offset, uint32_t size)
 
void send_req_update_block_write_done_packet (void)
 
void send_ack_get_info_packet (void)
 
void send_ack_update_check_ready_packet (void)
 
void send_ack_update_block_info_packet (void)
 
void send_ack_update_era_packet (void)
 
void send_ack_update_verify_packet (uint8_t verify)
 
void send_ack_try_fast_bd_packet (void)
 
void send_ack_try_fast_bd_test_packet (uint32_t size)
 
void send_ack_update_read_packet (uint32_t StartAddr, uint32_t Size)
 
void send_ack_update_complet_packet (void)
 
void send_ack_update_extern_dev_packet (void)
 
void send_ack_system_reset (void)
 
void send_notify_progress_packet (int index, int current, int total)
 
int32_t get_update_state (void)
 
void set_update_complete_status (void)
 
int32_t check_req_ack (void)
 
int32_t have_a_new_message (void)
 
int32_t check_req_recv (void)
 

详细描述

版本
V1.0.0
日期
2017.12

结构体说明

◆ Data_t

struct Data_t
成员变量
uint8_t cmd
uint16_t crc
uint8_t * data
uint16_t length
uint16_t msg_head
uint8_t msg_tail
uint8_t number
uint8_t type

◆ FileConfig_Struct

struct FileConfig_Struct
成员变量
uint8_t ASRCMDModelCompltStatus
uint32_t ASRCMDModelCRC
uint32_t ASRCMDModelSize
uint32_t ASRCMDModelStartAddr
uint32_t ASRCMDModelVersion
uint32_t BootLoaderVersion
uint32_t ConsumerDataSize
uint32_t ConsumerDataStartAddr
uint8_t DNNModelCompltStatus
uint32_t DNNModelCRC
uint32_t DNNModelSize
uint32_t DNNModelStartAddr
uint32_t DNNModelVersion
uint32_t HWName[16]
uint32_t HWVersion
uint32_t ManufacturerID
uint16_t PartitionTableChecksum
uint32_t ProductID[2]
uint8_t Reserve[14]
uint32_t SWName[16]
uint32_t SWVersion
uint8_t UserCode1CompltStatus
uint32_t UserCode1CRC
uint32_t UserCode1Size
uint32_t UserCode1StartAddr
uint32_t UserCode1Version
uint8_t UserCode2CompltStatus
uint32_t UserCode2CRC
uint32_t UserCode2Size
uint32_t UserCode2StartAddr
uint32_t UserCode2Version
uint8_t UserFileCompltStatus
uint32_t UserFileCRC
uint32_t UserFileSize
uint32_t UserFileStartAddr
uint32_t UserFileVersion
uint8_t VoicePlayingCompltStatus
uint32_t VoicePlayingCRC
uint32_t VoicePlayingSize
uint32_t VoicePlayingStartAddr
uint32_t VoicePlayingVersion

宏定义说明

◆ BOOT_LOADER_NEW_MAJOR

#define BOOT_LOADER_NEW_MAJOR   0x02

◆ BOOT_LOADER_NEW_MINOR

#define BOOT_LOADER_NEW_MINOR   0x01

◆ BOOT_LOADER_NEW_RELEASE

#define BOOT_LOADER_NEW_RELEASE   0x02

◆ BOOT_LOADER_NEW_STR

#define BOOT_LOADER_NEW_STR   "V20102"

◆ bootloader_assert

#define bootloader_assert (   x)    do{}while(0)

◆ bootloader_logdebug

#define bootloader_logdebug (   fmt,
  args... 
)    do{}while(0)

◆ bootloader_logerr

#define bootloader_logerr (   fmt,
  args... 
)    do{}while(0)

◆ bootloader_loginfo

#define bootloader_loginfo (   fmt,
  args... 
)    do{}while(0)

◆ bootloader_logwar

#define bootloader_logwar (   fmt,
  args... 
)    do{}while(0)

◆ CMPT_STATUS_FAIL

#define CMPT_STATUS_FAIL   (0xFF)

◆ CMPT_STATUS_OK

#define CMPT_STATUS_OK   (0x00)

◆ FILECONFIG_SPIFLASH_SIZE

#define FILECONFIG_SPIFLASH_SIZE   (4096)

◆ FILECONFIG_SPIFLASH_START_ADDR

#define FILECONFIG_SPIFLASH_START_ADDR   (0x8000)

◆ FLASH_SPI_PORT

#define FLASH_SPI_PORT   QSPI0

◆ MSG_CMD_GET_INFO

#define MSG_CMD_GET_INFO   0x04

◆ MSG_CMD_SYS_RST

#define MSG_CMD_SYS_RST   0xA1

◆ MSG_CMD_TESTCMD

#define MSG_CMD_TESTCMD   0xA0

◆ MSG_CMD_TRY_FAST_BD

#define MSG_CMD_TRY_FAST_BD   0x0b

◆ MSG_CMD_TRY_FAST_BD_TEST

#define MSG_CMD_TRY_FAST_BD_TEST   0x0c

◆ MSG_CMD_UPDATE_BLOCK_INFO

#define MSG_CMD_UPDATE_BLOCK_INFO   0x06

◆ MSG_CMD_UPDATE_BLOCK_WRITE_DONE

#define MSG_CMD_UPDATE_BLOCK_WRITE_DONE   0x09

◆ MSG_CMD_UPDATE_CHECK_READY

#define MSG_CMD_UPDATE_CHECK_READY   0x05

◆ MSG_CMD_UPDATE_COMPLETE

#define MSG_CMD_UPDATE_COMPLETE   0x0e

◆ MSG_CMD_UPDATE_ERA

#define MSG_CMD_UPDATE_ERA   0x07

◆ MSG_CMD_UPDATE_EXTERNAL_DEV

#define MSG_CMD_UPDATE_EXTERNAL_DEV   0x10

◆ MSG_CMD_UPDATE_PROGRESS

#define MSG_CMD_UPDATE_PROGRESS   0x11

◆ MSG_CMD_UPDATE_READ

#define MSG_CMD_UPDATE_READ   0x0d

◆ MSG_CMD_UPDATE_REQ

#define MSG_CMD_UPDATE_REQ   0x03

◆ MSG_CMD_UPDATE_VERIFY

#define MSG_CMD_UPDATE_VERIFY   0x0A

◆ MSG_CMD_UPDATE_WRITE

#define MSG_CMD_UPDATE_WRITE   0x08

◆ MSG_LEN_GET_INFO

#define MSG_LEN_GET_INFO   0x08

◆ MSG_LEN_TRY_FAST_BD

#define MSG_LEN_TRY_FAST_BD   0x04

◆ MSG_LEN_TRY_FAST_BD_TEST

#define MSG_LEN_TRY_FAST_BD_TEST   0x00

◆ MSG_LEN_UPDATE_BLOCK_INFO

#define MSG_LEN_UPDATE_BLOCK_INFO   0x00

◆ MSG_LEN_UPDATE_BLOCK_WRITE_DONE

#define MSG_LEN_UPDATE_BLOCK_WRITE_DONE   0x00

◆ MSG_LEN_UPDATE_CHECK_READY

#define MSG_LEN_UPDATE_CHECK_READY   0x00

◆ MSG_LEN_UPDATE_COMPLETE

#define MSG_LEN_UPDATE_COMPLETE   0x01

◆ MSG_LEN_UPDATE_ERA

#define MSG_LEN_UPDATE_ERA   0x00

◆ MSG_LEN_UPDATE_READ

#define MSG_LEN_UPDATE_READ   0x00

◆ MSG_LEN_UPDATE_REQ

#define MSG_LEN_UPDATE_REQ   0x00

◆ MSG_LEN_UPDATE_VERIFY

#define MSG_LEN_UPDATE_VERIFY   0x01

◆ MSG_LEN_UPDATE_WRITE

#define MSG_LEN_UPDATE_WRITE   0x08

◆ MSG_TYPE_ACK

#define MSG_TYPE_ACK   0xA2

◆ MSG_TYPE_CMD

#define MSG_TYPE_CMD   0xA0

◆ MSG_TYPE_NOTIFY

#define MSG_TYPE_NOTIFY   0xA3

◆ MSG_TYPE_REQ

#define MSG_TYPE_REQ   0xA1

◆ UNIQUE_ID_LENGTH

#define UNIQUE_ID_LENGTH   16

◆ USER_CODE_AREA_STA_OK

#define USER_CODE_AREA_STA_OK   0xF0

◆ USER_CODE_AREA_STA_OLD

#define USER_CODE_AREA_STA_OLD   0xC0

◆ USER_CODE_AREA_STA_UPDATE

#define USER_CODE_AREA_STA_UPDATE   0xFC

◆ USERCODE_MAX_SIZE

#define USERCODE_MAX_SIZE   (1024*448)

◆ USERCODE_PER_SIZE

#define USERCODE_PER_SIZE   (4096)

类型定义说明

◆ Data_p

typedef struct Data_t* Data_p

函数说明

◆ check_req_ack()

int32_t check_req_ack ( void  )

◆ check_req_recv()

int32_t check_req_recv ( void  )

◆ crc_func()

uint16_t crc_func ( uint16_t  crc,
uint8_t *  buf,
uint32_t  len 
)

◆ flash_update_buf_init()

int32_t flash_update_buf_init ( void  )

◆ get_update_state()

int32_t get_update_state ( void  )

◆ have_a_new_message()

int32_t have_a_new_message ( void  )

◆ receive_func()

void receive_func ( uint8_t  receive_char)

◆ Resolution_func()

void Resolution_func ( )

◆ send_ack_get_info_packet()

void send_ack_get_info_packet ( void  )

◆ send_ack_system_reset()

void send_ack_system_reset ( void  )

◆ send_ack_try_fast_bd_packet()

void send_ack_try_fast_bd_packet ( void  )

◆ send_ack_try_fast_bd_test_packet()

void send_ack_try_fast_bd_test_packet ( uint32_t  size)

◆ send_ack_update_block_info_packet()

void send_ack_update_block_info_packet ( void  )

◆ send_ack_update_check_ready_packet()

void send_ack_update_check_ready_packet ( void  )

◆ send_ack_update_complet_packet()

void send_ack_update_complet_packet ( void  )

◆ send_ack_update_era_packet()

void send_ack_update_era_packet ( void  )

◆ send_ack_update_extern_dev_packet()

void send_ack_update_extern_dev_packet ( void  )

◆ send_ack_update_read_packet()

void send_ack_update_read_packet ( uint32_t  StartAddr,
uint32_t  Size 
)

◆ send_ack_update_verify_packet()

void send_ack_update_verify_packet ( uint8_t  verify)

◆ send_func()

void send_func ( void  )

◆ send_notify_progress_packet()

void send_notify_progress_packet ( int  index,
int  current,
int  total 
)

◆ send_req_update_block_write_done_packet()

void send_req_update_block_write_done_packet ( void  )

◆ send_req_update_req_packet()

void send_req_update_req_packet ( void  )

◆ send_req_update_write_packet()

void send_req_update_write_packet ( uint32_t  offset,
uint32_t  size 
)

◆ send_req_update_write_packet_ex()

void send_req_update_write_packet_ex ( uint32_t  index,
uint32_t  offset,
uint32_t  size 
)

◆ set_update_complete_status()

void set_update_complete_status ( void  )