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自动执行

相关推荐
用户83562907805126 分钟前
Python 实现 Excel 页面布局与打印设置自动化
后端·python
_Jimmy_1 小时前
AI应用开发工程师面试题库
人工智能·python·深度学习·机器学习·知识图谱
用户8356290780511 小时前
Python 实现 Excel 命名范围(Named Range)的创建与管理
后端·python
dreamer_83992 小时前
AI智能合同比对系统:从零搭建实战教程
人工智能·python
AOwhisky2 小时前
Python 学习笔记(第十五期)——运维自动化(下·后篇):堡垒机实战——paramiko高阶篇
运维·python·学习·云原生·自动化·运维开发
观察员3 小时前
带你用一个 Python 图书系统,通关封装继承多态
python
林泽毅4 小时前
PyTRIO快速入门(一):概念、推理与训练
人工智能·python·深度学习·机器学习·语言模型
admin and root4 小时前
「移动安全」安卓APP 反编译&frida脱壳技巧分享
android·开发语言·python·web安全·微信小程序·移动安全·攻防演练
科芯创展4 小时前
3.5A,60VIN,异步降压芯片,XZ1815
单片机·嵌入式硬件
茯苓gao4 小时前
嵌入式开发笔记:Qt信号槽机制深度解析——从原理到实战的全方位指南
开发语言·笔记·嵌入式硬件·qt·学习