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.

[参考译文] TMS570LC4357:Segger JTrace 调试探针的跟踪问题、不兼容的 ARM 跟踪实现

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/846612/tms570lc4357-trace-issue-with-segger-jtrace-debug-probes-non-compliant-arm-trace-implementation

器件型号:TMS570LC4357
主题中讨论的其他器件: SEGGERTMDX570LC43HDK

我们正在尝试使用 TMS570LC4357器件使跟踪正常工作。 我们使用自己的定制板、ARM coreSight 20连接器和 Segger JTrace 探针。 我们已经验证了原理图、并将正确的迹线引出至连接器。 每条线路由一个20欧姆电阻器端接的源极。 每条线路也被列为一个缺省输出并且不需要被引脚复用。

我们在 TI 论坛中查看了一些关于解锁 TPIU 寄存器、配置 TPIU 跟踪时钟输出以及启用跟踪漏斗中的从端口0的帖子。 我不确定所有步骤、但似乎应该通过连接到器件的跟踪探针来完成这些步骤。

联系 Segger 后、他们的回答是:

TMS570LC4357似乎实现了不遵循 ARM 标准程序的跟踪。 您能否提供有关其存在的任何偏差的信息、或者需要采取哪些步骤来利用此器件上的迹线? 如果有某些寄存器需要配置或写入、我们可以尝试在我们自己的软件中实现缺失的步骤。

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

    您好!

    我正在与仿真开发团队一起检查、以查看是否对此有任何具体的评论。  

    但是、我发现 Lauterbach 和 ARM DS-5都提到了对 TMS570 ETM 的支持

    文档第261页

    - ARM DS-5DSTREAM

    在这种情况下、我怀疑断开连接位于 Segger 侧、但如果我从开发团队获得其他信息、我将返回到此主题。  

    此致、

    拉斐尔  

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

    您好、Rafael、

    SEGGER 提到了对所有具有 Cortex R4s (1124、3137等)的 TMS570芯片的支持。 具有 Cortex R5-F 的 TMS570LC4357是唯一不受支持的版本。 我也联系了 Green Hills 和 IAR、他们的报告也是一样的。  此问题似乎与 TMS570LC4357本身有关。

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

    您好!

    今天、我和一位非常熟悉 Lauterbach 解决方案的同事一起工作、ETM 工作时没有偏离已经证明可在各种其他目标器件中工作的内容。  

    我们能够以37.5MHz 的默认频率实现32位宽 ETM 运行、唯一需要禁用的设置是 Pod 上的端接线。 我们使用 了 TMDX570LC43HDK 开发套件。  

    Lauterbach Trace 32软件的.CMM 示例脚本附在后供您参考、它使用了其工具已提供的 TMS570LC4357配置。  

    有鉴于此、我将提请 Segger 注意此主题、看看这是否会带来其他信息、帮助他们推进此集成。 无论如何、我们都不能承诺通过此渠道支持它们。  

    此致、

    拉斐尔

    e2e.ti.com/.../6404.tms570.zip

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

    您好、Rafael、

    尽管您执行了该测试并使用 Lauterbach 解决方案获得了32位跟踪、但这并不表示在后台执行了哪些操作来启用跟踪。 没有偏差、您的确切含义是什么? 您是否了解 Lauterbach 调试器执行的步骤?

    由于您提到了32位布线、我假设您使用 的是 TMDX570LC43HDK 上的 MIPI60连接器。 我们使用的连接器是 ARM CoreSight 20、它是 ARM 选择的标准连接器、提供4位跟踪总线。 TMS570LC4370的 ETM 模块是否有任何规格或要求? 是否有所需的最小总线宽度? 您能否尝试使用 Lauterbach 解决方案配置4位总线宽度的相同测试、以查看其是否正常工作?

    我们陷入了 Segger 和您自己的困境、试图找到解决方案。 如果 Segger 解决方案不能解决问题、我们不介意自己探索和配置必要的模块。 我们并不是特别寻求 Segger 器件的支持、而是寻求芯片上 ETM 实现的支持。 由于您是芯片制造商、我们正在寻找有关 ETM/跟踪实现的详细信息以及启用跟踪功能所需的必要步骤。 器件的 TRM 中几乎没有详细信息、只有一个对 EXTCTL_OUT_Port 寄存器和 TPIU 的引用(第2.4.5节)。 再说一次、仅说 Lauterbach 解决方案在特定配置下工作并不表示该解决方案符合 ARM ETM 标准。

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

    您好!

    [引用 user="Ajay Srivastava">尽管您执行了该测试并使用 Lauterbach 解决方案获得了32位跟踪、但这并不表示正在后台执行哪些操作来启用跟踪。 没有偏差、您的确切含义是什么? 您是否知道 Lauterbach 调试器执行的步骤?

    虽然我不了解 Lauterbach 如何在此器件上初始化 ETM 的完整详细信息、但我们没有在配置寄存器或路径配置路由中对工具(也没有报告任何突出的内容)使用任何特定设置或权变措施。 还有另一个线程 也声明了这一点。  

    [引用 user="Ajay Srivastava">由于您提到了32位跟踪、我假设您使用 的是 TMDX570LC43HDK 上的 MIPI60连接器。 我们使用的连接器是 ARM CoreSight 20、它是 ARM 选择的标准连接器、提供4位跟踪总线。 TMS570LC4370的 ETM 模块是否有任何规格或要求? 是否有所需的最小总线宽度? 您能否尝试使用 Lauterbach 解决方案配置4位总线宽度的相同测试、以查看该测试是否正常?

    虽然针对 Cortex M 内核指示了 ARM CoreSight 20引脚连接器(参考)、但我们在此处成功测试了电路板上的4位数据采集+ Lauterbach 跟踪 Pod。  在第一轮测试中、我们进行了8、16和32位宽度测试。  

    我唯一能看到它可能会使您跳闸的是 ETMTRACECLKIN、 ETMTRACECLKOUT 和 ETMTRACECTL 引脚的引脚多路复用配置-前四个 ETMDATA 引脚是专用的。

    [引用 user="Ajay Srivastava">我们陷入 Segger 和您自己的困境,试图寻找解决方案。 如果 Segger 解决方案不能解决问题、我们不介意自己探索和配置必要的模块。 我们并不是特别寻求 Segger 器件的支持、而是寻求芯片上 ETM 实现的支持。 由于您是芯片制造商、我们正在寻找有关 ETM/跟踪实施的详细信息以及启用跟踪功能所需的必要步骤。[/quot]

    我找不到任何相关信息。 如果我发现任何相关信息、我会报告。   

    此致、

    拉斐尔

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

    TMS570LC43x 数据表包括访问 TPIU 寄存器之前需要遵循的以下程序。 您能否检查是否正确遵循了此序列?

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

    上面的屏幕截图看起来是来自较旧的数据表、或者是该系列中的另一个处理器的数据表。  在 TMS570LC4357 TRM 中、它实际上指定器件包含一个 ETM-R5模块、而不是 ETM-R4:

    在 ARM ETMv1-3.5规范中、没有解锁 TPIU 寄存器的参考、仅从 ETMLAR 寄存器解锁 ETM 寄存器。 (请参阅 ARM ETMv3架构规范的第3.5.60节)。 在 TMS570LC4357 TRM 中、除了本节之外、我还找不到任何其他提到配置或解锁 TPIU 的参考。 TRM 也不指定 coreSight 密钥是什么。 假设它是 ETMv3规范第3.5.60节中指定的0xC5ACCE55。 写入此密钥时也没有指定的偏移量。 我已经尝试了0x3EC (ETMLAR 偏移量)和0xFB0

    我不知道 Segger 探头是否按照此过程配置 TRACECLKIN。 设置 ETMTRACECLK 看起来也不像启用跟踪的标准过程中的一部分。

    无论如何、我已经手动尝试过它、但没有成功、方法是将以下内容添加到我们的启动序列中、该序列在跟踪探头连接之前执行:

    同样、如果您可以提供有关启用跟踪所需的所有步骤或完整过程的详细信息、这将有助于我们缩小存在的偏差或缺失的偏差。 在没有任何额外步骤的情况下、芯片本身仍然不是100%符合 ETMv3规范。

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

    在基于 Cortex R5F 的器件上启用 CPU 跟踪输出时、需要执行以下序列:  

    1. 启用对 CoreSight 跟踪漏斗控制寄存器的写入访问
      1. 将0xC5ACCE55写入地址0xFFA0_0FB0处的 CoreSight 锁定访问寄存器
      2. 读取地址0xFFA0_0FB4处的 CoreSight 锁定状态寄存器以确保写入访问被启用、即位1被清除
    2. 启用从端口0以使核心0跟踪输出到跟踪漏斗
      1. 对地址0xFFA0_0000处的 CSTF 控制寄存器执行读-修改-写操作并设置位0
    3. 在 VCLK 和 ETMTRACECLKIN 之间选择作为 ETM 跟踪时钟源
      1. 将 EXTLOUT[1:0]=“01”(对于 VCLK)或“10”(对于 ETMTRACECLKIN)写入地址0xFFA0_3404的控制寄存器

    请注意、上述序列中的跟踪漏斗控制寄存器地址与您写入的地址不同。 锁定访问控制寄存器是 CoreSight 跟踪漏斗控制寄存器的一部分、而不是 TPIU。 CoreSight 参考手册对此进行了说明。