printf系列教程07_JLink-RTT打印输出配置,基于J-Link『RTT Viewer』

本文原创作者『strongerHuang

首发于微信公众号『嵌入式专栏』,同时也更新在我的个人网站:EmbeddedDevelop

标签:printf、 SWD、 SWO、 SWV、 ITM、 JLink-RTT、 ST-Link、 J-Link、 仿真、 重定义、 串口映射

 

一、写在前面

SWO:Serial Wire Output,串行线输出

RTT:Real Time Transfer,实时传输

 

前面SWO文章,实现原理是通过MCU的SWO引脚输出信息(到显示终端SWV)。

而本文讲述的RTT不需要通过额外SWO引脚,即可实现printf输出,而且性能(耗时)远高于SWO。

 

二、关于RTT

SEGGER实时传输(RTT)是一种在嵌入式应用中实现交互式用户I/O的技术。

它结合了SWO和半主机( semihosting)的优点,具有很高的性能。

使用RTT,可以从目标微控制器输出信息,并以非常高的速度向应用程序发送输入,而不会影响目标的实时性。

 

Cortex - M0不支持SWO,而本文讲述的RTT则支持Cortex - M0,文末提供STM32F0工程。

 

三、关于J-Link RTT Viewer

J-Link RTT Viewer是在调试主机上使用RTT功能的Windows GUI应用程序。

RTT Viewer可以独立使用,打开自己与J-Link的连接,并与正在运行的调试会话目标或并行,连接到它并使用现有的J-Link连接。

RTT Viewer支持RTT的主要功能:

·通道0上的终端输出

·将文本输入发送到通道0

·最多16个虚拟终端,只有一个目标通道

·控制文本输出:彩色文本,擦除控制台

·在通道1上记录数据

 

本文主要结合J-Link RTT Viewer讲述,当然支持RTT的还有J-Link RTT Client 和J-Link RTT Logger。

更多相关介绍,可以参看: https://www.segger.com/products/debug-probes/j-link/technology/about-real-time-transfer

 

四、获取RTT源码

我们需要在工程中添加RTT源码,同时需要J-Link RTT Viewer查看器支持。

J-Link / J-Trace下载地址(Windows版本): https://www.segger.com/downloads/jlink/JLink_Windows.exe

安装之后,在安装目录下包含RTT源码: C:\Program Files (x86)\SEGGER\JLink\Samples\RTT

解压SEGGER_RTT_V***.zip之后,复制整个RTT目录源码到你工程。

提示: 解压之后,只需复制RTT目录就行。

 

4.1 添加RTT到工程

添加源码文件到工程主要有两个步骤:1.添加源码文件到工程。 2.添加文件路径。

 

这里不讲述具体添加过程,Keil 和 IAR之前有讲述,请参看我的文章:

Keil新建基础软件工程

IAR新建基础软件工程

当然,我下面有提供添加好的源码工程。

 

4.2 应用程序

调用RTT的打印,和常规的printf类似。 添加头文件:#include "SEGGER_RTT.h"

再调用SEGGER_RTT_printf函数打印输出:

 

这里SEGGER_RTT_printf和print不同的是:前面多了一个“终端号”参数。(我们使用终端0)

 

五、RTT Viewer配置、输出

和前面讲述的SWV查看器类似,配置相关信息即可输出。

安装目录:C:\Program Files (x86)\SEGGER\JLink

下载程序到MCU,连接J-Link,打开安装目录下的J-Link RTT Viewer,配置参数:

 

输出效果:

六、下载

为方便大家理解,提供源码工程下载,参考代码:

·STM32F051(HAL)_JLink-RTT

·STM32F103(HAL)_JLink-RTT

百度网盘: https://pan.baidu.com/s/1aYBuHtOgtLqLvj6SsMYlQA

提取码:nbd3

 

提示:

1.若链接失效,请关注公众号获取最新链接。

2.源码仅供学习参考,不一定适用于实际项目。

 

七、说明

1.该文档仅供个人学习使用,版权所有,禁止商用。

2.本文由我一个人编辑并整理,难免存在一些错误。

3.为了方便大家平时公交、地铁、外出办事也能用手机随时随地查看该教程,该教程同步更新于微信公众号『嵌入式专栏』,关注微信公众号回复【printf系列教程】即可查看全系列教程。

 

八、最后

我的知乎: strongerHuang
我的博客: www.strongerhuang.com

关注微信公众号『strongerHuang』,在底部菜单中查看更多精彩内容!

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

strongerHuang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值