使用J-Link也能实现串口打印输出数据的功能

关注+ 星标公众 ,不错过精彩内容

作者 | strongerHuang

微信公众号 | 嵌入式专栏

嵌入式软件基本都会存在打印输出数据的情况,我们最常见就是串口打印输出。

如果我们手里没有232转USB,或者TTL转USB工具,此时,使用J-Link工具同样也可以实现串口打印输出数据的功能。

下面就来讲讲使用J-link的『RTT Viewer』功能实现打印输出的方法:

1 概述

SWO: S erial Wire Output,串行线输出

RTT: Real Time Transfer,实时传输

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

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

2 关于RTT

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

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

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

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

3 关于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

(公号不支持外链接,请复制链接到浏览器打开)

4 获取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)

5 RTT Viewer配置、输出

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

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

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

输出效果:

6 下载

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

STM32F051(HAL)_JLink-RTT

STM32F103(HAL)_JLink-RTT

百度网盘:

https://pan.baidu.com/s/1aYBuHtOgtLqLvj6SsMYlQA

提取码:nbd3

提示:

1.公众号不支持外链接,请复制链接到浏览器打开。

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

3.若链接失效,请关注公众号,回复『printf系列教程』获取最新链接。

7

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

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

3.本文收录于公众号『 嵌入式专栏 』,关注微信公众号回复【 printf系列教程 】即可查看全系列教程。同时获得该教程对应的PDF教程。。 

————  END   ————

推荐阅读:

精选汇总 | 专栏 | 目录 | 搜索

精选汇总 | ARM、Cortex-M

精选汇总 | ST工具、下载编程工具

关注 微信公众号『嵌入式专栏』,底部菜单查看更多内容,回复“ 加群 ”按规则加入技术交流群。

点击“ 阅读原文 ”查看更多分享,欢迎 点分享、收藏、点赞、在看。