0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于一种高效printf打印方式

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 作者:黄工的嵌入式技术 2020-02-29 16:29 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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)SEGGERJLinkSamplesRTT

解压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)

5RTT Viewer配置、输出

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

安装目录:C:Program Files (x86)SEGGERJLink

下载程序到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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 串行
    +关注

    关注

    0

    文章

    256

    浏览量

    35580
  • SWOT
    +关注

    关注

    0

    文章

    4

    浏览量

    8166
  • Printf
    +关注

    关注

    0

    文章

    84

    浏览量

    14860
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    关于DC/DC的三控制方式介绍

    关于DC/DC的控制方式,作为控制开关周期、导通时间的控制方式,存在PWM控制、PFM控制及PWM/PFM自动切换控制。这种控制方式的差异会显著影响轻载效率、噪声特性及输出纹波电压。
    的头像 发表于 05-20 13:49 405次阅读
    <b class='flag-5'>关于</b>DC/DC的三<b class='flag-5'>种</b>控制<b class='flag-5'>方式</b>介绍

    qemu仿真sc594 arm核运行最简单demo,printf打印是怎么回事?

    使用cces qemu运行以上最简单demo,printf内容未打印,请帮忙看看原因,配置如下 Using CCES QEMU to run the simplest demo above
    发表于 05-12 07:04

    蓝牙打印机:无线打印新体验,高效便捷新选择

    在当今数字化快速发展的时代,蓝牙技术的应用为打印机领域带来了革命性的变革。 蓝牙打印机 凭借其摆脱连线束缚的优势,实现了无线打印,通过便捷的移动打印方式,极大地提升了用户的工作便利性与
    的头像 发表于 03-04 11:48 134次阅读
    蓝牙<b class='flag-5'>打印</b>机:无线<b class='flag-5'>打印</b>新体验,<b class='flag-5'>高效</b>便捷新选择

    Bamtone ICT系列:一种新型高效的离子污染测试仪?

    设计的款精密离子污染检测仪器,被定位为一种新型高效的离子污染测试仪,代表了当前PCBA离子污染检测向自动化、智能化和高效化发展的趋势,是国产替代高端进口设备的
    的头像 发表于 01-12 11:28 624次阅读
    Bamtone ICT系列:<b class='flag-5'>一种</b>新型<b class='flag-5'>高效</b>的离子污染测试仪?

    C语言中实现函数宏的三方式

    在宏的第个分号后便结束。即 a = b 和 b = tmp 均不受控制语句所作用。 因此,在工程中,般使用三方式来对函数宏进行封装,分别为 {}、do{...}while(0
    发表于 12-29 07:34

    tsc mh641系列工业打印机:高清打印,精准高效

    作为专为工业场景设计的打印设备,tscmh641打印机在功能与技术上充分贴合高效生产需求。它具备高清条码打印能力,搭载先进的热敏/热转印双模式打印
    的头像 发表于 11-26 16:13 972次阅读
    tsc mh641系列工业<b class='flag-5'>打印</b>机:高清<b class='flag-5'>打印</b>,精准<b class='flag-5'>高效</b>

    单片机使用printf打印编译出错的原因?

    单片机使用printf打印编译出错,有哪些情况?
    发表于 11-21 06:02

    iSUN3D即将推出单组分弹性树脂3D打印解决方案!

    iSUN3D将在Formnext 2025发布单组分弹性树脂3D打印方案,覆盖设计到交付全流程,解决柔弹性制造成本与效率痛点,现场可体验高速打印与限量礼品。
    的头像 发表于 11-17 11:45 990次阅读
    iSUN3D即将推出单组分弹性树脂3D<b class='flag-5'>打印</b>解决方案!

    求助,关于C代码中的printf打印的疑问求解

    在使用E203 testbench执行附带的benchmark测试用例时候,得到如下打印信息: CPU验证小白枚,有个问题不是很理解:黄色框框内的字符看起来应该是C代码中的printf语句
    发表于 11-10 07:54

    芯未来|数字化车场国产彩色激光打印机如何实现高效输出与智能管控

    在部队数字化车场的运作中,值班室是信息流转与指令下达的关键节点。无论是车辆调度单、装备检查报告还是日常办公文件,都需要一种高效、可靠且绝对安全的输出设备。 芯未来的这款专为严苛环境设计的国产A4
    的头像 发表于 10-31 16:21 716次阅读

    e203仿真helloworld例程printf能在终端显示的原理

    pirntf可以直接输出信息。而在嵌入式领域,想要实现printf需要做点工作。 以蜂鸟e203为例,它没有显示器,没有标准终端,想要实现printf最常见的方式是通过串口
    发表于 10-27 06:56

    一种高效智能的光伏电站管理平台

    体化(集成多种储能管理功能等)。用户根据自身场景和需求,选择合适光伏电站管理平台及功能应用配置,从而实现发电效率最大化、运维成本最小化及碳中和目标。 光伏电站管理平台作为一种智能光伏管理系统,通过光伏智能管理
    的头像 发表于 07-18 09:20 1261次阅读
    <b class='flag-5'>一种</b><b class='flag-5'>高效</b>智能的光伏电站管理平台

    哪些场景要使用到RFID标签打印机?RFID标签打印般多少钱?

    RFID标签打印机是一种将射频识别技术与打印技术相结合的设备,可实现对RFID标签的信息录入与表面信息打印,广泛应用于多个领域。以下是些常
    的头像 发表于 07-15 15:44 1318次阅读
    哪些场景要使用到RFID标签<b class='flag-5'>打印</b>机?RFID标签<b class='flag-5'>打印</b>机<b class='flag-5'>一</b>般多少钱?

    【RA4L1-SENSOR】+ RA4L1-SENSOR开发版之使用Jlink的RTT打印功能代替串口

    篇帖子中我已经实现了板子上的串口USART9进行输出打印,这篇帖子我采用另外一种串口打印来实现,这是瑞萨官网实现的最主要打印调试手段,那
    发表于 06-09 09:03

    扫码枪直连打印机扫产品上的条码二维码,自动打印对应的条码标签

    在现代企业的生产、仓储、物流等环节中,条码标签的打印与使用是项极为常见却又至关重要的工作。传统的依靠电脑连接条码打印机的打印方式,在面对大规模、高频次的
    的头像 发表于 06-04 14:08 1458次阅读
    扫码枪直连<b class='flag-5'>打印</b>机扫产品上的条码二维码,自动<b class='flag-5'>打印</b>对应的条码标签