ZHCAA00E June 2013 – January 2024
MSP430 BSL 是 MSP430 MCU 中包含的标准引导加载程序。MSP430™ 闪存器件引导加载程序 (BSL) 用户指南 对此进行了详细说明。
在 MSPBoot 中实现的基于 BSL 的协议可以保持稳健性,但是并不能实现所有命令,并且与 BSL 协议完全采用相同的格式来减少其占用空间。此协议基于数据包,具有表 2-4 中的格式。
标头 | 长度 | 有效载荷 | 校验码 [L] | 校验码 [H] |
---|---|---|---|---|
0x80 | 1 到 PAYLOAD_MAX_SIZE(1) | 1 到 PAYLOAD_MAX_SIZE 字节 | 1 字节 | 1 字节 |
标头:固定为 0x80
长度:1 字节加有效载荷长度。有效值为 1 到 PAYLOAD_MAX_SIZE。
有效载荷:1 到 PAYLOAD_MAX_SIZE 字节,包含命令、可选地址和数据(可选,根据命令类型而定)。
校验和:有效载荷的 16 位 CRC CCITT
表 2-5 中的命令会作为有效载荷来实现。
命令 | CMD | 字节1 | 字节2 | 字节3 | 字节4 | … | 字节length-1 |
---|---|---|---|---|---|---|---|
ERASE_SEGMENT | 0x12 | ADDR[L] | ADDR[M] | ADDR[H] | X | X | X |
ERASE_APP | 0x15 | X | X | X | X | X | X |
RX_DATA_BLOCK | 0x10 | ADDR[L] | ADDR[M] | ADDR[H] | DATA0 | X | DATAn |
TX_VERSION | 0x19 | X | X | X | X | X | X |
JUMP2APP | 0x1C | X | X | X | X | X | X |
ERASE_SEGMENT
擦除由 ADDR 寻址的存储器段(闪存中为 512 字节)。
ERASE_APP
擦除应用程序区域。
RX_DATA_BLOCK
编程从地址 ADDR 开始的 n 字节数据。
TX_VERSION
向目标请求 MSPBoot 版本。
JUMP2APP
指示目标跳转到应用程序映像(在验证之后)。来自目标的响应始终为一个字节(表 2-6 列出了有效值)。
响应 | 值 | 说明 |
---|---|---|
OK | 0x00 | 上一条命令正确执行 |
HEADER_ERROR | 0x51 | 帧头不正确 |
CHECKSUM_ERROR | 0x52 | 帧校验和不正确 |
PACKETZERO_ERROR | 0x53 | 数据包长度 = 0 |
PACKETSIZE_ERROR | 0x54 | 数据包长度 > MAX_LEN |
UNKNOWN_ERROR | 0x55 | 协议错误 |
INVALID_PARAMS | 0xC5 | 命令收到的参数不正确 |
INCORRECT_COMMAND | 0xC6 | 收到的命令无效 |
MSPBOOT_VERSION | 0 到 0xFF | 发送为 TX_VERSION 命令的响应(默认为 0xA0) |