TRACE32——Go.direct

TRACE32——Go.direct

TRACE32调试过程中,会经常对芯片/内核进行控制,比如全速运行、暂停、单步等等。这篇文章先介绍全速运行Go.direct :

Go   //等同于Go.direct

Go命令一般用于控制芯片/内核的全速、实时运行,命令不区分大小写,也可以缩写成一个字母

g

该命令等同于TRACE32主界面点击如下快捷按钮:

图片

或者等同于TRACE32菜单栏的Run-Go按钮

或者使用键盘F7进行控制:

图片

执行Go命令或者点击Go按钮后,TRACE32界面的右下角会显示running,表示当前CPU的状态。

图片

如果此时重复执行*Go*命令或者重复点击Go按钮,会出现错误提示emulation running ,提示您当前CPU已经处于运行状态了。

图片

如果设有**断点(Break.list)/事件捕获(TrOnchip.state)**等停止条件,点击Go按钮后,CPU可能会自动被暂停,TRACE32窗口右下角会显示对应的状态:

除此之外,基于Go命令还有一些衍生的命令或者用法:

结合程序断点使用

正常我们设置好断点后,都需要点击Go,来使CPU内核跑起来并达到断点处:

Break.set myfunc
Go

我们也可以把上面两个命令结合起来:

Go myfunc

这样我们可以把程序一直运行到myfunc函数的入口处。

当然,写地址效果是一样的:

Go 0x40300210

结合读写断点使用

Var.go myvar /Write

这条命令便可以把程序运行到myvar变量被改写的位置。

快速回到上一层函数

有时,当程序正好停在某一个函数内,例如下图的func8(),我希望快速地执行完当前函数的所有代码,并返回到上一层调用者的位置:

图片

我们可以使用如下命令

Go.up

执行完后,可以看到PC指针已经跳出func8()

图片

上面介绍的Go命令,不等同于 System.Mode Go ,也就是说不等同于如下窗口的Go按钮

图片

此处Go按钮的完整作用是:

Step1:复位芯片(如果接有复位信号)

Step2:TRACE32尝试连上芯片内核并建立调试通信

Step3: 控制芯片内核全速运行

关于Go命令的更多介绍,请参考如下文档:

  • <T32安装目录>\pdf\general_ref_g.pdf\Go章节
  • https://www2.lauterbach.com/pdf/general_ref_g.pdf
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值