搜索
bottom↓
回复: 194

JLINK RTT,完爆各种printf形式,从此swo是路人

  [复制链接]

出0入0汤圆

发表于 2014-9-9 23:21:31 | 显示全部楼层 |阅读模式
一般arm系统中,如何通过电脑键盘和显示器同mcu进行交互最有效的有两种形式:arm7时代称作semihost,cm时代被全新的traceswo取代,性能提升相当明显。其他诸如重定向串口之类就更加弱爆了
现在,jlink推出了颇具特色的rtt(不要和坛里的rtt这个rtos混淆哦),real time terminal---实时终端,贴个segger对几种交互形式的对比图:


怎么样,眼前一亮吧,性能超乎想象,比swo还好,更关键的是,不需要swo这个线,有些紧凑项目中甚至连多一根调试线都是奢侈,rtt不但理解这个烦恼,还让你从此忘记swo

详细的内容还是看看segger官网的介绍,Real Time Terminal


从它的实现形式看,要求jlink可以对某个内存区任意读写,估计是用的cm系列内建调试模块的数据观察点,就像我们在mdk的watch窗口查看变量内容一样方便,数据观察点性能应该远超swo(实际是itm中一部分)

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

 楼主| 发表于 2014-9-10 09:54:19 | 显示全部楼层
本帖最后由 myxiaonia 于 2014-9-10 10:01 编辑

下载了官网的实现源码,其中rtt目录下的3个文件就是使用rtt的最基本实现,SEGGER_RTT_Printf.c实现了其自定义风格的类printf,如果使用这种类printf就不需要使用标准库stdio,当然rtt也提供了printf形式的重定向文件,在Syscalls文件中就是重定向stdio的几个函数。整理如下:使用RTT必要步骤
rtt目录下SEGGER_RTT.c、SEGGER_RTT.h和SEGGER_RTT_Conf.h必须使用
SEGGER_RTT_Printf.c实现了一个自定义的类printf,SEGGER_RTT_printf就可以像printf一样进行打印
如果想在原来的工程中使用rtt并且原来的工程使用printf输出,那么不需要SEGGER_RTT_printf,而是Syscalls目录下的重定向文件,如果用的是mdk则是RTT_Syscalls_KEIL.c,只需要不包含原工程中的Retarget.c这个重定向文件即可
这种方法是改动最小的,推荐用这种方法尝试下rtt

手头暂时没有开发板,回家里再上机试验下

出0入0汤圆

发表于 2014-9-10 09:58:17 | 显示全部楼层
这个感觉调试挺方便的 关于什么样的Jlink可以用 里面已经给了注释了
SEGGER RTT can be used with any J-Link model and any supported target processor which allows background memory access, which are Cortex-M and RX targets.
意思是可以使用任何Jlink版本,只要内核是Cortex-M和RX系列即可

至于需要多少根线里面也给了说明
Q:        Can this also be used on targets that do not have the SWO pin?
A:        Yes, the debug interface is used. This can be JTAG or SWD (2pins only!) on most Cortex-M devices, or even the FINE interface on some Renesas devices, just like the Infineon SPD interface (single pin!)
可以使用Jtag和SWD或者是两根线就可以了,特别的是有些瑞萨的芯片,甚至可以只使用一根线

最后给大家上传下官方那个例子的压缩包

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-9-10 22:48:02 | 显示全部楼层
本帖最后由 gwnpeter 于 2014-9-11 01:47 编辑

说到做到........................已经成功使用了。
有些小问题,待会发个帖子,大家研究看看怎么优化一下
http://www.amobbs.com/forum.php?mod=viewthread&tid=5595476

出0入0汤圆

发表于 2014-9-9 23:23:43 | 显示全部楼层

出0入0汤圆

 楼主| 发表于 2014-9-9 23:28:04 | 显示全部楼层

怎么样,看上去还不错吧。。。
我是在segger官网安装最新版Setup_JLink_V490e.zip后看到多出个rtt模块,一探究竟原来是这么大杀器

出0入0汤圆

