Thread 中讨论的其他器件: UNIFLASH
工具/软件:
我正在使用基于 TI AM62的 SoM 和 MSPM0G3507 MCU 来开发载板。 使用示例工程 bsl_host_mcu_to_mspm0g1x0x_g3x0x_target_i2c (SDK 2.04.00.06)作为指南、我开发了一个"BSL 主机" 程序以在 SoM 上运行、从而通过 I2C BSL 更新 MCU 上的应用程序固件。 因此、SoM 上的两条 GPIO 线分别连接到 MCU 上的 NRST 和 PA18 (默认 BSL_invoke)、而 SoM 上的 I2C 总线连接到 MCU 的 I2C0。 所需的 MCU 固件映像在 Code Composer Studio v20.1.1中使用 TI Clang v4.0.2.LTS 工具链构建;Arm 十六进制实用程序配置为生成 TI-TXT 格式的目标文件、我使用 MSPM0_BSL_GUI 实用程序将 后者转换为头文件 、以便包含在主机程序中。
主机程序 将执行以下操作:
- 通过 GPIO 调用 BSL
- 打开 I2C 接口并发送"Connection"命令
- 发送使用默认密码的"Unlock Bootloader"命令以允许执行受保护的命令
- 发送"批量擦除"命令以擦除 MCU 的 MAIN 闪存
- 使用多个"Program Data"命令将新应用程序写入 MCU
- 发送"Start Application"命令
执行时、程序运行至完成、没有错误。 但是、MCU 似乎不会执行更新后的映像:其功耗低于预期、并且不会响应从 SoM 通过单独的 UART 通道发送的不相关(非 BSL)命令。
我相信程序正在正确地发送命令和处理响应。 在调试时、如果自发送"解锁引导加载程序"以来经过太长时间、我会在发送受保护命令时收到"BSL 锁定"错误、以及在尝试写入固件应用程序之前出现"地址或长度对齐无效"错误、然后才意识到目标地址和数据长度必须是8字节对齐。
随后、 当我将 XDS110调试探针连接到 MCU 并尝试使用 CCS 调试器加载固件应用时、收到以下错误:
连接到目标时出错: 连接到 MSPM0内核失败。 可能的根本原因:1)使用密码禁用或启用了 NONMAIN 内的调试访问。 2)外设配置错误(例如看门狗或时钟不正确)。 要查看问题的更详细诊断、请按下"读取引导诊断"按钮。
调查了该怎么做后、我启动了 MSPM0_RTOS 并执行了批量擦除操作、然后我能够成功加载并执行 Factory_Reset_Tool 应用程序。 请注意、调试器加载的文件已用于生成相应的.txt 文件、该文件又转换为主机程序中包含的头文件。
对可能有什么问题有什么想法? 谢谢。

