ST意法半导体
直播中

李明聪

7年用户 1143经验值
私信 关注
[问答]

为什么我们要选择Ymodem协议源代码中的第4个字节呢

我正在寻找使用 Ymodem 协议的源代码,
但我有一个问题,
第 65 行如下所示:
  • /* /-------- Packet in IAP memory ------------------------------------------
  • * | 0      |  1    |  2     |  3   |  4      | ... | n+4     | n+5  | n+6  |
  • * |------------------------------------------------------------------------|
  • * | unused | start | number | !num | data[0] | ... | data[n] | crc0 | crc1 |
  • * ------------------------------------------------------------------------/
  • * the first byte is left unused for memory alignment reasons
根据此信息 PACKET_DATA_INDEX 定义 4。但我不明白这一点,因为在 Ymodem 中包含第 3 个字节的数据,为什么我们选择第 4 个字节或 SOH 是帧的第 0 个索引,为什么我们将其作为 1



回帖(1)

喻唯

2022-12-13 14:44:05
对于 Cortex-M,内存对齐是 32 位,即 4 字节。因此,如果 3 字节的标头块从字节 1 开始,您可以从恰好位于双字边界的数据开始。在这方面,字节 0 被简单地忽略,Ymodem标头从字节 1 开始。这就是字节 0 的描述为“未使用”的原因。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分