发表于 2014-9-9 23:28:42 | 显示全部楼层
myxiaonia 发表于 2014-9-9 23:28
怎么样,看上去还不错吧。。。
我是在segger官网安装最新版Setup_JLink_V490e.zip后看到多出个rtt模块, ...

不错  偶好好研究研究

出0入10汤圆

发表于 2014-9-9 23:33:24 | 显示全部楼层
一开始我用的串口发送,后来我用的是串口重定向,再后来就看到RTT了,应该更加适合观测数据了

出0入0汤圆

发表于 2014-9-9 23:33:32 | 显示全部楼层
看上去不错。。。。。。。。。。。。。。

D版 可用吗??

出0入0汤圆

发表于 2014-9-10 00:14:38 | 显示全部楼层
还没试过,有空折腾下

出0入0汤圆

发表于 2014-9-10 00:39:07 | 显示全部楼层
看了一下 确实是好东西,改天试试 不知盗搬link的可用不

出0入0汤圆

发表于 2014-9-10 01:14:28 | 显示全部楼层
看了下,确实很给力- -而且思路很新奇- -感觉其他调试器也能实现这功能- -

出0入0汤圆

发表于 2014-9-10 01:22:03 来自手机 | 显示全部楼层
mark,有空试试

出0入0汤圆

发表于 2014-9-10 06:41:25 来自手机 | 显示全部楼层
貌似很给力

出0入0汤圆

发表于 2014-9-10 06:44:58 来自手机 | 显示全部楼层
如果50元的可以用那简直太帅了

出0入0汤圆

发表于 2014-9-10 07:10:55 来自手机 | 显示全部楼层
这个非常好呀,不知道几十元的能不能用,

出0入0汤圆

发表于 2014-9-10 07:17:11 | 显示全部楼层
看了一下 确实是好东西,改天试试 不知盗搬link的可用不

出0入0汤圆

发表于 2014-9-10 07:42:01 | 显示全部楼层
不错,试一试。

出0入0汤圆

 楼主| 发表于 2014-9-10 07:44:37 | 显示全部楼层
dwiller_ARM 发表于 2014-9-9 23:33
一开始我用的串口发送,后来我用的是串口重定向,再后来就看到RTT了,应该更加适合观测数据了 ...

恭喜你直接跳过了swo,其实是调试组件的一个双向同步串口,你如果用过的话就知道swo频率至少可以到6M,普通串口哪能做到这么高的速度。
但是swo已经这么快了还是不如jlink给出的这个rtt,从其比较数据看相差120倍啊

出0入0汤圆

发表于 2014-9-10 07:47:00 来自手机 | 显示全部楼层
这个要研究下

出0入0汤圆

 楼主| 发表于 2014-9-10 07:47:23 | 显示全部楼层
这里统一回复下大家对于盗版jlink是否也能用的问题,这个是毫无压力的,只要你的jlink不被segger认为是clone的,用起来就和正版没有区别

出0入0汤圆

发表于 2014-9-10 08:06:00 | 显示全部楼层
这个不错,有空学习下。

出0入0汤圆

发表于 2014-9-10 08:08:46 | 显示全部楼层
这个确实不错,直接能再ide中使用就好了。

出0入0汤圆

发表于 2014-9-10 08:15:18 | 显示全部楼层
有空我也试一下谢谢分享。

出0入0汤圆

发表于 2014-9-10 08:15:56 | 显示全部楼层
貌似很给力啊                  

出0入0汤圆

发表于 2014-9-10 08:18:20 | 显示全部楼层
谁总结一下,发个应用笔记上来就好了

出0入0汤圆

 楼主| 发表于 2014-9-10 08:19:40 | 显示全部楼层
yaoyyie2003 发表于 2014-9-10 08:18
谁总结一下,发个应用笔记上来就好了

我搞个例程看看吧,这样大家也可以方便些

出50入0汤圆

发表于 2014-9-10 08:21:04 | 显示全部楼层
赶紧下载一个试试

出0入0汤圆

发表于 2014-9-10 08:22:37 | 显示全部楼层
GOOD           

出0入0汤圆

发表于 2014-9-10 08:22:55 | 显示全部楼层
支持。。。。。。。。

出0入0汤圆

