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文件, 填入端口等等

    bash 复制代码
    <mandatory blank line>
    
    RCL=NETASSIST
    PORT=20000
    PACKLEN=1024
    
    RCL=NETTCP
    PORT=20000
    
    <mandatory blank line>
  • 然后先打开trace32, 再在python中连接

    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脚本, 打印, 暂停, 继续, 设置系统变量等; 还有设置地址,变量,控制内存,断点等等功能

python 复制代码
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

Python 脚本调用trace32自动执行

相关推荐
飞翔的佩奇1 小时前
【完整源码+数据集+部署教程】表盘指针检测系统源码和数据集:改进yolo11-CA-HSFPN
python·yolo·计算机视觉·数据集·yolo11·表盘指针检测
larance2 小时前
SQLAlchemy 的异步操作来批量保存对象列表
数据库·python
搏博2 小时前
基于Python3.10.6与jieba库的中文分词模型接口在Windows Server 2022上的实现与部署教程
windows·python·自然语言处理·flask·中文分词
XINVRY-FPGA3 小时前
EPM240T100I5N Altera FPGA MAX II CPLD
人工智能·嵌入式硬件·fpga开发·硬件工程·dsp开发·射频工程·fpga
lxmyzzs3 小时前
pyqt5无法显示opencv绘制文本和掩码信息
python·qt·opencv
mit6.8244 小时前
[openvela] Hello World :从零开始的完整实践与问题复盘
c++·嵌入式硬件
萧鼎4 小时前
Python pyzmq 库详解:从入门到高性能分布式通信
开发语言·分布式·python
yujkss5 小时前
Python脚本每天爬取微博热搜-终版
开发语言·python
yzx9910135 小时前
小程序开发APP
开发语言·人工智能·python·yolo
飞翔的佩奇5 小时前
【完整源码+数据集+部署教程】二维码与查找模式检测系统源码和数据集:改进yolo11-CSwinTransformer
python·yolo·计算机视觉·数据集·yolo11·二维码与查找模式检测