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/TMS320C6657:自定义系统跟踪崩溃CCS

Guru**** 2538460 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/567235/ccs-tms320c6657-custom-system-trace-crashes-ccs

部件号:TMS320C6657

工具/软件:Code Composer Studio

尊敬的TI支持团队:

我也在使用CCS v 7.0 0和6.2 v v 0。 我将尝试像发送STM消息一样发送printf,并且我正在使用CTOOLS库。 如果我通过"Custom System Trace"(自定义系统跟踪)向导录制STM消息,那么在解码自定义STM消息的过程中,"Trace Viewer"将以无限循环的方式运行。 跟踪CP Tracer消息(例如 内存吞吐量分析)。 您是否有什么想法会出错?

我的代码类似于:

STMHandle* g_pSTMhdl =空;

/**********************************************************************
*初始化STM以进行类似打印的使用。
*/
void stmPrintfOpen()
{
	STMBufObj*		STM_buf = NULL;
	STMConfigObj	STM_config;

	IF (g_pSTMhdl != NULL)
		返回;

//初始化STM配置
	STM_CONFIG.xmit_printf_mode = eSend_optimized;		//仅发送const字符串地址
	stm_config.optimize_strings = TRUE;
	STM_CONFIG.STM_XportBaseAddr = STM_xport_base_ADDR;
	STM_CONFIG.STM_CntlBaseAddr = STM_CONFIG_BASE ADDR;
	STM_CONFIG.STM_ChannelResolution = STM_CHAN_Resolution;
	STM_CONFIG.pCallBack = NULL;

	g_pSTMhdl = STMXport_OPEN (STM_BUF,&STM_CONFIG);
}/**************************************************************


*关闭STM以进行类似打印的使用。
*/
void stmPrintfClose()
{
	IF (g_pSTMhdl != NULL)
	{
		STMXport_flush(g_pSTMhdl);
		STMXport_close(g_pSTMhdl);
	}
	g_pSTMhdl = NULL;
}/******************************************************


*输出至STM *的打印示例
*/
void stmPrintfTest()
{
	Int32_t	stm_ch =0;
	int ii,jj;

	stmPrintfOpen();

	/***
	基于STM的打印示例
	*/
	STMXport_printf(g_pSTMhdl, stm_ch,"%s","C66xx",用于ji=800;循环的演示-0
	II++)
	{
		IF ((ii%250)==0)
		{
			STMXport_putShort(g_pSTMhdl, STM_ch,(short)jj );
			jj++;}
		
	STMXport_printf(g_pSTMhdl,
	stm_ch,"%s","C66xx STM演示-结束循环");
	STMXport_flush(g_pSTMhdl);

	stmPrintfClose();
}

感谢你的帮助。

此致

Sven

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

    Sven,

    您使用哪种接收器来捕获跟踪数据(针脚或ETB)? SimpleSTMExample.c应用程序在您的环境中是否适合您?  我注意到您的代码片段没有调用 Config_STM_for _ETB()。  如果未调用此功能,则需要手动配置跟踪导出设置。  跟踪查看器是否实际上冻结或只是不返回数据?

    谢谢!

    标记

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

    我也尝试了ETB和560v2Trace。 在这两种情况下,CCS的STM解码器都在无限循环中运行,它会阻止CCS的GUI。 通过sysinternals的进程资源管理器,我可以看到STM解码器DLL是原因。

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

    您能否重现问题并捕获跟踪日志(processors.wiki.ti.com/.../Emulation_FAQ )我能够在6657上捕获STM跟踪,而在我的环境中没有任何问题。

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

    如何在没有工作的STM跟踪的情况下捕获跟踪日志?
    在我的站点上,捕获基于STMXport_printf()的消息会使CCS崩溃。

    我正在使用3.1 7.0 6.2 v.0和CCS v.0的PSDK.0.6。

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

    您应该能够按照以下步骤启用跟踪日志记录: processors.wiki.ti.com/.../Emulation_FAQ

    启用日志记录后,您可以重现问题以生成日志文件。 STM跟踪不需要工作就能生成此日志文件。

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

    尊敬的Mark:

    抱歉,FAQ的列表对我来说太长了;-)现在我设置了TI_TRACE_LOGING变量,并获得了CCS的trace.log。

    附件是ZIP档案的ti_trace_log文件。 存档文件还包含正在运行的线程的快照和错误线程的堆栈跟踪,作为崩溃期间的屏幕截图供您参考。

    有趣的是,问题仅出现在我的大型OMP项目中。 如果我为STM制作一个具有相同测试功能的小项目,那么它就能工作。 在跟踪文件中,您还可以看到传输已完成,但查看器不会查看任何消息。 它在0 % 上停止,按下RUN (运行)按钮后CCS崩溃。

    你有什么想法吗?

    此致

    Sven

    e2e.ti.com/.../ti_5F00_trace_5F00_log_5F00_113.2017万_5F00_4752.zip</s>4752.

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

    Sven,

    对于CCS7和6.2 0.0.0042万 4.1 安装,是否可以在7.0 0.20.1612万061750</xmt-block>6.175万 中提供内容的名称?  DVT_#.#.#.###########目录可能会因两种安装而异。

    谢谢!

    标记

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

    尊敬的Mark:

    感谢你的帮助。 这是我的两个CCS安装的内容:

    Verzeichnis von D:\ti\ccsv6\CCS_base\DVT_VDI.VICAT\Trace\bin 4.1 05.01
    
    ................................................................2017 10:32 <DIR> 0.20.1609万091143</xmt-block>9.1143万 。
    05.01 2017 10:32 <DIR> 。
    13.12 2016年19:17 136.704 JTrace.dll 09.09
    ................................................................2016 12:13 134.656 JTrace2017-01-05-10-32.dll 09.09
    ................................................................2016 12:13 621.872 libJTrace.so 09.09
    2016 12:13 622.699 libJTrace64.so
    4 Datei (en), 1.515 931字节
    2 Verzeichnis (se),Frei. 107.008 bytes 648.184
    
    
    Verzeichnis von D:\ti\ccsv7\CCS_base\DVT_Verzeichnis 4.1。0.20.1612万061750</xmt-block>6.175万 \Trace\bin 10.01
    
    2017 18:35 <DIR> 。
    10.01 2017 18:35 <DIR> 。
    06.12 ................................................................2016 18:38 136.704 JTrace.dll 06.12
    ................................................................2016 18:38 621.872 libJTrace.so 06.12
    2016 18:38 622.699 libJTrace64.so
    3 Datei (en), 1.381 .................275字节
    2 Verzeichnis (se),648.184 .107.008 bytes Frei. 

    此致

    Sven

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

    Sven,

    您的DVT目录看起来是正确的。 我仍然无法在我的环境中复制。 我认为更多信息可能会有帮助:

    1.什么版本的StmLibrary? 这在标题修订历史中找到。

    2.当解码器挂起时,是否可以保存.TDF?

    3.我使用您的示例代码并进行循环以发送大量STM消息,直到560v2/ETB的跟踪缓冲区溢出并且没有发现问题。  您是否有可以发送的代码示例与您看到的问题重复?

    4.在您的..\User Directory\.TI-trace\data中是否创建了任何数据(.bin或.dcm)? 如果可以,您是否可以清除该目录,重现该问题并发送数据文件夹中的内容?

    谢谢!

    标记

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

    很抱歉我的回复太晚了,我非常忙于处理我的项目的其他一些问题。 您的问题:

    1. 2014年9月29日的STMlib版本5.2 ,来自StmLibrary.h

    2.打开-我将尝试这种行为

    3.我也提出了一个简单的申请,这不是问题。 这个问题似乎只存在于复杂的程序中

    4.打开-我将尝试此行为

    感谢您的帮助,我将在明天回复更多详细信息。

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

    尊敬的Mark:

    至2。

    如果我尝试将隐藏的STM跟踪数据保存到文件中,则CCS v7会完全挂起并崩溃。

    至4。

    我已删除.TI-trace目录,并已重试。 随附的ZIP包含完整的目录内容,包括跟踪日志文件。

    我的*.out文件是否可能太大,容量为145 MB?

    此致

    Sven

    e2e.ti.com/.../ti_2D00_trace_2D00_2017.013万.zip

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

    很抱歉回复延迟。 应用程序代码的大小确实可能导致崩溃。 我将尝试找到一些较大的二进制文件进行测试,这些二进制文件将以此处所述的方式调用STM解码器。 您是否在这个问题上取得了进一步的成功?

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

    我在STM解码器方面没有进一步的成功。

    我的应用程序非常复杂,它包含DAB接收器和DAB调制器。 它使用OMP和SIMD矢量扩展。 该代码还使用带有一些基于BOOST的智能指针的C++。 该应用程序由10个静态库和TI的更多库(NDK,UIA,PDK ...)所产生。

    如果我启动RTOS对象视图,则显示某些数据需要15分钟以上,但CCS在该时间内工作。

    同时,我在使用基于以太网的UIA跟踪方面取得了一些成功。 所以现在,STM解码器的问题对我来说不是真正的问题。 我可以将我的消息作为基于UIA的日志消息进行传输。 有关我的解决方案的详细信息,请访问此处:

    e2e.ti.com/.../56.7465万

    我不想浪费你的时间。 很难找到STM解码器问题的原因。 最后,在小型应用程序中,它可以正常工作,在我的大型应用程序中,相同的代码不起作用。

    请告诉我,如果我能找到问题的原因,请告诉我。

    此致
    Sven