在Cortex R5上快速输出用户数据

问题描述 投票:0回答:1

我正在尝试将Cortex R5上的一些用户数据,字符系列输出到PC。问题是uart对于数据量太慢而且我正在寻找更快的东西。我希望可以使用ITM,但遗憾的是,这只适用于Cortex M系列。该数据包含有关流程的状态信息,我希望这些流程可视化以获得更好的洞察力。

Uart的最大速度为921600波特,因此我正在寻找比这更快的东西。我正在寻找2-5 Mbit。

我找到了DCC(调试通信通道)和ETM的信息,但我无法确定它们的速度以及如何将它们与用户数据一起使用而不是跟踪数据。

我有访问跟踪器和调试器(Green Hills SuperTrace和Realview ICE)所以要求那些没有问题。我只是无法弄清楚如何读取数据。也许我错过了明显的?

编辑:现在看起来最简单的方法就是绕过CP2105,将我的uart限制在921600.我会将SoC的RX / TX引脚连接到RPi,这应该能够获得更高的波特率。当然,我还需要一个逻辑电平移位器,因为SoC只能容忍2.5V(74LVC245)。如果此设置有效,我将回答我的问题。感谢您的投入!

c debugging arm real-time uart
1个回答
1
投票

DCC可能会很慢,并且可能会侵入使用。您只能使用JTAG访问它。

ETM应该能够跟踪此信息,并且您应该能够配置过滤以仅跟踪对特定内存地址的访问。自从我仔细查看ETMv3数据跟踪以来,我已经很长时间了,所以我不确定您是否需要跟踪相关指令。调试工具也倾向于更专注于跟踪指令,数据是一个额外的装饰而不是呈现原始数据流,因此处理数据可能并非易事。

ETM应该在每个周期提供几位数据吞吐量,因此只要数据是小突发,就应该有足够的带宽。显然这是依赖于包的,但是可以实现少量的Gbps(具有大量协议成本取决于您试图通过跟踪流推送的信息)。

在某些芯片中,ETM可以在多个处理器(相同类型)之间共享。如果是这种情况,ETCSCR [14:14]将为非零,然后您只能选择一个核心并跟踪它(直到ETM被禁用/重新编程)。

© www.soinside.com 2019 - 2024. All rights reserved.