This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSPM0G1506:通过 UART BSL 更新 BCR 和 BSL 配置(NONMAIN 区域)

Guru**** 2422790 points
Other Parts Discussed in Thread: MSPM0G1506, SYSCONFIG

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1544132/mspm0g1506-update-of-bcr-and-bsl-configuration-nonmain-region-via-uart-bsl

器件型号:MSPM0G1506
主题: SysConfig 中讨论的其他器件

工具/软件:

您好:

我尝试更新 目标 PCB 上 MSPM0G1506 控制器的 BCR 和 BSL 配置。

作为 BSL 主机 、我使用了  SDK mspm0_sdk_2_03_00_07 中的 BSL_GUI_EXE V1_2。

如果我通过调试器使用包含 BCR 和 BSL 配置的映像刷写目标、则可以通过 UART BSL 进行进一步更新、并且目标上的应用程序可以 正常运行。

但是、如果我想在恢复出厂设置后通过 BSL 刷写映像、目标上的应用程序在固件更新后不会启动、也无法通过调试器连接到目标(因此很遗憾,我无法读取闪存)。

固件更新本身通过似乎没有错误:

为什么在更新成功的情况下应用程序不启动? 是否甚至可以通过 UART BSL 更新 BCR 和 BSL 配置?

BCR 配置仅与默认配置略有不同:

(左侧:BCR CONFIG I want to flash;右侧:恢复出厂设置后的 BCR 配置)。

我想知道为什么 NONMAIN 区域更新可能会在恢复出厂设置后导致问题。

谨提前感谢。  

Fabian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    但如果我要在恢复出厂设置后通过 BSL 刷写映像、则目标上的应用程序在固件更新后不会启动、无法通过调试器连接到目标(因此很遗憾,我无法读取闪存)。

    尝试通过 BSL 或调试器连接 M0 时显示任何错误?

    BCR 配置仅与默认配置略有不同:

    需要与 TRM 非主区域寄存器描述进一步比较、以找出根本原因。

    来检查它是 CRC 寄存器还是配置寄存器。

    我只是想知道为什么在恢复出厂设置后更新 NONMAIN 区域可能会导致问题。

    您能给我展示出厂复位后和 SWD 刷写后 M0 与非主区域的差异。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    为了执行恢复出厂设置、我将 MSPM0 LaunchPad 上的 XDS110 接口与目标 PCB 上的 SWD 接口(使用 MSPM0G1506 控制器)连接在一起。 我在 Code Composer Studio 中创建了一个工程、并按照我找到的本手册中的说明操作 (https://www.ti.com/lit/an/slaae88c/slaae88c.pdf?ts = 1753360023052&ref_url=https://www.253A%252F%252Fwww.google.com%252F)。

    因此、当我通过 JLink 调试器读取 NONMAIN 区域时、结果如下所示:

    我要刷写的映像的 NONMAIN 区域如下所示:

    因此、如您所见、唯一的区别是 BSL 调用引脚被禁用、并且 BCR 配置上的 CRC 已更改(这是合理的)。

    固件更新后、我再次尝试通过 JLink 调试器连接、并收到以下错误消息:

    您认为“TRM 非主区域寄存器“是什么意思?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我要刷写的映像的 NONMAIN 区域如下所示:

    禁用 BSL 模式。

    问题是、您无法正确刷写非主存储器、我的理解是否正确?

    我只是想知道为什么在恢复出厂设置后更新 NONMAIN 区域可能会导致问题。

    它应该能正常工作。

    您可以向我展示您正在使用的代码、或者如何重现问题、我可以从我这边尝试。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我将尝试逐步解释如何重现此行为。

    1. 在 Keil 中创建工程 对于 MSPM0G1506(应用软件无关紧要,只需使用示例代码)

    2. 适应 中的 BCR 和 BSL 配置 其中概述了 SysConfig 如下所示:

    3. 生成了 工程-> mspm0g.hex 是的名称 快捷方式

    4. 生成特殊 TI-TXT BSL GUI 使用以下命令所需的文件:

    srec_cat.exe mspm0g.hex -Intel -fill 0xff -within mspm0g.hex -intel -range-padding 8 -o mspm0g.txt -TI-TXT

    因此、 mspm0g.txt 中的 BCR 和 BSL 配置应如下所示:

    5. 执行恢复出厂设置 在目标控制器上(正如我所说,我遵循了本手册中的说明:www.ti.com/.../slaae88c.pdf 5.2 章“由 ts 恢复出厂设置以恢复器件“)  

    6. 硬件设置 :将 LaunchPad LPMSPM0Gxxxx 上 XDS110 的 GND、RXD 和 TXD 连接到 GND 以及目标控制器 MSPM0G1506 上的 UART 引脚 PA10 (TX) 和 PA11 (RX)...这些是我在数据表中读取到的默认 BSL UART 引脚

    7.为目标控制器和供电 闪存中  mspm0g.txt 使用 BSL_GUI_EXE mspm0_sdk_2_03_00_07 中

    =>更新顺利通过、但在此之后、应用程序不运行且 控制器被锁定(无法通过 JLink 调试器连接到目标)。

    请尝试按照上述所有步骤重现此错误行为。

    谢谢你。