图 3-2 显示了闪存编程序列。初始握手始于外部主机发出的 UART 中断。此中断之后是图 3-2 所示的命令序列。引导加载程序使用命令响应协议。因此,主机应在发送每条命令后等待,直至接收到来自器件的 ACK 响应。请注意,GET STATUS 命令的独特之处在于其只返回 STATUS RESPONSE 消息而不发送 ACK 响应。
要点:
- 主机处理器需要将每个文件/映像拆分为较小的块,并在 WRITE TO FLASH 命令中发送每个块。该命令的 LENGTH 字段应设置为有效负载总大小(包括映像数据块和用于 0x24 操作码的 1 个字节)+ 2。最大块大小为 243 - 3 = 240 字节。
- 在 UART 命令中,字的字节顺序为大端字节序(即先发送最高有效字节)。BSS/MSS/Config 映像应按照其在二进制文件中的顺序以字节的形式进行传输。
- ERASE 命令不是必需的,但可用于确保在写入新映像之前清除整个 SDFLASH。
- GET STATUS 命令不是必需的,但可用于检查器件的状态。
- GET VERSION 命令不是必需的,但可以由主机处理器用于根据器件的器件版本以不同的方式运行。