Python RCL 调试劳德巴赫
2023-12-26 06:11:39
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=1024 RCL=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 time
def 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
文章来源:https://blog.csdn.net/weixin_46143152/article/details/135211371
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!