回复:【笔记】whd_chip_specific_init
11-30
·
其中name="escan",共6字节。
|
||
回复:【笔记】whd_chip_specific_init
11-30
·
扫描热点时CMD53发送的数据结构:
[12-byte sdpcm_header_t] (filled) 0x24015d2c [16-byte cdc_header_t] (filled) [6-byte name with \0] (filled) [72-byte scan_params] (filled) [4-byte] 随机数据 共12+16+6+72+4=110字节。 pbuf=0x24015d14 pbuf->tot_... |
||
回复:【笔记】whd_chip_specific_init
11-30
·
CMD53无论是发送还是接收,前四个字节都是frametag[2] {size, ~size}。
|
||
回复:【笔记】whd_chip_specific_init
11-30
·
CMD53接收回应时,分配的内存空间仍然是1084字节,CMD53只接收1076字节数据,保存到pbuf->payload[8:1083]。
pbuf->payload数据结构: [0-7] whd_buffer_header_t [8-11] INITIAL_READ hwtag {size, ~size} 表示收到的数据包大小 [12-1083] extra_space_required 剩余数据内容 |
||
回复:【笔记】whd_chip_specific_init
11-30
·
sdpcm_header.frametag({size, ~size})是在whd_send_to_bus函数里面填写的。
其中size=pbuf->len-sizeof(whd_buffer_header_t)=1084-8=1076,表示pbuf->payload里面CMD53要发送的部分的大小。CMD53不发送pbuf->payload前8个字节。 |
||
回复:【笔记】whd_chip_specific_init
11-30
·
最后pbuf->payload[1084~1087]这四字节内容是在malloc内存区以外,是随机数据。
|
||
回复:【笔记】whd_chip_specific_init
11-30
·
[44-55] 12字节clm固件头部信息(struct wl_dload_data)的数据结构:
struct wl_dload_data { uint16_t flag; // [44~45] uint16_t dload_type; // [46~47] uint32_t len; // [48~51] uint32_t crc; // [52~55] }; |
||
回复:【笔记】whd_chip_specific_init
11-30
·
前36字节([0-35)的数据结构:
typedef struct { bus_common_header_t common; // 20字节 [0~19] cdc_header_t cdc_header; // 16字节 [20~35] } control_header_t; // 36字节 typedef struct { whd_buffer_header_t buffer_header;... |
||
回复:【笔记】whd_chip_specific_init
11-30
·
下载CLM固件时,CMD53发送的数据是pbuf->payload[8~1087], 共1080字节数据,分两次发送。
第一次:CMD53 WRITE func2 addr=0 size=1024 BLOCK_MODE 第二次:CMD53 WRITE func2 addr=1024 size=56 MULTIBYTE_MODE pbuf->payload=malloc(1084) pbuf->len=1084 pbuf->payloa... |
||
回复:【笔记】whd_chip_specific_init
11-30
·
typedef struct
{ bus_common_header_t common; //=20 cdc_header_t cdc_header; //=4*4=16 } control_header_t; //=36 typedef struct { whd_buffer_header_t buffer_header; //=8 uint8_t bus_head... |
||