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.

[参考译文] TMDSCNCD28035ISO:如何读取硬件性能计数器?

Guru**** 2587345 points
Other Parts Discussed in Thread: TMS320F28035, TMS320F28379D, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/874104/tmdscncd28035iso-how-to-read-hardware-performance-counters

器件型号:TMDSCNCD28035ISO
主题中讨论的其他器件:TMS320F28035TMS320F28379DC2000WARE

您好!

     我目前拥有这 款 Piccolo TMS320F28035隔离式 controlCARD、我正在为其购买集线站/基板。

卡:

http://www.ti.com/tool/TMDSCNCD28035ISO

集线站:

https://www.ti.com/tool/TMDSDOCK28035

微型逆变器基板:

http://www.ti.com/tool/TMDSSOLARUINVKIT#technicaldocuments

我还具有此使用 TMS320F28379D 芯片的 LaunchPad XL:

http://www.ti.com/tool/LAUNCHXL-F28379D#0

我想知道是否有从微控制器读取硬件性能计数器的方法。 我计划通过 code composer studio 编写一些代码并在电路板上运行。 在执行此操作时、我想读取任何可用的 HPC 值。 我不确定如何解决这个问题。 如有任何建议或建议,请提出。 谢谢!

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

    您好、Abraham、

    如果要对代码进行配置、可以使用器件中可用的 CPU 计时器。 该模块允许您启动和停止计数器并读取计数器值。  

    另一个选项是使用 CCS 中可用的配置文件时钟功能(Run->Clock)。

    谢谢、此致、

    Veena

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

    您好、Veena、

            很抱歉耽误你的回答。 您能详细说明一下如何利用 CPU 计时器吗? 我找到了“Run->Clock”,并启用了它,但我不确定时间显示在哪里,或者我可以在哪里设置要跟踪的 HPC。  

    谢谢、

    亚伯拉罕·库鲁维拉

            

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

    您好、Abraham、

    有关 CPU 计时器硬件的更多详细信息、请参阅器件 TRM。 C2000ware 包括 CPU 计时器的驱动程序支持、并提供了一个展示如何配置计时器的示例。

    CCS 中的时钟功能可在 CCS 的右下角查看。

    此致、

    Veena

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

    您好、Veena、

            我看了 CPU 定时器示例、我仍然对读取硬件性能计数器的方式感到困惑? 如果我对您的理解正确、您告诉我要使用 CPU 计时器/中断来读取程序中的变量值吗?  理想情况下、我希望运行一些代码、然后能够每隔几毫秒检查高速缓存缺失、分支缺失、LLL-负载缺失等的数量是多少、我不关心实际的程序变量值(我不调试代码)。  这甚至可以通过 Code Composer Studio 实现吗? 如果您熟悉 Linux 中的"perf stat"命令、我将尝试在 TI 电路板上执行与我所使用的相同的操作。  

    谢谢、

           亚伯拉罕·库鲁维拉

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

    您好、Abraham、

    CPU 定时器只是一个每个周期递增的计数器。 它可用于计算应用所花费的周期。 例如、如果您想对 ISR 进行分析、可以在 ISR 开始时启动计时器、在 ISR 结束时停止计时器。 计数器值将提供 ISR 所花费的周期。

    如果有办法获得您正在寻找的信息、我会再给您回复。

    此致、

    Veena

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

    您好、Veena、

            感谢您的更新。 虽然 CPU 定时器看起来很有趣、但它只是我所需的一小部分。 我计划培训具有许多功能的机器学习分类器、这就是我需要访问尽可能多的性能计数器的原因。 期待您的更新。

    谢谢、

           亚伯拉罕·库鲁维拉  

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

    您好、Veena、

            读取性能计数器是否有更新?  

    谢谢、

           亚伯拉罕·库鲁维拉  

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

    亚伯拉罕

    我们需要进一步澄清您的请求。  我们对性能计数器的解释可以计算特定段或代码段所需的 CPU 周期数。  我将在下面详细介绍这些选项、但如果我的理解不正确、请告诉我。

    Veena 提到的手动选项是使用 CCS 内的断点和"profiler"时钟。   

    此功能可通过 DSS (调试服务器脚本)访问、DSS 可通过 Perl 等外部脚本访问 CCS 根函数。  这将允许您对多个函数进行配置并以编程方式记录结果、只要您与器件有 JTAG 连接(这是数据传输)

    有关性能评测的特定部分位于 https://software-dl.ti.com/ccs/esd/documents/users_guide/sdto_dss_handbook.html#profiling、 但通常最好阅读 DSS 以查看示例和语法。

    Veena 提供的另一个选项、更多的是独立 POV、它使用 C28x 内核上的3个 CPU 计时器作为计数器。  这需要通过编写/构建 C 代码来控制、以在 C28x 上运行、而不是与上述 CCS 或 DSS 相关。

    最棒的

    Matthew

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

    您好、Matthew、

             我浏览了您发送给我的链接、我认为这正是我所寻找的。 不过、我有几个问题。 要对许多事件进行性能评测、是否有任何显示所有可用事件的函数或文档?  我在文档中看到了这些事件("events.l1d.hit.summary"、"events.l1d.miss.summary"、... "events.L1p.HIT")、但我是否可以利用更多事件? 对于使用 DDS、似乎我要编写一个脚本来调用我要执行的 C 代码、并为我要监视的 C 代码事件设置配置文件、这是正确的吗? 最后、我想知道我需要获取什么 JTAG 连接。 我目前有:  

    卡:

    http://www.ti.com/tool/TMDSCNCD28035ISO

    集线站:

    https://www.ti.com/tool/TMDSDOCK28035

    最棒的

    亚伯拉罕·库鲁维拉

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

    亚伯拉罕

    我需要进一步研究您的第一个问题;但对于 JTAG 问题、由于您有一个控制卡、JTAG 探针通过 USB 连接内置到卡本身中。  

    该特定卡具有 XDS100v1类型的仿真器。  您的扩展坞也具有相同的实现方式、但由于28035ISO 上的隔离、您需要使用扩展卡上的 USB 连接器(USB mini)与扩展坞上的 USB 连接器(USB Type B 连接器)。  电源仍将来自坞站。

    最棒的
    Matthew

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

    亚伯拉罕

    查看原始帖子后进行澄清后、您会提到缓存缺失/分支缺失等  F2803x MCU 没有类似 C6000 DSP 的程序或数据高速缓存。  有一个闪存预取缓冲器、但这只是几个字长。

    这可能会解释您在 DSS 工具中看到的工具集的缺失。  请告诉我这是不是这样、或者在澄清服务器中存在的其他选项方面仍然有价值、我将请我们的软件工具团队的一些人员参与。

    最棒的

    Matthew  

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

    您好、Matthew、

    我对读取尽可能多的硬件事件感兴趣。 请参阅此链接以获得更好的说明:

    https://en.wikipedia.org/wiki/Hardware_performance_counter

    它不一定是分支缺失或高速缓存缺失。 在您发送给我的 DSS 脚本/性能分析部分中、我注意到我们可以对事件进行性能评测、例如"events.l1d.miss。summary"、这正是我要查找的内容。 您说这对我的卡不起作用吗?  

    谢谢、

    亚伯拉罕·库鲁维拉

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

    对于此主题之后的其他人、请检查以下位置有关 Profiler 的讨论是否继续:

    https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/884278

    拉斐尔