如何使用 bsl 擦除 msp430f2619 闪存?
Posted
技术标签:
【中文标题】如何使用 bsl 擦除 msp430f2619 闪存?【英文标题】:How to erase msp430f2619 flash using bsl? 【发布时间】:2021-07-21 13:13:12 【问题描述】:我想使用 bsl 在我的 msp430f2619 上进行批量擦除。我在代码中使用软件跳转来调用 bsl。我发送 0x80,从 BSL(ack) 获取 0x90。然后我发送批量擦除命令并再次获得 0x90。然后我关闭我的设备,然后我打开设备,然后我发送 0x80 并得到 0x90,这意味着没有批量擦除操作。
读取命令也不起作用。我发送密码(0xFF 32 次),然后发送 rx 命令,然后我得到几个 coorect 字节,然后是 0xff 的无限原始。
我想我在跳转到bsl之前弄错了一些东西,请给出示例代码,或者逐步说明如何使软件跳转到bsl并使其正常工作。
【问题讨论】:
【参考方案1】:如果您只发送 0x80,则返回 0x90,这确认您已进入 BSL,因为这完成了所需的同步序列(参见this document 的第 2.1 节)。您不应该要求“RX 密码”命令,因为“批量擦除”命令不受保护。
同步后的下一个序列是发送所需的命令,应该是“Mass erase”。每个 BSL 命令都有一种格式,称为数据帧。您要发送以下数据帧:八个强制字节(注意两个虚拟字节)和两个校验和字节。注意“批量擦除”命令不包含数据字节,但您需要计算校验和字节。以下是执行批量擦除要发送的字节:
80 18 04 04 dd dd 06 A5 CL CH
Where: dd = dummy bytes (any value accepted), CL = Checksum low, CH = Checksum high
发送此数据帧后,您应该会收到 ACK (0x90) 字节。然后关闭设备。
【讨论】:
以上是关于如何使用 bsl 擦除 msp430f2619 闪存?的主要内容,如果未能解决你的问题,请参考以下文章
MSP430 DM430-A开发板学习笔记MSP430f149使用4针0.96 OLED屏幕