我正在通过lauterbach-trace32探针在物理硬件上测试实时应用程序。

Trace32文档太大而又技术性很强,但是我找不到如何实现所需的工具。我想知道是否有一种方法可以在程序执行中每次到达特定的代码行(被测)时都执行trace32函数。

我需要的是与数据库场景中的触发器类似的东西,每次满足特定条件时都会引发一个自动事件。

谢谢你们!

最佳答案

您始终可以设置一个断点,每次遇到断点时都会执行PRACTICE命令。例如。

Break.Set myFunc /CMD "PRINT ""Hello World""" /RESUME


因此,当到达函数myFunc()时,这将停止目标CPU。然后执行PRACTICE命令PRINT "Hello World",最后您的目标CPU继续执行(由于选项/RESUME)。 (考虑到双引号转义字符串中的双引号)

除了单个命令,您还可以执行更多命令(通过多次使用选项/CMD)或执行PRACTICE脚本。

如果要在特定代码行上触发调试器操作而不停止该代码行上的CPU,则需要使用外部跟踪接口进行实时跟踪。所以例如您将需要具有嵌入式跟踪宏单元(ETM)的ARM CPU或具有Nexus接口的PowerPC。此外,您将需要Lauterbach硬件进行跟踪记录,例如PowerTrace,CombiProbe或uTrace。

如果您具有实时跟踪,则可以在特定的代码行上设置“触发点”,并在“触发点”触发时执行命令。它看起来与断点几乎相同:

Break.Set myFunc /TraceTrigger /CMD "PRINT ""Hello World""" /RESUME


因此,唯一的区别是选项“ / TraceTrigger”。当然,您应该确保实时跟踪在您的设置中真正起作用。

关于testing - 测试期间到达线路时执行个人trace32函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31871565/

10-11 17:24