我在 7447 处理器上使用劳特巴赫调试器(TRACE32 接口)。我需要通过在 T32 GUI 中运行命令来将多个文件加载到这个处理器上。想法是让脚本完成这项工作。一种方法是调用 startup.cmm 中的单个 .cmm 文件。但这会遇到一个问题,每次 GUI 弹出一个对话框,再次需要手动输入。谁能告诉我如何在 T32 上使用命令行界面来实现相同的功能?
3 回答
目标程序通常使用以下命令加载到 CPU 的内存中
Data.LOAD.Elf myprog.elf
但是,每次您在加载新目标程序之前使用 Data.LOAD.Elf 时,TRACE32 都会删除符号数据库。要禁止使用选项“/NoClear”。
因此,如果您想将多个 ELF(目标程序)加载到 CPU 的内存中,您应该这样做:
Data.LOAD.Elf myprog1.elf
Data.LOAD.Elf myprog2.elf /NoClear
Data.LOAD.Elf myprog3.elf /NoClear
如果您在一个 *.cmm 脚本文件或多个 *.cmm 脚本文件中使用 Data.LOAD 命令,则取决于您,但我会将其放在一个脚本中。不应弹出对话框。
以防有人仍然需要答案。我加载精灵文件的脚本:
flash-elf.cmm:
local &fileName
entry &fileName
print "LOAD &fileName"
IF (!FILE.EXIST(&fileName))
(
PRINT "No elf file was flashed"
ENDDO
// T32 will stay opened
)
DO ~~/demo/powerpc/flash/mpc574xg.cmm "PREPAREONLY" // you should choose your cpu script
FLASH.ReProgram ALL
Data.LOAD.Elf &fileName
FLASH.ReProgram off
SYStem.ResetTarget
GO
QUIT
将其保存在您的主目录(或 bin,或 PATH 指向的任何目录)甚至 t32.config 旁边(安装 T32,这就是我使用的)
现在从 CMD 我打电话
t32mppc.exe -s ~~/flash-elf.cmm my.elf
这是关于如何通过 TCP/UDP 控制 T32 的答案 https://stackoverflow.com/a/39400777/4875690
我遇到了同样的问题,最后,我发现弹出对话框是从PRACTICE Script (.cmm)创建的。
因此,只需检查您的 PRACTICE Script (.cmm) 并删除创建弹出对话框的代码。
下面的代码是从 PRACTICE Script (.cmm) 创建是/否对话框的代码示例
LOCAL &result
DIALOG.YESNO "Program FLASH memory?"
ENTRY &result
IF &result==FALSE()
ENDDO
PRINT "User clicked Yes."
上面的例子来自这里(https://www2.lauterbach.com/pdf/ide_ref.pdf)。
如需通过命令行控制 trace32,请查看此(通过命令行控制 trace32)。