发表于 2014-9-10 08:27:13 | 显示全部楼层
很强大,速度提升不是一点点

出0入0汤圆

发表于 2014-9-10 08:27:49 | 显示全部楼层
不错,这个东东很值得深入的研究研究

出0入0汤圆

发表于 2014-9-10 08:31:07 | 显示全部楼层
哪位大侠写一个教程吧

出0入0汤圆

发表于 2014-9-10 08:32:43 来自手机 | 显示全部楼层
很给力啊,下载下来看看

出0入0汤圆

发表于 2014-9-10 08:39:23 | 显示全部楼层

mark,有空试试

出0入0汤圆

发表于 2014-9-10 08:40:42 | 显示全部楼层
恩恩恩,其实我完全听不懂的说

出0入0汤圆

发表于 2014-9-10 08:42:39 | 显示全部楼层
支持。。。。。。。。

出0入0汤圆

发表于 2014-9-10 08:59:56 | 显示全部楼层
看了链接内容,类似数据缓冲区,有示例源码,值得用。谢谢楼主。

出0入0汤圆

发表于 2014-9-10 09:07:22 | 显示全部楼层
这个确实不错, 但是....有盗版jlink能用4.90e版本的软件???

出0入0汤圆

发表于 2014-9-10 09:09:26 | 显示全部楼层
windrarara 发表于 2014-9-10 09:07
这个确实不错, 但是....有盗版jlink能用4.90e版本的软件???

正在使用,国产的J-Link。

出0入0汤圆

发表于 2014-9-10 09:13:46 | 显示全部楼层
styleno1 发表于 2014-9-10 09:09
正在使用,国产的J-Link。

是硬件版本v9的jlink吗?v8的用不了吧?

出0入0汤圆

发表于 2014-9-10 09:15:50 | 显示全部楼层
这个很强大,要试试

出0入0汤圆

发表于 2014-9-10 09:17:55 | 显示全部楼层
标记一下

出0入0汤圆

 楼主| 发表于 2014-9-10 09:20:20 | 显示全部楼层
windrarara 发表于 2014-9-10 09:13
是硬件版本v9的jlink吗?v8的用不了吧?

只要是能躲过jlink验证是否为clone,就可以用,不管硬件版本是v8还是v9

出60入85汤圆

发表于 2014-9-10 09:21:02 | 显示全部楼层
很好很好

出0入0汤圆

发表于 2014-9-10 09:23:00 | 显示全部楼层
windrarara 发表于 2014-9-10 09:13
是硬件版本v9的jlink吗?v8的用不了吧?

是的,V8不行。

出0入0汤圆

发表于 2014-9-10 09:25:07 | 显示全部楼层
不过这个只能连接JLINK才能用吧

出0入0汤圆

发表于 2014-9-10 09:37:28 | 显示全部楼层
只要2根线阿...比swo还少...
不过,需要IDE支持阿.....

不知道现在哪个IDE支持...

出0入0汤圆

发表于 2014-9-10 09:43:51 | 显示全部楼层
期待

出0入4汤圆

发表于 2014-9-10 09:46:16 | 显示全部楼层
不明觉厉啊         

出0入0汤圆

发表于 2014-9-10 09:54:25 | 显示全部楼层
有一点不好。就是不隔离。串口可以隔离。虽然慢了点。

出0入0汤圆

发表于 2014-9-10 10:01:14 | 显示全部楼层
segger公司真是调试界的希望啊

出0入0汤圆

 楼主| 发表于 2014-9-10 10:04:10 | 显示全部楼层
紫胤真人 发表于 2014-9-10 09:37
只要2根线阿...比swo还少...
不过,需要IDE支持阿.....

你在其官网网页最后的qa部分,可以看到只需要jlink即可,此时相当于串口调试一样,只不过连接的不是串口线而是jlink这个仿真器

出0入0汤圆

发表于 2014-9-10 10:24:23 | 显示全部楼层
看得我一愣一愣的,从最开始的JTAG标准的20跟引脚,到ST-LINK V2的7跟引脚,再到现在的2跟引脚,变化好大

出0入0汤圆

发表于 2014-9-10 10:27:37 | 显示全部楼层
谢谢分享这么好用的方式!

