硬件设置:我正在使用 MSP430FR 5969 Launchpad (https://www.ti.com/lit/ug/slau535b/slau535b.pdf?ts=1658258840470&ref_url=https%253A%252F%252Fwww.ti.com%252Ftool%252FMSP-EXP430FR5969)。 我移除了 J13上的 RXD 和 TXD 跳线、并将它们连接到具有适当电压电平的串行端口、以访问 UARTA0。 我有第二个串行端口连接了 J4上的 P2.5和 P2.5引脚、以访问用于"监控"软件的 UARTA1。
软件设置:我在 Code Composer 中编写了一个程序来监视 UARTA1输入、并将使用 SLAU319AE 的代码分支到 BSL 中
_disable_interrupt ();//禁用中断
((void (*)() 0x1000)();//跳转至 BSL
连接到 UARTA0以与 BSL 通信的软件以 C 语言编写、并在 Ubuntu 上运行。
当我从监视器分支到 BSL 并从 Liinux 代码发送一个受密码保护的命令时、系统似乎正在与 BSL 通信、我得到一个与 FRAM BSL 文档(SLAU550AA)所说的内容相匹配的响应。
例如:我启动 BSL 并发送受保护命令"TX BSL 版本"、0x19。
st29142@574814-MITLL-VM-UBIUBOUN-2204:~μ A/eclipse-workspace/MSP430_BSL/build/default$./MSP430_BSL 19.
2022年7月19日构建的 BSL 文件加载器为10:59:16
正在打开端口/dev/ttyS1
端口打开 argc = 2
19 0x19
CRC 长度= 1
0x19
0x62e8
I+4 = 6 0x80 0x01 0x00 0x19 0xe8 0x62
写入6个字符
收到8个字符
接收到0x00
接收到0x80
接收到0x02
接收到0x00
接收到0x3b
接收到0x04
接收到0xe4
接收到0x84
数据包与4.1.5.7节中的示例匹配、响应表示 BSL 已锁定(字节6中的0x04)。 这符合预期、并确认我与 BSL 进行了通信、BSL 正常工作。
我的问题:当我命令批量擦除时、我没有收到 SLAU550AA 在4.1.5.3中指示的 BSL 响应、我应该得到。 此外、我在 Code Composer 中加载的监视器软件应该已经被擦除、但是当我用硬件复位(按钮 S3)来复位 Launchpad 时、监视器会启动。
$./MSP430_BSL 15.
2022年7月19日构建的 BSL 文件加载器为10:59:16
正在打开端口/dev/ttyS1
端口打开 argc = 2
15 0x15
CRC 长度= 1
0x15
0xa364
I+4 = 6 0x80 0x01 0x00 0x15 0x64 0xa3
写入6个字符
接收到0个字符
在复位时、从软件启动和从测试信号启动是否存在一些差异、从而使其无法正常工作?
Launchpad 上的 MSP430FR5969中是否加载了不同的 BSL?
暂存区中是否有一些隐藏硬件在复位时恢复显示器程序?
如果有任何建议,将不胜感激。
提前感谢。