Embedded trace32关联函数和数据跟踪时间戳

Embedded trace32关联函数和数据跟踪时间戳,embedded,trace32,lauterbach,Embedded,Trace32,Lauterbach,使用Trace32(目前处于模拟模式,但也将使用真实硬件),我正在运行一个演示程序。我希望跟踪函数调用和变量(数据跟踪),因此在中断时,我运行以下命令: trace.EXPORT.CSVFunc <funcfile> PRINTER.FILE <varfile> WinPrint.Trace.ListVar %hex var1 var2 var3 trace.EXPORT.CSVFunc 打印机文件 WinPrint.Trace.ListVar%hex var1 var

使用Trace32(目前处于模拟模式,但也将使用真实硬件),我正在运行一个演示程序。我希望跟踪函数调用和变量(数据跟踪),因此在中断时,我运行以下命令:

trace.EXPORT.CSVFunc <funcfile>
PRINTER.FILE <varfile>
WinPrint.Trace.ListVar %hex var1 var2 var3
trace.EXPORT.CSVFunc
打印机文件
WinPrint.Trace.ListVar%hex var1 var2 var3
这将产生两个结果文件。第一个是包含正时间戳的函数调用(以ns分辨率)。第二个具有数据访问(读取和写入),但它包含负时间戳(分辨率为100 ns)。 到目前为止,我还没有找到任何方法为这两个导出生成不同的时间戳,我也无法以任何方式关联时间。如果我假设my中最后一行的时间戳与time for的0相同,我将从中获得正确的时间戳大小,但它们仍然相差太多。我从代码中知道某些写入更新在特定函数进入/退出之间,因此我可以看到它处于关闭状态


还有人将这两种出口产品结合使用过吗?是否有其他方法可以获取正在使用转换为格式的“当前时间”,或者反之亦然?还是我用错了出口?我还没有找到任何其他好的导出命令,但是有太多的命令,我可能会错过一个明显的命令。

Trace.export.CSVFunc始终导出每个函数项的时间,并且从第一个跟踪记录开始以经过的纳秒的形式存在。(因此,对于Trace.EXPORT.CSVFunc,第一条记录始终具有时间戳0.ns)

不过,默认情况下,窗口Trace.ListVar会显示自上次读取或写入访问以来经过的时间。幸运的是,您可以通过选项/列表指定希望在该窗口中包含哪些列。因此,以下命令显示与普通Trace.ListVar窗口相同的内容,但带有绝对时间戳:

Trace.ListVar /List Run Address CYcle Data Var %TimeFixed TIme.Zero 
在导出该数据之前,使用命令
Trace.zero Trace.first()
将第一条记录的绝对时间戳设置为零,您将拥有与Trace.EXPORT.CSVFunc相同的时间戳

综合起来:

Trace.ZERO Trace.FIRST()    
Trace.EXPORT.CSVFunc <funcfile>
PRinTer.FILE <varfile>
WinPrint.Trace.ListVar %Hex var1 var2 var3 /List Run Address CYcle Data Var %TimeFixed TIme.Zero 
Trace.ZERO Trace.FIRST()
Trace.EXPORT.CSVFunc
打印机文件
WinPrint.Trace.ListVar%Hex var1 var2 var3/列表运行地址周期数据变量%TimeFixed TIme.Zero

也许您还需要考虑命令<强> Trace.Exest.ASCII ,这是我个人最喜欢的。export命令的工作原理与Trace.List窗口几乎相同,但也支持过滤器。例如,要导出对三个变量的访问权限,您可以编写

Trace.EXPORT.Ascii <varfile> CYcle Address Data Var %TimeFixed TIme.Zero /FILTER Address var1 OR Address var2 OR Address var3   
Trace.EXPORT.Ascii循环地址数据变量%TimeFixed TIme。零/筛选器地址变量1或地址变量2或地址变量3

谢谢,这正是我想要的!我将确保使用Trace.EXPORT.Ascii进一步挖掘;它似乎非常强大的过滤,所以我可以得到更多的东西来处理。