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:辅助 BSL 开发工作流程、器件锁定

Guru**** 2763595 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/1609333/mspm0g3507-secondary-bsl-developing-workflow-device-locked

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

您好!

我目前正在 MSPM0G3507 上实施辅助 BSL 以执行固件更新。

今天、我遇到了微控制器永久锁定的问题。 寄存器读取 0x0036、NOMAIN 区域似乎被擦除、从而导致永久锁定。  

我想要求澄清以下几点:

  1. 我已启用 NOMAIN 静态写保护。 但是、NOMAIN 仍被擦除、看起来不受保护。 这种保护是否应该阻止擦除操作? 在开发或调试期间、是否应该启用任何额外的设置或预防措施、以避免意外擦除 NOMAIN 并锁定器件?

  2. 对于 main 区域、我的理解是、根据我们放置辅助 BSL 代码的位置、静态写保护应配置为 0xFFFFF00F。 是这样吗? 是否还应该在开发过程中对其进行配置?

  3. 关于调试擦除配置、我已配置了 MAIN 扇区和 NONMAIN 扇区。 即使启用了静态保护、该配置是否可以允许在调试操作期间擦除 NOMAIN?

辅助 BSL 本身在 MAIN 区域中刷写、为防止其被覆盖、我知道必须正确配置主静态写保护。 但是、与 BCR 和 BSL 相关的配置寄存器位于 NOMAIN 区域中。 如果这些寄存器被错误地写入或 NOMAIN 被擦除、器件将被永久锁定。

我的理解是否正确?

我已阅读大量官方 NVM 文档和几个相关论坛主题、但找不到关于在开发辅助 BSL 时如何避免永久锁定器件的明确开发指南或最佳实践。

您能否提供建议或建议的开发工作流程来安全开发和调试辅助 BSL、同时尽可能降低擦除 NOMAIN 或永久锁定器件的风险?  

感谢您的支持。

此致、
zq

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

    您好 zq、

    今天我遇到了微控制器永久锁定的问题。 寄存器读取 0x0036、NOMAIN 区域似乎被擦除、从而导致永久锁定。  [/报价]

    是、如果使用 0x0036 读回、则 NONMAIN 为空。

    我已启用 NOMAIN 静态写保护。 但是、NOMAIN 仍被擦除、看起来不受保护。 这种保护是否应该阻止擦除操作? 在开发或调试期间、是否应该启用任何额外的设置或预防措施以避免意外擦除 NOMAIN 并锁定器件?

    否、如果 NONMAIN 静态保护、闪存加载程序无法再擦除 NONMAIN。 虽然、由 DSSM 生成的恢复出厂设置命令可以覆盖静态保护、并可以擦除 NONMAIN 并对默认 NONMAIN 参数进行编程。

    对于 main 区域、我的理解是、根据我们放置辅助 BSL 代码的位置、静态写保护应配置为 0xFFFFF00F。 是这样吗? 我是否还应该在开发过程中对其进行配置?

    是的、我建议您对其进行配置、以防您顺便擦除它。  

    关于调试擦除配置、我已配置 MAIN 扇区和 NONMAIN 扇区。 即使启用了静态保护、该配置是否可以允许在调试操作期间擦除 NOMAIN?

    否、只有恢复出厂设置才能将其恢复到默认状态。

    [报价 userid=“674067" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1609333/mspm0g3507-secondary-bsl-developing-workflow-device-locked

    辅助 BSL 本身在 MAIN 区域中刷写、为防止其被覆盖、我知道必须正确配置主静态写保护。 但是、与 BCR 和 BSL 相关的配置寄存器位于 NOMAIN 区域中。 如果这些寄存器被错误地写入或 NOMAIN 被擦除、器件将被永久锁定。

    我的理解是否正确?

    [/报价]

    是的。

    您能否提供建议或建议的开发工作流程、以便安全开发和调试辅助 BSL、同时更大限度地降低擦除 NOMAIN 或永久锁定器件的风险?  [/报价]

    在开发阶段、修改 NONMAIN 一次、然后对其进行静态保护(可选)。

    在 NONMAIN 中保留辅助 BSL 不受保护以用于开发。 在开发过程中、NONMAIN 可以保持不变、因此从工程中删除 NONMAIN 配置、那么您永远不会再次 Prorgam NONMAIN。

    注意:您可以从 build 中启动 boot_config.c、然后在 SysConfig 中创建 NONMAIN 设置、但不会参与编译。

    我还建议您选择以下选项以避免意外擦除 NONMAIN:

    在顺利开发辅助 BSL 工程之后、执行恢复出厂设置、然后对最终 NONMAIN 进行编程以保护辅助 BSL。

    我认为这可以最大程度地降低 NONMAIN 为空的风险。

    BTW、对于 NONMAIN、有一个 UG 可供参考: MSPM0 NONMAIN 闪存配置指南

    B.R.

    Sal

    [/quote]