dwm_fw_update_xfer

该调用仅适用于以太网网关. 应在传输固件数据块的 dwm_fw_update_start 之后反复调用该调用,直至传输完所有固件数据块. 返回状态 “ok”,随后返回数据请求帧,直到传输完固件更新所需的所有数据,在这种情况下返回状态 “ok”,随后不返回数据请求,或者直到更新以错误结束. 错误由 “ok ”以外的状态表示. 固件更新失败的原因如下:

  • 内部错误

  • 无效参数 - 例如长度为零的数据块

  • 不允许 - 尚未启动,或整个更新过程失败

  • 校验和错误 - 接收的图像已损坏.

每次调用 dwm_fw_update_xfer 时,都会返回固件更新过程已经写入闪存的数据大小和偏移量,直到更新完成.

输入
  • offset: 32-bit integer (* Offset of the total firmware data.*)

  • data:从 4 到 32 字节 (固件数据块.)

输出
  • 状态码

  • offset: 32 位整数 (leaps_fw_update_xfer 下一步需要写入的数据的偏移量)

  • size: 32位整数 (需要被 leaps_fw_update_xfer 写入的固件数据块大小)

SPI/UART 示例

TLV 请求

类型

长度

价值

偏移

数据块

0x3F

0x24

0x00 0x00 0x00 0x00

0xA5 0xA5 0xA5 0xA5 0xA5 0xA5 0xA5 0xA5 …. 0xA5 0xA5 0xA5 0xA5

类型 0x3F (63 dec)表示命令 dwm_fw_update_xfer

TLV 响应

类型长度

价值

类型

长度

价值

0x40 0x01

0x00

0x7E

0x08

偏移

大小

0x00 0x00 0x00 0x00

0x00 0x10 0x00 0x00

类型 0x40 表示状态代码
类型 0x7E (126 dec)表示数据请求