文章目录
1. cmm脚本命令
cmm脚本自动化操作Trace32的常用命令如下:
注:
1.cmm脚本命令不区分大小写
2.;分号为cmm脚本的注释
1.1 重启单板
SYStem.RESetTarget
r.s pc _start
注:
SYStem.RESetTarget相当于执行了可视化界面中的In Target Reset
1.2 文件操作
; 打开 result.txt 文件,如果文件不存在就创建
OPEN #1 D:\result.txt /CREATE
; 关闭 result.txt 文件
CLOSE #1
注:
#1就是文件指针,相当于f=open("result.txt","wb")中的f
1.3 打印、观测和设置变量
1.打印变量
; 将 result.txt 设置为用于打印变量的文件
Printer.File D:\result.txt
; 表示把 g_result 变量打印到文件中(打印单个变量),此时会打印到 D:\result.txt 文件中
winprint.var.watch g_result
; 表示把 g_result1 和 g_result2 变量打印到文件中(打印多个变量)
winprint.var.watch g_result1 g_result2
2.观测变量
; 在watch窗口显示 g_result 变量的值(观测单个变量)
Var.Watch g_result
; 在watch窗口显示 g_result1 和 g_result2 变量的值(观测多个变量)
Var.Watch g_result1 g_result2
3.设置变量值
; 设置变量 g_result 的值为1
V %e g_result = 1
1.4 程序运行
1.运行和结束程序
; 运行程序
Go
;停止运行程序
Break
2.运行程序,并走到函数内部停下(断住)
; 运行程序,走到 max 函数首行停下
Go.direct max
; 运行程序,走到 max 函数内部停下
Go.direct max+0x08
注:
1.max+0x08,其中的0x08为相对于max函数首行的偏移量
2.想要知道函数内部某行的断点地址是多少,可以先手动断点跑,断住以后观测劳特巴赫左下角就能知道断点地址
1.5 断点
1.打断点
; 在 max 函数首行打断点
Break.Set max
; 在 max 函数内部打断点
Break.Set max+0x08
2.取消断点
; 清除所有断点
Break.Reset
; 清除某个断点
Break.Reset 断点地址
1.6 延时等待
; 延时等待1秒
wait 1.s
; 等待上一条命令执行结束
Wait !run()
注:
Go.direct等命令,需要配合Wait !run()命令使用,否则脚本运行的时候可能会报错,因为程序运行到某个函数还需要时间,如果还没运行到此处,就执行下一条命令,可能会报错。
例:以下命令表示,运行到max函数,然后返回函数的值
Go.direct max
Wait !run()
Go.Return
解析:如果说,此时还未走到 max 函数中,就执行了Go.Return语句,那么此时没有值可以返回,就会报错,因此此处需要加上 Wait !run()
1.7 加载源代码
; 加载Code文件夹下的源代码
y.spath.SetRecurseDir D:\Code
注:
test.cmm脚本是用例烧录elf的 cmm 脚本
2. 使用python调用cmm
t32rem.exe 可以用于执行cmm命令,根据Trace32的默认安装路径可知,t32rem.exe 的默认路径为 C:\T32\bin\Windows64\t32rem.exe
t32rem.exe既可用于执行单行cmm命令,也可以用于执行cmm脚本。
2.1 使用python执行单条cmm命令
语法如下:
t32rem.exe localhost port=20000 cmm命令
使用python执行cmm命令:以重启单板为例
import os
# 重启单板并运行
cmd1 = "C:/T32/bin/Windows64/t32rem.exe localhost port=20000 SYStem.RESetTarget"
cmd2 = "C:/T32/bin/Windows64/t32rem.exe localhost port=20000 r.s pc _start"
cmd3 = "C:/T32/bin/Windows64/t32rem.exe localhost port=20000 Go"
os.system(cmd1)
os.system(cmd2)
os.system(cmd3)
2.2 使用python执行cmm脚本
语法如下:

最低0.47元/天 解锁文章
1万+






