当前位置:首页 > 公众号精选 > strongerHuang
[导读]嵌入式软件基本都会存在打印输出数据的情况,我们最常见就是串口打印输出。


作者 | strongerHuang

微信公众号 | 嵌入式专栏

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

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

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

1概述

SWO:Serial 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.添加文件路径。


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

4.2 应用程序

调用RTT的打印,和常规的printf类似。

添加头文件:#include "SEGGER_RTT.h"

再调用SEGGER_RTT_printf函数打印输出:


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

5RTT 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.本文由我一个人编辑并整理,难免存在一些错误。


免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

串行通信需要传输的数据通过调制器(Modulator)将数据转换为模拟信号,经过信号调制(Modulation)后在传输线上传输,接收端通过解调器(Demodulator)将信号解码还原成原始数据。

关键字: 串口 串行通信 并行通信

51 单片机内部有一个全双工串行接口。什么叫全双工串口呢?一般来说,只能接受或只能发送的称为单工串行;既可接收又可发送,但不能同时进行的称为半双工;能同时接收和发送的串行口称为全双工串行口。串行通信是指数据一位一位地按顺...

关键字: 单片机 全双工 串口

串口是“串行接口”的简称,即采用串行通信方式的接口。串行通信将数据字节分成一位一位的形式在一条数据线上逐个传送,其特点是通信线路简单,但传输速度较慢。因此串口广泛应用于嵌入式、工业控制等领域中对数据传输速度要求不高的场合...

关键字: 串口 RS232 同步传输

串口作为单片机开发的一个常用的外设,应用范围非常广。大部分时候,串口需要接收处理的数据长度是不定的。那么怎么才能判断一帧数据是否结束呢,今天就以STM32单片机为例,介绍几种接收不定长数据的方法。

关键字: 单片机 串口 STM32

这是FPGA之旅设计的第十例啦,在上一例中,已经成功驱动了OLED屏幕,本例将结合上一例,以及第四例多bytes串口通信做一个有趣的例程。

关键字: FPGA OLED屏 串口

接下来测试烧写功能,本次采用串口和USB烧写方式。使用ISP串口烧写这是51单片机常用的方案,本次测试比较顺利,没有遇到什么问题。但是USB烧写没有测试成功,USB烧写方式不需要任何的驱动和硬件支持,直接将USB线和ST...

关键字: PCB控制板 USB 串口

摘要:多功能电能表在配电系统中应用广泛,其计量的准确度对企业管理和考核至关重要,因此在设计多功能电能表时需要对其进行校准,满足一定应用等级。常规的多功能电能表校准方法是以电能脉冲校准为主,现提出一种基于C#和功率校表法的...

关键字: 多功能电能表 串口 波特率

摘 要:为了能通过串口采集电能参数,完成一种基于串口的三相电能采集设备的研制,设计了电能采集设备的硬件和软件部分。其中硬件采用MCU+专用电能计量芯片的结构,结构简单;软件则用于实现输入、输出、三相电能参数的采集和串行通...

关键字: 电能采集 ATT7022B MSP430 串口

如何确定时基假如要测量的波特率为9600,则每一比特位的时间为:1/9600≈104μs,一般示波器横向上每个大格子里5个小格子,要想看清一比特位一般需要一个小格子就够了,则时基为:104μs*5=520μs,也就是说时...

关键字: 串口

VivadoML最新版2021下载方法:《安装Vivado2021.1ML版,编译时间真的会减少吗?》今天我们通过zedboard串口使用的实例来简单介绍vivado和vitis的使用步骤。1,首先打开软件,新建一个空白...

关键字: 串口 zedboard vi
关闭
关闭