trace32-将多个地址范围的内存转储到单个二进制文件

cod*_*rio 3 embedded trace32 lauterbach

我正在使用Lauterbach调试器从不同的内存部分转储到二进制文件。到目前为止,我已经设法使用以下方法为每个地址范围生成一个二进制文件

data.save.binary output1.txt var.Range(sDummyArray[startRange1..endRange1])

data.save.binary output2.txt var.Range(sDummyArray[startRange2..endRange2]) 

...
Run Code Online (Sandbox Code Playgroud)

有没有办法将多个二进制(内存转储)文件“拼接”在一起以提供一个二进制文件,或者使用我错过的trace32命令将每个内存转储追加到文件中?

Hol*_*ger 8

要将目标内存中的多个地址范围保存到同一二进制文件,请使用Data.SAVE.Binary带有选项“ / Append” 的命令。该选项将新数据追加到给定文件的末尾。

例如:

Data.SAVE.Binary output1.txt Var.RANGE(sDummyArray[startRange1..endRange1])
Data.SAVE.Binary output1.txt Var.RANGE(sDummyArray[startRange2..endRange2]) /Append
Run Code Online (Sandbox Code Playgroud)

对于TRACE32较早的版本63378,您可以使用调试器的虚拟内存(如果未用于其他用途),如下所示:

PRIVATE &size1 &size2   
&size1=Var.VALUE((sDummyArray+endRange1)-(sDummyArray+startRange1))
&size2=Var.VALUE((sDummyArray+endRange2)-(sDummyArray+startRange2))
Data.COPY Var.RANGE(sDummyArray[startRange1..endRange1]) VM:0
Data.COPY Var.RANGE(sDummyArray[startRange2..endRange2]) VM:&size1
Data.SAVE.Binary output1.txt VM:0++(&size1+&size2-1)
Run Code Online (Sandbox Code Playgroud)

因此,这里的想法是通过Data.COPY虚拟内存收集所有数据,然后将其保存到二进制文件中。