ZHCU778AB January 2014 – September 2022 MSP430FR2032 , MSP430FR2033 , MSP430FR2110 , MSP430FR2111 , MSP430FR2153 , MSP430FR2155 , MSP430FR2310 , MSP430FR2311 , MSP430FR2353 , MSP430FR2355 , MSP430FR2433 , MSP430FR2532 , MSP430FR2533 , MSP430FR2632 , MSP430FR2633 , MSP430FR4131 , MSP430FR4132 , MSP430FR4133 , MSP430FR5041 , MSP430FR5043 , MSP430FR50431 , MSP430FR5847 , MSP430FR58471 , MSP430FR5848 , MSP430FR5849 , MSP430FR5857 , MSP430FR5858 , MSP430FR5859 , MSP430FR5867 , MSP430FR58671 , MSP430FR5868 , MSP430FR5869 , MSP430FR5887 , MSP430FR5888 , MSP430FR5889 , MSP430FR58891 , MSP430FR5947 , MSP430FR59471 , MSP430FR5948 , MSP430FR5949 , MSP430FR5957 , MSP430FR5958 , MSP430FR5959 , MSP430FR5967 , MSP430FR5968 , MSP430FR5969 , MSP430FR5969-SP , MSP430FR59691 , MSP430FR5986 , MSP430FR5987 , MSP430FR5988 , MSP430FR5989 , MSP430FR5989-EP , MSP430FR59891 , MSP430FR6041 , MSP430FR6043 , MSP430FR60431 , MSP430FR6877 , MSP430FR6879 , MSP430FR68791 , MSP430FR6887 , MSP430FR6888 , MSP430FR6889 , MSP430FR68891 , MSP430FR6927 , MSP430FR69271 , MSP430FR6928 , MSP430FR6972 , MSP430FR6977 , MSP430FR6979 , MSP430FR69791 , MSP430FR6987 , MSP430FR6988 , MSP430FR6989 , MSP430FR69891
结构 BSL 内核命令
BSL 命令 | 是否受保护 | CMD | AL | AM | AH | 数据 | BSL 内核响应 |
---|---|---|---|---|---|---|---|
RX 密码 | 否 | 0x11 | – | - | - | D1…D32 | 视器件而定 |
描述
BSL 内核接收包含在数据包内的密码,如果密码与 BSL 中断矢量表(位于地址 0xFFE0 和 0xFFFF 之间)中的头 16 个字匹配的话,解锁 BSL 受保护的命令。
当提供的密码不正确时,将启动批量擦除。对于 MSP430FR5xx 和 MSP430FR6xx 器件而言,这意味着所有代码 FRAM 都会被擦除,但不会擦除信息存储器。对于 MSP430FR2xx 和 MSP430FR4xx 器件而言,这意味着包括信息存储器在内的所有代码 FRAM 都将被擦除。
执行批量擦除后,密码的所有字节始终为 0xFF。这通常用于访问空器件或在没有密码的情况下会将新应用程序加载到已锁定的器件。可以按照相应系列用户指南中所述的设置 BSL 签名来禁用批量擦除安全功能(请参阅Topic Link Label1.2)。
保护
此命令不受密码保护。
命令
0x11
命令地址
不适用
命令数据
命令数据的长度为 32 字节,并包含器件密码。
命令返回
MSP430FR5xx 和 MSP430FR6xx 引导加载程序不发送有关密码错误的 BSL 内核响应。应忽略来自器件的任何确认并再次初始化与 BSL 的通信。
MSP430FR2xx 和 MSP430FR4xx 引导加载程序会发送 BSL 确认和带有操作状态的 BSL 内核响应。请参阅Topic Link Label4.1.4,了解更多有关 BSL 内核响应的信息。
UART PI 示例
解锁一个空白器件:
标头 | 长度 | 长度 | CMD | D1 | D2 | D3 | D4 | D5 | D6 |
0x80 | 0x21 | 0x00 | 0x11 | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF |
D7 | D8 | D9 | D10 | D11 | D12 | D13 | D14 | D15 | D16 |
0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF |
D17 | D18 | D19 | D20 | D21 | D22 | D23 | D24 | D25 | D26 |
0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF |
D27 | D28 | D29 | D30 | D31 | D32 | CKL | CKH |
0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0x9E | 0xE6 |
密码成功的 BSL 响应:
ACK | 标头 | 长度 | 长度 | CMD | MSG | CKL | CKH |
0x00 | 0x80 | 0x02 | 0x00 | 0x3B | 0x00 | 0x60 | 0xC4 |
I2C PI 示例
解锁一个空白器件:
I2C | 标头 | 长度 | 长度 | CMD | D1 | D2 | D3 | D4 | D5 |
S/A/W | 0x80 | 0x21 | 0x00 | 0x11 | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF |
D6 | D7 | D8 | D9 | D10 | D11 | D12 | D13 | D14 | D15 |
0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF |
D16 | D17 | D18 | D19 | D20 | D21 | D22 | D23 | D24 | D25 |
0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF |
D26 | D27 | D28 | D29 | D30 | D31 | D32 | CKL | CKH |
0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0xFF | 0x9E | 0xE6 |
密码成功的 BSL 响应:
I2C | ACK | 标头 | 长度 | 长度 | CMD | MSG | CKL | CKH | I2C |
S/A/R | 0x00 | 0x80 | 0x02 | 0x00 | 0x3B | 0x00 | 0x60 | 0xC4 | 停止 |