工具/软件:Code Composer Studio
Windows 10 Pro 64位、基于 x64的处理器
Code Composer Studio 版本:8.2.0.00007
MSP430F1612、MSP430-FET430UIF V1.4a
我如何获取被调用函数的日志以及每个调用的时间戳? 这是可行的吗?
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.
工具/软件:Code Composer Studio
Windows 10 Pro 64位、基于 x64的处理器
Code Composer Studio 版本:8.2.0.00007
MSP430F1612、MSP430-FET430UIF V1.4a
我如何获取被调用函数的日志以及每个调用的时间戳? 这是可行的吗?
感谢您的回复。 我将了解一下这一点。 我用 Doxygen 和 Graphwiz 生成了调用图、我想其目的是相似的。
我一直在寻找更多信息并找到调试脚本服务器。 我在 YouTube 上观看了此视频。 大约13.00分钟时、输出将非常有用。 这对于 MSP430是可行的吗?
[引用 user="Jerker Dahlblom">我一直在寻找更多信息并找到调试脚本服务器。 我在 YouTube 上观看了此视频。 大约13.00分钟时、输出将非常有用。 这对于 MSP430是否可行?[/quot]
如果启用了日志记录、DSS 将生成 DSS 日志。 可以为任何目标启用此日志记录:
http://software-dl.ti.com/ccs/esd/documents/users_guide/sdto_dss_handbook.html#logging
谢谢
Ki
我正在尝试弄清楚如何查看代码 DSS 中的位置。 此代码不起作用、我无法从 CCS 8提供的示例中找到任何确切答案。 [现在是否在断点 x 处的 DSS ]?
我还发现我不能对断点使用代码标签,例如"label1:",因为编译器优化需要设置为1,以删除所有标签。 但现在这并不重要、因为我目前基本上无法了解 DSS。 例如、此 JavaScript 不起作用。 我没有找到匹配项。 我通过 CSS 在这些位置添加了正常断点、它们在从 CSS 进行调试时起作用。
script.traceWrite ("设置断点"); var mybreakpoint1 = debugSession.breakpoint.add("J32.c"、1289); var mybreakpoint2 = debugSession.breakpoint.add("J32.c"、1293); script.traceWrite ("调用目标运行"); debugSession.target.run(); script.traceWrite ("目标运行后"); var foundBreakpoints = 0; while (foundBreakpoints < 2){ var PC = debugSession.expression.evaluate ("PC" ) if (PC = mybreakpoint1){ script.traceWrite ("我的断点1:0x"+ long.toHexString (mybreakpoint1)+"|在计数器0x"+ long.tract0x ( x)+ mybreakpoint+ myst&dx)+ mystring+ mystr (dx)+ mystring+ mystr&dx (mybreakpoint+)+ mystrand+ mystr&dx (dx)+ mystrand+ mystr&d&d&d&d&dx) foundBreakpoints++; } if (foundBreakpoints < 2){ debugSession.target.run(); }
犀牛没有帮助。 已尝试运行异步,但仍然不支持 SLEE()或为异步函数设置回调函数。
在这些论坛中搜索"debugSession.breakpoint.add"提供的线程数量惊人。 我是否认为 DSS 不再真正得到发展? 一只被困在海滩上的大鲸鱼? TI 关于2013年主题的视频几乎没有什么看法、总体印象是未使用 DSS。 与 DSS 适用于夜间测试的视频陈述相比、批量回归测试?
[引用 user="Jerker Dahlblom"]我能否将这些函数与位于调试文件夹中生成的*。map 文件中的存储器信息一起使用、编写一个脚本、输出函数调用图? [/报价]
我想这是可能的。 尽管这将是一个非常相关的过程。 祝您好运!
[引用 user="Jerker Dahlblom"]目标在我停止之前运行了多少?[/quot]
这是完全可变的。 从 DSS 的角度来看、您可以在运行后立即停止它
[引用 user="Jerker Dahlblom"]我可以通过某种方式使用时钟吗?
配置文件时钟用于计算执行之间的周期数。 有关时钟的更多详细信息、请参阅:
http://software-dl.ti.com/ccs/esd/documents/ccs_counting_cycles.html#profile-clock
请注意、启用系统配置时钟将使用仿真资源。 这与器件在设置硬件断点和观察点时使用的资源相同。 MSP 上的此资源数量非常有限、因此需要考虑这一点。
谢谢
Ki
很明显、我可以在特定时间内异步运行目标、暂停目标、添加断点、然后在那里同步运行目标。 因此它似乎可以正常工作。
这是第一个原型脚本、它似乎可以在其中工作。
script.setScriptTimeout(120000) var j32Flag = debugSession.symbol.getAddress ("ui16_J32Flag"); flaglockresource = debugSession.symbol.getAddress ("LockRessource"); var bpSet = false; script.traceWrite ("调用 runAsynch"); debugSession.target.runAsynch(); var counter = 0;var j32OldValue1 (while starting <-ldValue1);var -ramp1 (voltureWrite) if (!bpSet){ Wait (25000); } if (!bpSet){ debugSession.target.halt(); //根据 lineNumber 在源文件中设置断点 var 文件名="Code.c"; VAR linenumber = 714; script.traceWrite ("在"+ lineNumber 中为文件"+ fileName +"设置断点); var breakpoint1 = debugSession.breakpoint.add(filename、lineNumber); bpSet = true; debugSession.target.run(); } var PC = debugSession.expression.evaluate ("pc") script.traceWrite ("程序计数器停止@ 0x"+ PC.toString (16)); var j32flagValue = debugSession.memory.ReadData (0、j32Flag、16、false); var lockresourceValue = debugSession.memory.ReadData (0、lockresource、16、false); /*if (j32flagValue!= j32flagOldValue || lockresourceValue!= lockresourceOldValue){ 打印("-------------------------------------------------------- "); }*/ if (j32flagValue!= j32flagOldValue){ printVariable ("ui16_J32Flag"、j32flagValue); j32flagOldValue = j32flagValue; } if (lockresourceValue!= lockresourceOldValue){ printVariable ("LockRessource"、lockresourceValue); lockresourceOldValue = lockresourceValue; } COUNTER++; //继续运行 debugSession.target.run(); }