不知道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
欢迎大家尝试使用,希望莫大能给置酷
100us发送16位数据,那也就20KByte/s,v8肯定没问题
要画两条以上曲线的话需要同时修改单片机端的RTT程序和上位机程序,比如RTT开2个UP通道,把两条曲线的数据分别填到两个UP通道的Buffer中,然后上位机从两个通道分别取出数据绘制不同的曲线
理论上可以画几条曲线就开几个UP通道,然后让上位机取几个通道的数据,,这种方式修改最简单方便,,想开几个通道开几个,只要单片机RAM够大就行
一周热门 更多>