出0入0汤圆

发表于 2014-9-10 10:32:06 | 显示全部楼层
mark~~回头看

出0入0汤圆

发表于 2014-9-10 10:36:56 | 显示全部楼层
刚刚搞了一个Jlink-EDU原装,为什么里面的版本是V9.00?难道这就是TB上的9.0吗?正版的速度确实稳定,一直在10Mhz的连接速度,非常稳定调试也很爽。

出0入12汤圆

发表于 2014-9-10 10:39:01 | 显示全部楼层
类似于 linux 的 printk。

出0入0汤圆

 楼主| 发表于 2014-9-10 10:40:25 | 显示全部楼层
activeleo 发表于 2014-9-10 10:36
刚刚搞了一个Jlink-EDU原装,为什么里面的版本是V9.00?难道这就是TB上的9.0吗?正版的速度确实稳定,一直 ...

买到宝了,v9用了stm32f205的U,性能比v8的at91sam7好太多了,关键还是usb高速接口

现在v9破解还很少,就因为f2系列想破解已经很难了

出0入0汤圆

发表于 2014-9-10 10:43:15 | 显示全部楼层
Jlink-EDU V9.0版本,我以为就是原来的硬件加新软件即可了!

出0入0汤圆

发表于 2014-9-10 10:44:36 | 显示全部楼层
记号,收藏

出0入59汤圆

发表于 2014-9-10 10:44:38 | 显示全部楼层
果断收藏,回去试一试

出0入0汤圆

发表于 2014-9-10 10:51:35 | 显示全部楼层
很强大,只有jlink能用吗?
主要还是通讯速度的问题,当把串口用DMA+串口任务的方式实现时,占用时间资源也很少的

出0入0汤圆

发表于 2014-9-10 10:54:58 | 显示全部楼层
哪位高手搞清楚后,给大家出个详细点的教程。

出0入0汤圆

发表于 2014-9-10 10:56:13 | 显示全部楼层
那图没看懂耶,就是说它快对吧??
关键是,怎么用……

出0入0汤圆

 楼主| 发表于 2014-9-10 10:56:58 | 显示全部楼层
sunnyqd 发表于 2014-9-10 10:51
很强大,只有jlink能用吗?
主要还是通讯速度的问题,当把串口用DMA+串口任务的方式实现时,占用时间资源也 ...

哈哈 是的,只有jlink能用,在我看来这个rtt最有效的就是不需要占用其他的多余资源,包括引脚啊等等,只需要少量的rom和ram,就可以实现性能上的飞跃,这是最令人激动人心的

出0入0汤圆

 楼主| 发表于 2014-9-10 10:59:00 | 显示全部楼层
zenith1032 发表于 2014-9-10 10:56
那图没看懂耶,就是说它快对吧??
关键是,怎么用……

等我搞个例程出来吧,呵呵。。。其实有了置顶帖中那个实现文件,应该很轻松就能实现

出0入0汤圆

发表于 2014-9-10 11:06:16 | 显示全部楼层
看来Ulink2 与 st-link不不能用了?

出0入0汤圆

 楼主| 发表于 2014-9-10 11:07:33 | 显示全部楼层
yixin1851 发表于 2014-9-10 11:06
看来Ulink2 与 st-link不不能用了?

是的  兄弟 等到他们的出品公司认同了这种方式就会的
segger迈出了第一步,它自称是第一个吃螃蟹的

出0入0汤圆

发表于 2014-9-10 11:10:47 | 显示全部楼层
myxiaonia 发表于 2014-9-10 10:56
哈哈 是的,只有jlink能用,在我看来这个rtt最有效的就是不需要占用其他的多余资源,包括引脚啊等等,只 ...

是的,想法很新颖,因为只需要读写内存,所以没有统计进去通讯时间,所以很快

出0入0汤圆

发表于 2014-9-10 11:15:30 来自手机 | 显示全部楼层
发现宝藏了

出0入0汤圆

发表于 2014-9-10 11:17:29 | 显示全部楼层
先标记下,回家看看

出0入0汤圆

发表于 2014-9-10 11:19:33 | 显示全部楼层
swo还没体验 又来了RTT

