【问题标题】:stm32 JTAG pins usingstm32 JTAG 引脚使用
【发布时间】:2015-09-29 01:50:21
【问题描述】:

我使用 SWD 在 stm32 芯片中加载固件和调试。它使用 3 个引脚:SWCLK(TCK)SWDIO(TMS)GND

我可以使用 SWD 接口中未使用的其他 JTAG 引脚吗: (TDI, TDO, TRST) 为了自己的目的,同时保留在芯片中刷新固件的可能性?

【问题讨论】:

    标签: stm32 cortex-m jtag


    【解决方案1】:

    实际上 SWD 只使用两个引脚 SWD 和 SCLK。 GND 很常见,不能用于任何其他目的。 SWO - 仅当您使用(并且需要)半主机等功能时

    如果您运行 CubeMx - 您将看到,如果您选择 SWD,则所有其他 JTAG 引脚都可用于一般用途。

    【讨论】:

      【解决方案2】:

      嗯,这可能取决于你的调试器的能力......

      但总的来说:是的,您可以仅通过 SWD 进行闪存编程,并将剩余的 JTAG 引脚用于其他目的。例如。劳特巴赫调试器可以做到。

      但是,如果您的调试器工具支持跟踪记录,我不会将 TDO 引脚用于您的应用程序,因为该引脚通常可以用作 SWD 模式下的 SWO 跟踪引脚。 (使用 Cortex-M3/M4 或 M7)

      【讨论】:

        【解决方案3】:

        我只是想补充一点,如果您在调试器设置中选择在重置下连接,则始终可以使用 JTAG 或 SWD 连接到 stm32。
        当您有意或无意地重新配置 JTAG 或 SWD 引脚时,这是必要的。但是,它还取决于连接到这些引脚的硬件,因此有时它不起作用。
        尽管如此,它应该足以加载固件。

        【讨论】:

          【解决方案4】:

          重置后,uC 将准备好通过 SWD 或 JTAG 连接,这完全取决于您的调试器(因为所有引脚都将在默认配置中),但是当您的应用程序重新配置调试器使用的 IO 之一时接口你失去了通过这个接口连接到核心的能力。

          如果您不使用任何 SWD 引脚(CLK 和 DIO)您将能够随时连接到您的目标,甚至无需重置 uC,因为这些引脚将准备好连接随时

          但是,如果您将其中一个引脚重新配置为例如读取按钮,则需要在代码运行之前重置目标并连接到它,在这种情况下,您需要在调试接口中添加连接到 RESET 引脚,因此调试器会重置目标并在之后立即连接到它。 (很明显,你不能在调试过程中按下按钮) 这就是为什么将 RESET 添加到调试器连接总是有用的原因

          【讨论】:

            【解决方案5】:

            是的,您可以使用其他 JTAG 引脚。 如果您不需要调试,您也可以在闪存芯片后使用 SWD 引脚,但在这种情况下,您很可能需要从系统内存启动以进行芯片重新编程。

            【讨论】:

              猜你喜欢
              • 2019-04-17
              • 2022-01-13
              • 1970-01-01
              • 2020-09-19
              • 2021-09-12
              • 2016-06-16
              • 1970-01-01
              • 1970-01-01
              • 2011-05-28
              相关资源
              最近更新 更多