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.

[参考译文] MSPM0G1507:JLink MCU 复位

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1394083/mspm0g1507-jlink-mcu-reset

器件型号:MSPM0G1507

工具与软件:

我要尝试在 J Link 脚本中实现 CPU 和外设复位过程。 我使用 wiki.segger.com/.../中的脚本 Example_Reset_Cortex Normal_350.JLinkScript 作为基础。 但是、只复位 CPU、不复位外设。 您是否有一个示例、说明如何使用 JLink 脚本执行此复位并在复位处理程序前立即停止 CPU?

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

    大家好、Lucas:

    我们没有脚本示例、您需要自己实现。  

    通过使用脚本和它使用的确切寄存器访问、您无法执行更高级别的复位(实际复位某些外设)。

    在编写自己的脚本时、您有两种选择:

    1) 1)通过 PWR-AP 复位-与上述脚本类似、写入 PWR-AP 中的 SPREC 寄存器。 设置位0可启动 PWR-AP 复位、从而复位除 CPU 复位(包括时钟系统)以外的位。 我不推荐这条路线、因为它的文档较少、并且与下一条路线的工作量相同。

    2) 2)通过 SYSCTL 模块复位-写入 CPU 中的 SYSCTL 寄存器以复位器件。 这样、您只需使用调试器访问器件并重写 SYSCTL 寄存器中的一些位、即可选择所需的复位级别。

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

    我已尝试 SYSCTL 寄存器、以及使其保持低电平少于1秒的复位引脚。 但是、我很难在复位处理程序启动时立即停止 CPU。

    在原始示例中、我们使用了:

    JLINK_MEM_WriteU32 (_DEMCUR_ADDR、(_DEMCR_VC_CORERESET |_DEMCR_TRCENA));//设置复位时的矢量捕捉(在复位后立即停止 CPU)

    但这不适用于其他类型的复位。

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

    大家好、Lucas:

    您也可以像前面提到的迪伦那样使用我们的 PWR-AP 来做同样的事情、而不是使用 DEMCR。

    它是我们器件中的第四个接入点、地址0x00处的称为 DPREC 的寄存器可在复位后修改行为。 通过将 RST CTL 位(14:16)设置为 001b、它会强制器件进入复位处理程序、并在复位后保持该状态。

    我很好奇、当我使用 DEMCR 寄存器并执行复位时、它最终会从哪里返回? 它是否复位并继续运行?

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

    当我使用 AIRCR 复位时。 SYSRESETREQ、它仅会将内核复位、并且 DEMCR 会通过在复位处理程序中停止来按预期运行。 但是、当我使用 SYSCTL 或 RESET 引脚时、它不会在复位处理程序中停止、当它停止时、它已经在某种主循环迭代中。 在 JLink 脚本函数中、在使用 SYSCTL 或引脚复位后读取 DEMCR、它会读取值​​0xFFFFFFFF 或0x0。 我尝试了同时使用 RST CTL 和使用 SYSCTL 和引脚进行复位、但我并不真正了解应该何时进行更改以及下一步应该怎么做。 这就是我不成功的原因。

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

    使用 SEC-AP 和等待调试命令
    我能够重置和停止。