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.

[参考译文] MSPM0G3507:MSPM0G3507 永久锁定

Guru**** 2667985 points

Other Parts Discussed in Thread: MSPM0G3507, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1593073/mspm0g3507-mspm0g3507-permanently-locked

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

您好!

是使用 MSPM0G3507 微控制器进行开发的。 最近、我们的器件已被永久锁定、恢复出厂设置无法解决问题。 我们不确定如何防止这种情况发生。

我目前正在调查此问题、如果您能查看我们的 NVM 配置来确定任何可能导致永久锁定的潜在风险、我将不胜感激。

下面是调试期间擦除配置和 NVM 配置的屏幕截图。

Unbenanntes Bild1.png

Unbenanntes Bild2.png

  1. 擦除配置: 我们当前的设置可能不正确。 我们是应该将其更改为仅擦除 MAIN 存储器、还是应该擦除 MAIN 扇区和必要的 NONMAIN 扇区? 目前、我们已根据调试安全策略对其进行了配置。 这是否意味着对于调试、我们应该选择 main 和 NONMAIN、而不仅仅是 main?

  2. NONMIN 静态写保护: 是否应该在我们的配置中启用该功能?

    感谢您的支持;)

    此致
    自强

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

    您好、自强:

    最近、我们发布了 NVM UG 供用户参考: MSPM0 NONMAIN 闪存操作指南

    以下是调试和 NVM 配置期间擦除配置的屏幕截图。

    我看到您禁用 BSL、其他保持不变。 看起来没有问题。 尝试以下方法进行恢复:

    顺便说一下、您还可以检查诊断读取值以查看电路板会发生什么情况:

    [报价 userid=“674067" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1593073/mspm0g3507-mspm0g3507-permanently-locked 擦除配置: 我们当前的设置可能不正确。 我们是应该将其更改为仅擦除 MAIN 存储器、还是应该擦除 MAIN 扇区和必要的 NONMAIN 扇区? 目前、我们已根据调试安全策略对其进行了配置。 这是否意味着对于调试、我们应选择 MAIN 和 NONMAIN、而不仅仅选择 MAIN?

    如果您在 SysConfig 工具中启用 NVM、则需要在工程属性中启用擦除 NONMAIN。

    在我看来、我的自调试实验中更经常使用以下设置:

    仅当固件包括 NONMAIN 区域时、此设置才会擦除 NONMAIN。 如果不存在 NONMAIN、则只擦除固件中有数据的 MAIN 区域。

    [报价 userid=“674067" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1593073/mspm0g3507-mspm0g3507-permanently-locked NONMIN 静态写保护: 是否应该在我们的配置中启用此功能?

    如果要对 NONMAIN 重新编程、则需要禁用该功能、除非您需要恢复出厂设置以再次配置 NVM。

    对于用户调试活动、配置 NVM 后不需要更改、建议用户在 SysConfig 中禁用 NVM、以防新编程过程中意外断电或 SWD 连接断开会中断新的 NONMAIN 固件加载。 那么、空 NONMAIN 会导致永久锁定状态。

    B.R.

    Sal

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

    尊敬的 Sal:

    感谢您的快速答复:)  

    我看到您禁用 BSL、其他代码保持不变。 看起来没有问题。 尝试以下方法进行恢复:

    如果我禁用 BSL 但在“BSL GPIO configuration“下选择“Use default BSL invoke pin“、这意味着即使调用了 PA0(默认调用引脚)、我们的器件也不会进入 BSL。

    顺便说一下、您还可以检查诊断读取值以查看电路板会发生什么情况:

    0x0000 0036 — 看起来引导失败,NOMAIN CRC 验证失败。 这是否意味着它被永久锁定? :(

    对于用户调试活动、配置 NVM 并不需要更改后、我建议用户在 SysConfig 中禁用 NVM、如果在新的编程过程中意外断电或 SWD 连接中断会中断新的 NONMAIN 固件加载。 然后、空 NONMAIN 会导致永久锁定状态。

    我在 NVM 配置(例如 SWD 批量擦除和恢复出厂设置等配置)中看到、第一次配置后、在后续调试或闪存过程中、我可以删除所有 NVM、直到需要再次配置。  我是否得到了正确的答案?

    谢谢您Slight smile

    此致
    自强

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

    您好、自强:

    如果我禁用了 BSL 但在“BSL GPIO configuration“下选择“Use default BSL invoke pin“、这意味着即使调用了 PA0(默认调用引脚)、我们的器件也不会进入 BSL。

    是的。 BTW 默认调用引脚为 PA18。

    0x0000 0036—看起来启动失败、NOMAIN CRC 验证失败。 这是否意味着它被永久锁定? :(

    如果只有 NONMAIN CRC 校验失败、则应恢复恢复出厂设置过程。 如果 NONMAIN 为空(这也是 HSA CRC 故障,但另外会阻止恢复出厂设置)、则无法恢复器件。

    [引述 userid=“522967" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1593073/mspm0g3507-mspm0g3507-permanently-locked/6138501

    尝试以下方法进行恢复:

    [/报价]

    如果以下方法不起作用、则将其 永久锁定。

    我在 NVM 配置(例如 SWD 批量擦除和恢复出厂设置等配置)中看到、第一次配置后、在后续调试或闪存过程中、我可以删除所有 NVM、直到需要再次配置它。  我是否得到了正确的答案?
    [/报价]

    是的、正确。 如果不进行配置、NONMAIN 将保留您的最后设置。

    B.R.

    Sal

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

    尊敬的 Sal:

    感谢您的快速答复:)

    如果只有 NONMAIN CRC 校验失败、应恢复恢复出厂设置过程。 如果 NONMAIN 为空(这也是 HSA CRC 故障,但另外会阻止恢复出厂设置)、则无法恢复器件。

    您能否解释一下哪些情况会导致 NONMAIN 变为空? 或者、什么情况可能会导致空 NONMAIN?

    是的、正确。 如果您不进行配置、NONMAIN 将保留您的最后设置。

    总之、这是否意味着我可以在需要时配置一次 NVM、然后将其删除、直到需要再次修改?
    或者、我是否只能保留 NVM 配置并在调试时简单地选择“erase main and NONMAIN Necessary Sectors Only“、以避免永久锁定器件?

    谢谢你;)

    B.R.
    自强

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

    您好、自强:

    您能解释哪些情况会导致 NONMAIN 变为空吗?

    通常是由于外部重置、电源或连接问题而导致下载损坏。

    因此、总而言之、这是否意味着我可以在需要时配置一次 NVM、然后将其删除、直到需要再次修改?

    是的、建议这样做。

    或者我是否可以保留 NVM 配置并在调试时仅选择“erase main and NONMAIN necessary sectors one“以避免永久锁定器件?

    否、这只控制擦除行为、而不控制编程行为。

    可以选择此擦除属性、但需要禁用 NVM 配置、也可以从编译器和链接器中提取该属性。

    然后、.out 文件中不存在 NONMAIN 固件、并且不会擦除 NONMAIN 并重新编程。

    B.R.

    Sal