

使用J-Link也能实现串口打印输出数据的功能
source link: https://mp.weixin.qq.com/s?__biz=MzI4MDI4MDE5Ng%3D%3D&%3Bmid=2247497324&%3Bidx=1&%3Bsn=947e367ccf7179fa9c246eef5518d6ae
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

关注+ 星标公众 号 ,不错过精彩内容
作者 | 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之前有讲述,请参看我的文章:
当然,我下面有提供添加好的源码工程。
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 ------------
推荐阅读:
关注 微信公众号『嵌入式专栏』,底部菜单查看更多内容,回复“ 加群 ”按规则加入技术交流群。
点击“ 阅读原文 ”查看更多分享,欢迎 点分享、收藏、点赞、在看。
Recommend
-
9
C#结合串口通信类实现串口通信源代码(原创) mycom是串口通信类,在本blog前一篇中有完整代码。(
-
17
前言 前段时间赶项目的过程中,遇到一个调用RS485串口通信的需求,赶完项目因为楼主处理私事,没来得及完成文章的更新,现在终于可以整理一下当时的demo,记录下来。 首先说一下大概需求:这个项目是机器视觉方面的,AI...
-
5
活动作品原神这种二次元游戏也能叫文化输出嘛?【膨胀说】游戏解构!48.1万播放 · 3946弹幕2021-06-26 04:05:04 全站排行榜最高第76名
-
17
当植物也能打印……|设计日历 Luis Undritz 时间:2021-09-10 10:06 | 阅读: 161
-
8
V2EX › Linux 求教: ubuntu 18.04 串口调试 输出都是乱码 nicocho · 21 小时 59 分钟...
-
3
3D打印也能造出核燃料和反应堆组件了-51CTO.COM 3D打印也能造出核燃料和反应堆组件了 2022-03-03 14:54:28 新闻 这种新型3D打印技术...
-
11
无墨也能打印!作业帮“学习打印”产品升级 来源:光明网2022-04-20 16:14 ...
-
6
C语言的基本数据类型及其打印输出 原创 Qiue. 2022-06-22 21:06:25...
-
7
printk()是很多嵌入式开发者喜欢用的调试手段之一,但是,使用printk()每次都要重新编译内核,很不方便。使用动态输出在不需要重新编译内核的情况下,方便的打印出内核的debug信息。 要开启动态输出,内核需要添加CONFIG_DYNAMIC_DEBUG。开启宏...
-
8
JLink RTT JLink RTT(Real Time Transfer) 是用于嵌入式系统监控和交互的工具, 类似于SWO, 可以双向通信, 特点是性能很高, 基本上不影响嵌入式应用的实时行为, 可以对比一下使用printf输出日志时的各种限制. 而且因为和 JLink 接口集成, 不...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK