您好,有没有使用 S32 design studio 制作 SWO 运行的完整示例?如何配置 pinMUX、时钟等?我用 J-link 和 PEMicro 调试器尝试了多个示例,但都没有成功。我还使用retarget_itm.c 库进行 ITM 配置(由恩智浦提供)。
你好@Julián_AragónM,这个问题已经解决了吗?我遇到了同样的问题,在配置 TPIU 寄存器后,MCU 进入硬故障,J-Link 也无法向这些寄存器写入数据。这可能是由于一些功能保护的缘故吗?在写入这些 TPIU 寄存器之前,还需要进行其他配置吗?如果能得到任何帮助或见解,我将不胜感激。
你好,@jakub-holoubek、
我已通过社区向您发送了私人信息。
你好@Julián_AragónM,好的,谢谢。
Cortex m7 TPIU registersCortex m7 TPIU 寄存器
如果我从代码中设置这些寄存器,单片机会出现硬故障。如果我连接调试器(尝试过 J-Link、PEMicro 和 Lauterbach)并想通过调试器的设置启用 SWO,也会发生同样的情况,即 MCU 进入硬故障。
你好,@jakub-holoubek、
很抱歉这么晚才回复。这可能是跟踪的实施和我们的架构出现了问题。目前正在与 SW 团队进行内部讨论。如果有其他情况,我会及时通知你们。
目前,您可以在 S32DS 中创建一个带有 prinft ITM 的新项目,但 retarget_itm 库不能按预期运行。
致以最诚挚的问候,
Julián
你好,@Julián_AragónM、
是的,我使用的是 S32K3-T-BOX 板。这些 TRACE 信号对 ETM 接口有效。但是,我需要通过 JTAG_TDO 引脚使用 ITM 进行通信,因此它被路由到 JTAG 连接器。在使用 SWD 协议而不是 JTAG 的情况下,该引脚用于 SWO 通信,我就是这种情况。
你好,@jakub-holoubek、
你在使用 S32K344 评估板吗?默认情况下,所有 TRACE 信号均为禁用。
致以最诚挚的问候,
Julián
你好@Julián_AragónM,
,感谢您的回复。我检查过这个教程。我遇到的一个问题是,一旦我想写入/读取某些 TPIU 寄存器,MCU 就会出现严重故障。
例如这段代码:
*((volatile unsigned *)(ITM_BASE + 0x400F0)) = 0x00000002; /* "Selected PIN Protocol Register": Select which protocol to use for trace output (2: SWO NRZ, 1: SWO Manchester encoding) */
*((volatile unsigned *)(ITM_BASE + 0x40010)) = SWOPrescaler; /* "Async Clock Prescaler Register". Scale the baud rate of the asynchronous output */
一旦尝试设置其中一个寄存器,MCU 就会出现硬故障。我在 ARM M7 内核的参考手册中发现,TPIU 没有在 M7 内核中配置——你能确认一下吗?
或者在写入 TPIU 相关寄存器之前,我还需要设置其他寄存器吗?
你好,@jakub-holoubek、
我认为这个问题应该问世纪佳缘。S32DS 没有其他具体的配置示例,但您可以使用下面的帖子作为指导:
此外,SEGGER 的知识库中还有专用的 J-Link SWO 查看器页面:J-Link SWO Viewer ——SEGGER 知识库 & UM08001 J-Link/J-Tr ace 用户指南——SEGGER 知识库 。
致以最诚挚的问候,
Julián
例如本文:在 S32 Design Studio 中支持单线输出 (SWO),由 PEmicro 的 GDB 服务器启用最好能提供更多详细信息,包括源代码。