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.

[参考译文] RM46L852:如何知道哪个 CPU 处于调试模式

Guru**** 2394295 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/654342/rm46l852-how-to-know-which-the-cpu-is-in-debug-mode-or-not

器件型号:RM46L852

我想知道哪个 CPU 通过连接 JTAG 处于调试模式、或者不连接 JTAG。

我知道何时连接了 JTAG、nTRST 信号会变为高电平、但我无法通过 CPU 的任何寄存器或类似的器来知道哪个 nTRST 信号是高电平或低电平。

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

    由于调试单元是 CPU/ARM IP 的一部分、因此在 ARM 网站上的 ARM Cortex R4F TRM 中对此进行了说明。 有关调试控制器的信息、请访问第 11章中的链接 infocenter.arm.com/.../index.jsp。 具体而言、我相信您将对第11.8节感兴趣、该节讨论了调试状态信息。

    通常、我们建议使用 ARM corsight 调试功能通过4位密钥禁用调试逻辑、或在运行时使用 AJSM 来使通过 JTAG 端口的入侵失效。 有关这些建议的更多详细信息、请参阅安全手册的第7.133 7.135节。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Chuck:

    感谢你的答复。

    当我在 我们的定制板中连接 ICE (Blackhawk)后读取 DSCR 寄存器时、DSCR[0]未被置位。

    否则、只 设置了 DSCR[14](呼气模式)。

    我的测试步骤 如下:

    1. 将 ICE 连接 到电路板。

    2.打开电源。

    3.通过 ICE 重置 CPU。

    4. 在启动例程中读取 DSCR 寄存  器、并将寄存器的值存储在地址中。

    5.读取地址的值。

        设置 DSCR[0]时、您能告诉我读取 DSCR 的正确方法吗?

    此致、

    Shigeru Maeda

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

    位14仅用于指示停止模式已启用、而不是已停止。 位0将指示 CPU 是否已在调试状态下停止、但它只能被系统中的主机看到、因为该位仅在 CPU 暂停时才会被置位。

    我已经咨询过我们的一位 Cortex-R4/R5专家、他们表示在运行期间没有存储器映射位置来确定调试状态。

    您在寻找此功能的具体原因是什么? 如果我们可以提供进一步的解释或评估是否有替代解决方案的可能性、我对此感兴趣。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Chuck、

    无论 ICE 是否连接到电路板、我们都必须更改固件、因为在连接 ICE 时、我们必须在电路板上运行维护固件、但常规固件除外。

    顺序如下:

    1.给电路板加电

    2.如果连接了 ICE,则运行维护固件识别,否则运行正常固件。

    此致、

    Shigeru Maeda

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

    我对迟迟不能与您联系表示歉意。 在 ICE 实现中、除了 JTAG 之外还有其他任何形式的通信吗? 即、您是否可以让 ICE 通过 SPI、UART 发送特殊命令、或者这会导致器件分支到您的维护固件? 另一种可能可行的方法是使用 IO 引脚状态的特殊组合、这在正常操作中不现实、会导致固件跳转到维护模式。 如果您遵循第二种方法、对于某些情况、需要涉及多个位/引脚、以防止现场实例化维护固件的单一故障。