出0入0汤圆

 楼主| 发表于 2014-9-10 11:25:59 | 显示全部楼层
gamep 发表于 2014-9-10 11:19
swo还没体验 又来了RTT

可以跳过了,迎接新思维

话说我的起点就是从stm32开始,我没有搞过arm7啊哈哈哈,我应该高兴才对,你也应该庆幸

出0入0汤圆

发表于 2014-9-10 11:42:57 | 显示全部楼层
期待楼主的例程。

出0入0汤圆

发表于 2014-9-10 11:43:02 | 显示全部楼层
这个需要标记一下,坐等楼主的例子

出0入0汤圆

发表于 2014-9-10 11:51:53 | 显示全部楼层
mark,有空试试

出0入0汤圆

发表于 2014-9-10 11:55:19 | 显示全部楼层
感谢楼主分享,下午试验下

出0入0汤圆

发表于 2014-9-10 12:00:10 | 显示全部楼层
不错哦,有时间试下

出0入0汤圆

发表于 2014-9-10 12:16:07 | 显示全部楼层
支持一下

出0入0汤圆

发表于 2014-9-10 12:17:44 | 显示全部楼层
这个高大上

出0入0汤圆

发表于 2014-9-10 12:25:18 | 显示全部楼层
很好用的东西,希望能出个教程

出0入0汤圆

发表于 2014-9-10 12:39:26 | 显示全部楼层
很给力,马上试验一下。

出0入0汤圆

发表于 2014-9-10 12:47:01 | 显示全部楼层
这个要详细研究一下了

出0入0汤圆

发表于 2014-9-10 12:48:10 | 显示全部楼层
还在用串口调试……
st-link v1居然不支持swo……

出0入0汤圆

发表于 2014-9-10 13:00:57 | 显示全部楼层
涨知识,需要了解下

出0入0汤圆

发表于 2014-9-10 13:04:18 | 显示全部楼层
很好,应该很简单,晚点试试

出0入0汤圆

发表于 2014-9-10 21:26:02 | 显示全部楼层
好东西, 一定要试

出0入0汤圆

发表于 2014-9-10 21:32:45 | 显示全部楼层
谁能搞个教程 谢谢

出0入0汤圆

发表于 2014-9-10 21:55:16 | 显示全部楼层
确实是个好东东,是码农的好帮手啊!

出0入17汤圆

发表于 2014-9-10 21:59:33 来自手机 | 显示全部楼层
必须调试的时候才能用吗?全速运行时行不行?

出20入118汤圆

发表于 2014-9-10 23:39:43 | 显示全部楼层
mark 这个有用

出0入0汤圆

发表于 2014-9-10 23:59:19 | 显示全部楼层
STM32F103+JLINK已经跑起来了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-9-11 00:03:29 | 显示全部楼层
gwnpeter 发表于 2014-9-10 22:48
说到做到........................已经成功使用了。
有些小问题,待会发个帖子,大家研究看看怎么优化一下 ...

可以输出到文件记录吗?

出0入0汤圆

 楼主| 发表于 2014-9-11 01:23:52 | 显示全部楼层
我尝试了下在mdk下重定向printf的方法,结果链接错误,在segger官网找到这个帖子real time terminal with uVision

里面这位同仁貌似也搞不定,看来只能用类printf风格了

出0入0汤圆

发表于 2014-9-11 01:24:52 | 显示全部楼层
887799 发表于 2014-9-11 00:03
可以输出到文件记录吗?

可以 http://www.amobbs.com/forum.php? ... p;extra=#pid7871918   15楼

出0入0汤圆

发表于 2014-9-11 05:26:29 | 显示全部楼层
很强劲,收藏

出0入0汤圆

发表于 2014-9-11 07:19:25 | 显示全部楼层
被盗版JLINK搞怕了的路过

出0入0汤圆

发表于 2014-9-11 08:01:32 | 显示全部楼层
好东西啊,标记学习!

出0入0汤圆

发表于 2014-9-11 08:19:01 | 显示全部楼层
刚才试了一下,用小的JLINK-SW的调试工具,测试成功。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-28 13:06

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表