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.

[参考译文] TMS570LS3137:32位 ETM 数据总线上的跟踪指令可能性

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/571889/tms570ls3137-trace-instruction-possibility-on-the-32-bit-etm-data-bus

器件型号:TMS570LS3137
主题中讨论的其他器件:HALCOGEN

我对在 TMS570LS31 HerculesTm开发套件上进行指令跟踪的可能性有疑问。 我对配置 TPIU 寄存器的经验不多(请参阅 错误-1170 论坛主题)、这是我的疑问。 我发现无法写入甚至读取当前端口大小寄存 器(偏移量0x004)、默认情况下、它在复位为0x00000001 (总线宽度)后置1。 我从 CoreSight 组件技术参考手册的8.6.2章节以及连接到 MIPI60端口的数字分析仪上观察到的行为中了解到这一点。 当我启用 TPIU 图形发生器以生成时、我观察到:

  • 对于步1模式、ETMDATA[0]具有3.3V 的电压、其他引脚接地
  • 对于0步长模式、所有引脚均接地
  • 对于 AA/55模式和 FF/00模式、ETMDATA[0]会像时钟一样交替每个周期

有人可以确认这一点吗?

此致、Radek

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

    您好、Radoslaw、

    因此、您在模式中看到的问题是端口的宽度在复位时配置为1位。 要查看所需的完整结果、您需要将端口大小设置为32位。

    在其它的 post/thread ( 错误-1170 )中,您无法访问端口大小寄存器以重新配置它。 事实上、您说这是导致错误的异常的来源。 因此、这是两种情况下问题的根源。 是否已确保您处于正确的器件模式(特权模式)、并且任何 MPU 设置都允许访问寄存器? 此外、我没有看到您写入调试访问密钥以启用其他帖子中您代码列表中的访问。 您必须解锁 CoreSight 调试访问、然后再尝试对其进行读取。 我确实看到您有用于访问密钥寄存器和密钥值的#defines、但在代码中不使用它。

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

    你好、Chuck、

    感谢您让我的问题变得有趣。

    我已经检查了器件模式、它是系统模式(在 CPSR 中 M 位设置为 b11111)。 我还使用该键启用对 TPIU 寄存器的访问。 在 Halcogen 配置工具中、针对第10个区域(地址池0xFF000000-0xFFFFFFFF)设置了读取和写入权限。

    我甚至尝试禁用 MPU。

    我发现访问其他 TPIU 寄存器时、偏移量为0x204 (当前测试模式/模式)和0x208 (测试模式重复计数器)、也会导致-1170 DAP 错误。 几天前、我尝试通过以下步骤打开 ETM 来跟踪所有存储器:

    要跟踪所有存储器:
    •将寄存器0x009 ETMTECR1中的位[24]设置为1
    •将寄存器0x009 ETMTECR1中的所有其他位设置为0
    •将寄存器0x007 ETMTECR2中的所有位设置为0
    •将寄存器0x008 ETMTEEVR 设置为0x6f (真)。

    但没有成功。 在进行此类实验之后、我失去了对具有0x204偏移的 TPIU 寄存器的访问(当前测试模式/模式)。 我知道这一点是因为我可以在前面设置图形发生器来切换 ETMDATA[0]引脚。

    是否有可能浪费注册的机会?

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

    只是一个较高层次的问题-您计划如何处理 ETM 产生的数据? 它是压缩数据、有一个相当复杂的软件体、需要对其进行后处理和解压缩。 因此、仅捕获原始数据可能不会告诉您至少有关指令流的信息。

    您是否试用过像processors.wiki.ti.com/.../XDS_Pro_Trace'这样的工具 ?它会为您配置所有寄存器、因此您只需在 GUI 中打开跟踪、而无需担心寄存器写入。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Anthony、

    五年前、我听说过 ARM CoreSight 指定的指令监视器的硬件支持。 三年后、我有幸与 Hercules 董事会合作。 在工作过程中、我注意到了 TMS570的 MIPI60插槽和连接的 ETMDATA 引脚、并开始考虑获取指令跟踪。 对于我的工作、了解执行的代码片段以及不执行的代码片段对于生成可靠的代码非常重要。 我不想在每个项目中为此目的购买昂贵的特定工具、因为使用了其他调试技术。 我想通过自己的简单适配器和逻辑分析仪发现 ARM 嵌入式跟踪 Macrocells 的可能性。 您能否解释一下为什么我在访问某些 TPIU 寄存器时遇到问题?

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

    遗憾的是、我们没有任何种类的 AppNote 或文档来展示如何执行此操作;它通常由主题专家创建的工具处理; 要执行此操作的“步骤”不是任何人类可读的格式,就像您可以研究的 XML 文件一样--据我所知,这些步骤是在仿真 DLL 中编译的。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我注意到、在读取当前端口大小 TPIU 寄存器(0xFFA03004地址)期间、会发生外部同步中止数据异常。 当处理器的 AXI 主端口访问外设寄存器时、可能会发生这种情况。 在这种情况下、AXI 从器件可能会以 SLVERR 错误进行响应(例如、当在 cortex-R4中进行独占访问时)。

    有人可以确认这一点吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我找到了访问 TPIU 寄存器问题的答案:)
    答案在 TMS570LS3137 (SPNS162C–2012年4月–2015年4月修订)数据表文档6.21.7.1章节中。 写入以下重要信息:"在开始访问 TPIU 寄存器之前、TPIU 应通过 coresight 密钥解锁、1或2应写入该寄存器。"、"该寄存器的地址为 TPIU 基地址+ 0x404"。 这意味着要访问所有 TPIU 寄存器(尤其是来自 TPIU 串行器或图形发生器控制的寄存器)、您应设置它们的时钟。