本帖最后由 iwqt1983 于 2014-9-22 23:19 编辑
飞思卡尔的开发板与芯片真好,可以将开发板的仿真器刷成免费版本的Jlink,功能与正版的差不多,而且Jlink现在可以支持RTT,速度很快的,比SWO快许多倍的.
这么强大的功能如何实现呢,听我一步步道来:
1. 先将Open SDA刷成Jlink.(当然用Jlink V8 V9外接的更好)
想到过使用飞思卡尔的Freedom平台当做昂贵的J-Link调试器吗,好吧,这次给你机会了,呵呵。去SEGGER官网查资料的时候看到了一个suprise,Segger刚刚为OpenSDA平台release了一个可以兼容Jlink功能的firmware。说白了,就是借用OpenSDA当做J-Link用,当然有部分功能是有所限制的,不过瑕不掩瑜,Jlink的高速、稳定及一些特有的功能一直让接触过它的开发者印象深刻,所以能用low-cost的OpenSDA实现高性能的Jlink实在是让人兴奋,包括在下,哈哈,所以还等什么,赶紧试试吧,呵呵~ (1)将firmware更新到OpenSDA的平台之后,再回到normal mode,这样就可以把OpenSDA当J-Link用了。 附件为更新的固件JLink_OpenSDA.zip
2. 使用RTT来观察变量,免费的示波器真好.
RTT_Implementation_140806.zip
(15.23 KB)
J-LINK固件.rar
(4.57 MB)
参考的例程与工具等都上传在附件中.
JLINK RTT,完爆各种printf形式,swo该退休了.
一般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中一部分)
1.安装SEGGER jlink V4.9以上版本,否则没有rtt软件
文件自己到 SEGGER 官网下载
2.jlink V8可以使用,但是安装了之后需要升级jlink...
升级失败的,自己搜索论坛哈,已经是讲了无数遍的东西了..................................................
3.确保keil目录下的JLinkARM.dll是最新版本的
Jlink V8可以,v9肯定可以,V7版本的OB就不清楚了。
Setup_JLink_V490e.zip或者以上版本,这是必须的,或者你能找到文件吧keil里面的jlinkarm.dll直接用最新的覆盖了也行,keil里面的那个jlinkarm.dll才是实际用到的,
Setup_JLink_V490e 里面的 JLinkRTTClient.exe 反而不是一定的,用telnet也可以代替
RTT_Implementation_140806 里面的rtt目录下的文件要加入工程的,你有了就可以了
keil不用特别的设置,选择jlink仿真就是了,和平时用jlink一样 |