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.

[参考译文] CCS/CCStudio:ScriptAnalysisSession.ScriptActivity.getBufferByName()有什么作用?

Guru**** 2589275 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/606080/ccs-ccstudio-what-does-scriptanalysissession-scriptactivity-getbufferbyname-do

部件号:CCStudio

工具/软件:Code Composer Studio

您好,我想知道函数ScriptAnalysisSession.ScriptActivity.getBufferByName()有什么作用? 该文档仅说明“按名称获取输出DVT缓冲区”,并且在提供的DVT或DSS示例中没有使用它。 有没有更多的解释。 我真正想做的是获取原始跟踪缓冲区数据的访问权限,我认为这可能是一个候选项。是否有办法做到这一点,而不是仅导出到CSV文件?


谢谢!

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

    您好,Akria,

    要获取原始跟踪缓冲区数据,您可以执行与正在执行的操作类似的操作,例如<CCS Install>\ccsv7\CCS_base\scripting\examples\DVTExamples\HardwareTraceAnalyzer\liveExamples\jsFiles\PCTrace_XDS560-js。

    您不需要处理缓冲区,而需要处理名为‘跟踪查看器’的主数据提供方,请参见脚本中使用findDataProviderByName API的位置。

    缓冲区(PC跟踪用例中不存在,但内存吞吐量 用例中不存在)是包含的数据,它为不同的视图(图形/已处理数据)提供数据,而不是原始数据。

    拉尔夫

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

    拉尔夫

    感谢您花时间回复。 我觉得自己的解释不是很好。 我找到了你给我指出的例子,这很有帮助,但这并不是我想要做的。 问题是,我要运行的程序的长度使得将跟踪数据另存为csv在最后是不可行的,文件会太大(我说的时间很长)。 我真的很想在跟踪数据进入时将其提取出来(大致上,它不必是严格的实时),并进行一些我自己的筛选。 所以我真的想访问缓冲区,而不必等待程序结束,运行分析,然后写入csv。 我希望缓冲区会是这样的,但幸好您已澄清它们不是。 是否有办法完成我所描述的任务?

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

    您好,Akria,

    您的usecase是否可以自行停止CPU收集跟踪,然后重复该过程? 如果可以的话(将参考示例PCTrace_XDS560-js)

    1.运行CPU一段固定的时间( dsC66_0.target.runAsynch(); Thread.sleep(x);) x是您可以轻松收集数据的时间(以毫秒为单位)

    2.停止CPU ( dsC66_0.target.halt ();)

    3.等待数据提供器获取解码的跟踪数据(.DataProvider.waitForEndData();)

    4.发送到CSV (DataProvider.exportDataToCSV(<name>;) 名称是日志文件的名称。

    现在,您只需在循环中重复步骤1-4,并将<name>的值更改为log_0.csv,log_1.csv等。

    注意:当您停止CPU时,它会停止跟踪,重新运行将重置(即清除)缓冲区,因此每次运行之间只会捕获新数据。 。

    拉尔夫

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

    拉尔夫

    感谢您回复我。 不,我认为这不会奏效,我们希望尽可能接近实时,我担心启动和停止。 此外,我觉得这需要大量的时间和记忆。 假设我真的只想跟踪指令的子集几个小时的运行时间,就像每个分支或其他东西一样,我似乎需要访问探测器上的缓冲区来过滤我收到的内容。 有可能吗? 如果我说的不清楚,请告诉我,非常感谢您的耐心。

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

    Akira,

    我已将此线程转发 给同事,以查看是否可以跟踪不连续性。 感谢您的耐心等待。

    此致

    拉尔夫

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

    谢谢! 我很感谢。

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

    您好,Akria,

    关于您的使用案例,您是否使用特定的设备和CPU?  

    遗憾的是,我们目前不支持跟踪数据的实时分析,并且假设您对C66x感兴趣,也不支持跟踪特定指令类型的执行(例如,跟踪每个寄存器分支)。  根据您计划如何处理数据,您可能会对“统计函数分析”功能感兴趣: http://processors.wiki.ti.com/index.php/Statistical_Profiling。  这仍然使用跟踪,但它是统计性质的,因此您可以跟踪较长的时间。

    此致,

    Jason Peck

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

    Jason,

    谢谢! 我会尝试一下。

    Akria