J-LINK RTT打印调试,释放串口资源

进入公司已经7个月左右了,最开始使用盛源达芯片的时候听说过RTT打印,同时也使用过RTT打印,但是当时才进公司也只是在师兄的指导下使用RTT,但是没有真正理解到RTT到底是什么,在开发新的一个平台的时候我又遇到了打印的问题,于是根据新平台的技术小哥的提示自己首先在STM32上面实现了RTT的打印然后才向新平台上面区移植打印。
首先说明RTT是什么
RTT(Real Time Transfer)是一种用于嵌入式中与用户进行交互的技术,它结合了SWO和半主机的优点,具有极高的性能。
使用RTT可以从MCU非常快速输出调试信息和数据,且不影响MCU实时性。这个功能可以用于很多支持J-Link的设备和MCU,兼容性强。
RTT支持两个方向的多个通道,上到主机,下到目标,它可以用于不同的目的,为用户提供尽可能多的自由。默认实现每个方向使用一个通道,用于可打印终端输入和输出。
使用J-Link RTT Viewer,可用于“虚拟”终端,允许打印到多个窗口(例如,一个用于标准输出,一个对于错误输出,一个用于调试输出)。
RTT怎么使用
使用RTT的前提是调试的时候选择J-Link调试器,第一步安装 J-LINK J-LINK 安装包下载
下载安装包 进行安装
第二步 找到安装路径下面的2.安装完成后,打开J-Link的安装目录(开始->SEGGR->J-Link RTT Viewer->右键打开文件所在位置->然后继续右键打开文件所在位置->此时就是安装目录了),
找到如下路径SEGGER\JLink_V632f\Samples\RTT,解压路径里面的压缩包SEGGER_RTT_V632f.zip(不同的版本,V后面的数字可能不一样)。
3.将解压完的文件拷贝到代码工程目录中。
4.在项目工程中加入SEGGER_RTT_V632f\RTT目录下的全部四个文件。工程添加文件方法请自行百度。
5.工程加入文件后,在想要用到RTT的文件中包含#include “SEGGER_RTT.h”,然后直接调用SEGGER_RTT_printf()就好了,
如图J-LINK RTT打印调试,释放串口资源_第1张图片

例如SEGGER_RTT_printf(0,“hello world!”)这个和C语言的printf的格式差不多,就是前面加了一个端口0的参数。(详细信息请看高级使用教程)

6.然后点击开始->SEGGR->J-Link RTT Viewer,打开J-Link RTT Viewer 选择好你的芯片型号后,点击确认。
如图J-LINK RTT打印调试,释放串口资源_第2张图片
最后是测试结果
J-LINK RTT打印调试,释放串口资源_第3张图片
出这个帖子的原因是因为,我们大多数单片机的学习者在初学阶段往往都是使用的串口调试进行打印,但是串口资源本来就少,像普通的STM32最多的5个串口还有两个是哦不常用的串口4串口5 ,打印占用一个串口完全就是浪费资源 ,而且RTT也比较完善成熟了,所以为了释放串口资源,可以尝试这着使用RTT进行调试打印,何乐而不为了,别人一看你使用的打印方式不同那么别人也会对你刮目相看。

你可能感兴趣的:(单片机,J-LINK,RTT,调试打印)