【发布时间】:2014-05-27 16:58:58
【问题描述】:
我在 7447 处理器上使用劳特巴赫调试器(TRACE32 接口)。我需要通过在 T32 GUI 中运行命令来将多个文件加载到这个处理器上。想法是让脚本完成这项工作。一种方法是调用startup.cmm 中的单个.cmm 文件。但是每次GUI弹出一个需要手动输入的对话框时都会遇到问题。谁能告诉我如何在 T32 上使用命令行界面来实现相同的功能?
【问题讨论】:
标签: trace32 lauterbach
我在 7447 处理器上使用劳特巴赫调试器(TRACE32 接口)。我需要通过在 T32 GUI 中运行命令来将多个文件加载到这个处理器上。想法是让脚本完成这项工作。一种方法是调用startup.cmm 中的单个.cmm 文件。但是每次GUI弹出一个需要手动输入的对话框时都会遇到问题。谁能告诉我如何在 T32 上使用命令行界面来实现相同的功能?
【问题讨论】:
标签: trace32 lauterbach
目标程序通常使用命令加载到 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 脚本 (.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,请查看此(controlling trace32 via command line)。
【讨论】: