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.

[参考译文] MSPM0G3519:无法使用 CSC 复位 INITDONE

Guru**** 2747405 points

Other Parts Discussed in Thread: MSPM0G3519

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1586493/mspm0g3519-cannot-reset-initdone-using-csc

器件型号: MSPM0G3519

我尝试从 SDK 中修改 CSC 示例、以在 MSPM0G3519 上引导自定义映像、我已使用驱动程序启用 CSC 内的 UART 打印、这会略微增大 CSC 映像尺寸。 尝试引导映像会失败、因为已设置 INITDONE 标志、无法写入新的密钥库数据、并且锁定存储引导状态会设置为 LOCKSTG_BOOT_STATUS_FAILURE。  

如何在 SECSTATUS 寄存器中复位 INITDONE 标志? 该寄存器是只读的。

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

    您需要触发引导复位来清除 initdone 标志、并请参阅下面的流程:如果不使用 bankswap、请忽略它。

    e2e.ti.com/.../MSPM0-Initdone.pdf

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

    我已经使用 DL_SYSCTL_resetDevice (DL_SYSCTL_RESET_BOOT) 触发了引导复位和 SYS 复位;CALL 并且两种方法都没有有效来复位 INITDONE 标志。 是否必须使用另一种方法来触发复位?

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

    出于安全原因、INITDONE 控制受硬件限制。

    任何高于引导复位的复位都可以清除 initdone 标志、例如上电复位。

    在 CSC 中有两个条件、一个条件是上电;另一个条件是使用 initdone Clear 运行 CSC。

    另一个代码只是从由前一个 CSC 触发的复位运行、然后再次在设置 initdone 的情况下运行到 CSC。

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

    对电路板进行下电上电也不会复位 INITDONE 标志、 即使在下电上电后、DL_SYSCTL_isINITDONEISSUED () 始终返回 TRUE。

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

    我还在调试器设置中使用硬复位、我假设这也会触发 POR?

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

    请尝试在发出 init done 之前停止。

    您可以在 initdone 之前添加 10s 延迟、并尝试通过无工程调试连接到 MSPM0、在本视频中、在上电后、您将有足够的时间对其进行监控。

    我还在调试器设置中使用硬复位、我假设这也会触发 POR?

    这也可以正常工作、按下复位按钮 1、然后调试将停止、再次尝试连接、我还可以看到 initdone 已清除。

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

    嗨、大家好、很抱歉跳到聊天中。 其实、我所面对的是类似的问题。 即使代码正确设置了上部闪存的执行、但在复位后无法运行该程序、也不会发生存储体交换。  

    两个银行代码均跳转到应用时、情况会有所不同。 与中一样、CSC 代码始终从 PRIMARY_SLOT_OFFSET 引导。 但当只有一个映像位于存储体 1 中时、我认为存储体交换不会发生、这就是为什么在复位代码从存储体 0 启动 CSC 并尝试跳转到主槽位偏移后、它不会在存储体中获取代码、因为未发生存储体交换。  

    此外、是否有办法进行存储体交换、同时进行 initdone 干预?  我已经在电路板正常下电上电后检查了内部状态、它始终处于置位状态。 就像我设置了 initdone 状态一样、在映像验证步骤中、即使我设置了存储体交换并设置为从上槽位执行、它也不会因为 initdone 已设置而生效。 我不知道如何清除 initdone 状态。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid=“571933" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1586493/mspm0g3519-cannot-reset-initdone-using-csc/6111684 ]MSPM0 Initdone.pdf

    请遵循上述指南。

    一些复位级别可以清除 initdone、例如 POR。

    客户安全代码需要将固件下载到器件、引导 0、引导 1、应用 0 和应用 1 中。 0 和 1 表示下部和上部存储体。

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

    我已经能够清除 initdone、并通过对电路板进行下电上电来成功触发存储体交换。 但是、为了将 CSC 用作引导加载程序、必须远程发出存储体交换命令、现场的客户无法手动对所有电路板进行下电上电、以发出存储体交换并继续固件更新。 如何通过软件复位来清除 initdone?

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

    在回答我自己的问题时、可以使用 DL_SYSCTL_resetDevice (DL_SYSCTL_RESET_POR) 从软件发出 POR;