DFU固件格式
DFU传输的固件是bin格式,包括非加密固件bin和加密固件bin。
数据格式各字段说明如下:
- Code数据:固件本身数据,需要16字节对齐,N表示长度可变。
- Info数据:固件的描述信息。
- 加密信息:将非加密固件加密为加密固件所使用到的加密数据信息。
Info数据的格式(小端模式)如下:
Byte | Field | Description | ||
---|---|---|---|---|
0 - 1 |
pattern |
芯片数据标识,值为0x4744 |
||
2 - 3 |
version |
版本信息 |
||
4 - 7 |
bin_size |
Code数据的长度(Byte) |
boot info(24B) |
|
8 - 11 |
check_sum |
Code数据位的CRC校验和 |
||
12 - 15 |
load_addr |
Code数据存储的起始地址 |
||
16 - 19 |
run_addr |
Code数据的起始运行地址 |
||
20 - 23 |
xqspi_xip_cmd |
SPI访问模式 |
||
24 - 27 |
boot config |
位域 |
[0:3]:Clock Speed [4]:Code Copy Mode [5:7]:System Clock [8]:Check Image [9]:Boot Delay Time [10:31]:Reserved |
|
28 - 39 |
comments |
固件描述信息 |
||
40 - 47 |
reserved |
用于16字节对齐,值为0x00 |
DFU存储
固件信息存储在GR551x Flash的Img_Info区域,起始地址为0x01000040,长度为400个字节,最多可存储10个固件信息。