leaps_fw_update_xfer


应在 leaps_fw_update_start 之后重复调用,以传输固件数据块,直至传输完所有固件. 如果数据块处理成功,则返回状态 “ok”,否则返回错误. 错误由 “ok ”以外的状态表示. 固件更新失败的原因有:

  • 内部错误

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

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

  • 校验和错误 - 接收到损坏的数据,或者在更新开始时由 leaps_fw_update_start 提供的校验和值与模块在更新结束时计算的校验和值不匹配

每次调用 leaps_fw_update_xfer 时,都会返回固件更新过程中已经被 dq 处理过的数据的大小和偏移量作为响应,直到更新结束.


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

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

输出
  • 状态码

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

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


示例

TLV 请求

类型

长度

价值

偏移

数据块

0x3F

0x24

0x00 0x00 0x00 0x00

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

类型 0x3F(63 位十进制)表示命令 leaps_fw_update_xfer

TLV 响应

类型

长度

价值

类型

长度

价值

偏移

大小

0x40

0x01

0x04

0x7E

0x08

0x00 0x00 0x00 0x00

0x00 0x10 0x00 0x00

类型 0x40 表示状态代码

类型 0x7E(126 dec)表示固件数据请求