Python实现RTT客户端,源码+详细讲解,绝对原创!申请置酷!

2019-12-12 18:13发布

不知道RTT是什么、怎么用的请看下面这两个帖子:
JLINK RTT,完爆各种printf形式,从此swo是路人
开贴研究:JLINK RTT,完爆各种printf形式,从此swo是路人

RTT确实是调试神器,可RTT的电脑客户端太不给力,只能显示文字不说,连复制、清除这些基本功能都没有,所以就想自己做一个RTT客户端出来

经过几天的刻苦 摸索加上神器Python的加持,终于制作出了初版可用的RTT客户端,之前得到很多莫友的各种帮助,所以赶快贡献出来,希望对各位莫友有用。。

首先上效果图:
文本显示:
QQ截图20160319160914.png (6.26 KB, 下载次数: 0) 下载附件 2016-3-19 16:08 上传
unpack函数的第一个参数是解析字符串,,其中16s表示16个字符的字符串,L表示4字节的int,24x表示跳过24字节不管,,struct的更详细的用法可去网站上去搜索看一下
通过对照SEGGER_RTT_CB结构体的定义可以知道上面15个数值的具体含义

至此,我们已经完成了通过JLINK读取内存,并解析出_SEGGER_RTT结构体变量各个域的值,,然后我们通过解析出SEGGER_RTT_RING_BUFFER中pBuffer指向的内存,就能读取出用户要显示的数据

当然,读取完数据后还需要通过JLINKARM_WriteMem函数来修改内存中的读偏移RdOff,,这些更加完整、详细的操作可以通过读下面的程序源码来理解:

完整程序源码: RTTView.rar (7.1 KB, 下载次数: 499) 2016-3-19 16:16 上传 点击文件名下载附件
执行此程序需要安装Python 2.7、PyQt和PyQwt

欢迎大家尝试使用,希望莫大能给置酷
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
100条回答
XIVN1987
1楼-- · 2019-12-20 09:09
lr120363092 发表于 2016-3-20 10:50
不明白,这个跟SWD的在线调试有什么区别???


见60楼对另一个类似问题的回复,,

简单来说,SWD是Debug,RTT是Trace,二者互为补充,,
waliwali
2楼-- · 2019-12-20 11:58
 精彩回答 2  元偷偷看……
Excellence
3楼-- · 2019-12-20 15:41
请问楼主,PyQwt用的那个版本?网上我下了5.2的。
ak2368
4楼-- · 2019-12-20 18:22
谢谢分享,我要认真学习了.
XIVN1987
5楼-- · 2019-12-20 19:59
Excellence 发表于 2016-3-22 10:55
请问楼主,PyQwt用的那个版本?网上我下了5.2的。


Python 2.7 + PyQt4 + PyQwt 安装方法:

1、安装Python,这个是Python脚本语言解释器
python-2.7.11.msi
最好安装2.7.11之后的版本,因为它们自带了pip,安装下面的软件需要用pip;如果安装python-2.7.2的话需要再自己安装pip

2、安装PyQt,这个是编写GUI程序的Python库
在命令行窗口执行 pip install PyQt4-4.11.4-cp27-none-win32.whl

3、安装PyQwt,这个是显示波形图的Python库
在命令行窗口执行 pip install PyQwt-5.2.1-cp27-none-win32.whl

Python 2.7去官网下载即可,,
PyQt和PyQwt的.whl安装包去下面的地址下载:
http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyqt4
http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyqwt


如果嫌麻烦可以直接去下载安装Anaconda,这个是Python + 一堆各种功能的包的集合体,,里面带很多有用的库,,如numpy、scipy、matplotlib、sympy、pandas等,,不过体积比较大,接近400M
XIVN1987
6楼-- · 2019-12-20 21:21
waliwali 发表于 2016-3-22 10:42
楼主,ctypes 在64位下不灵啊,有没有招?


我是在64位的windows 7上安装的Python 2.7,,安装方法见65楼

一周热门 更多>