本文主要是介绍Python RCL 调试劳德巴赫,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Python RCL 调试劳德巴赫
-
比较旧的调试方式是TRACE32 Remote API, 看起来比较麻烦
-
新的是RCL
-
trace32的安装路径下有官方的python教程, 用浏览器可以打开
<path>/demo/api/python/rcl/doc/html/index.html
-
需要先安装python库, 也在trace32安装路径下
<path>/demo/api/python/rcl/doc/dist
pip install lauterbach_trace32_rcl-latest-py3-none-any.whl
-
原理是python与Trace32客户端通过TCP通信, 所以需要先配置
config.t32
文件, 填入端口等等<mandatory blank line>RCL=NETASSIST PORT=20000 PACKLEN=1024RCL=NETTCP PORT=20000<mandatory blank line>
-
然后先打开trace32, 再在python中连接
import lauterbach.trace32.rcl as t32 dbg = t32.connect(node='localhost', port=20000, protocol="TCP", timeout=10.0) dbg.print("Hello World!")
-
点进rcl可以看到提供的接口, 这里用类封装了一些常用的, 比如调用cmm脚本, 打印, 暂停, 继续, 设置系统变量等; 还有设置地址,变量,控制内存,断点等等功能
import lauterbach.trace32.rcl as t32
import datetime
import timedef time_now():return datetime.datetime.now().strftime("[%Y-%m-%d %H:%M:%S]")class classLauterbach():def __init__(self) -> None:self.dbg = t32.connect(node="localhost", port=20000, protocol="TCP", timeout=10.0)def print(self, msg):self.dbg.print(msg)def my_script(self):self.dbg.cmm(cmd="./my_script.cmm", timeout=15.0)def pause(self):self.dbg.break_()self.dbg.print(f"{time_now()} mcu pause")def go(self):self.dbg.go()self.dbg.print(f"{time_now()} mcu go")def system_down(self):self.dbg.cmd("SYStem.Mode Down")self.dbg.print(f"{time_now()} mcu system down")def system_up(self):self.dbg.cmd("SYStem.Mode Up")self.dbg.print(f"{time_now()} mcu system up")if __name__ == '__main__':Lauterbach = classLauterbach()Lauterbach.system_up()print(f"{time_now()} system up")time.sleep(30)Lauterbach.pause()time.sleep(30)Lauterbach.go()time.sleep(30)
ref
Python 脚本调用trace32自动执行
这篇关于Python RCL 调试劳德巴赫的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!