使用Jlink的RTT Viewer实现串口打印输出数据功能

在Keil MDK AC6编译器下,由于结构替换问题无法使用ITM串口输出。本文介绍了一种替代方案——使用RTT Viewer实现串口打印输出,无需SWO引脚,性能优于ITM方式。通过添加RTT源代码、包含头文件并使用SEGGER_RTT_printf函数,结合JLinkRTTViewer,可以实现高效的实时数据传输。
摘要由CSDN通过智能技术生成

问题提出:
自从Keil MDK的编译器从AC5更新到AC6之后,原先使用的ITM串口输出方式编译时总提示错误,
因为结构替__FILE需要重新定义;
而目前又没有找到合适的让AC6编译通过的办法。
无奈之下,寻找能替代ITM串口输出的办法,还真找到了,就是RTT Viewer方式的串口输出。
问题解答:
ITM方式串口输出,使用了MCU的SWO(Serial Wire Output)引脚,
RTT方式串口输出,不需要通过SWO引脚,即可实现printf输出,而且性能(耗时)远远高于ITM方式。
在这里插入图片描述

如上图所示,semihosting耗时10700uS,ITM方式耗时120uS,而RTT只需要耗时1uS就可以了。

RTT:Real Time Transfer,实时传输。
SEGGER实时传输RTT是一种在嵌入式应用中实现交互式用户I/O的技术。

需要如下三个步骤实现通过RTT的printf。
1、将RTT源代码添加到目标工程中。
A、打开Jlink的安装目录,比如我安装在目录D:\Program Files (x86)\SEGGER\JLink_V650b;
当然,也可以从官网下载最新版的Jlink,性能会更强一些,兼容性会更好一些。
下载地址:https://www.segger.com/downloa

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值