全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

Segger RTT调试工具的使用方法

时间:2025-03-28 14:21

人气:

作者:admin

标签: segger  RTT  调试  嵌入式 

导读:上一期已经跟着小编介绍的安装步骤,相信大家都已经开始使用了Segger Ozone调试工具。那么今天小编继续趁热打铁,给大家介绍另一个Segger推出的调试辅助工具Segger RTT。...

上一期已经跟着小编介绍的安装步骤,相信大家都已经开始使用了Segger Ozone调试工具。那么今天小编继续趁热打铁,给大家介绍另一个Segger推出的调试辅助工具Segger RTT。

Segger RTT(Real Time Transfer)是一款由SEGGER公司开发的嵌入式系统监控和交互工具,主要用于嵌入式应用程序中的实时数据传输和调试。

定义与功能:

RTT是一种用于嵌入式系统的实时传输技术,能够在不影响嵌入式应用实时行为的情况下,实现高速双向通信。它不仅可以输出调试信息,还可以从外部输入控制命令,支持多个通道用于不同目的。

兼容性:

RTT支持多种单片机架构,包括ARM Cortex-A/R/M系列芯片,以及RISC-V和Renesas RX等。

主要特点:

高速传输速率:RTT使用调试通道进行通信,不占用额外的GPIO等外设接口,因此传输速率极快,不会影响嵌入式应用的实时行为

双向通信能力:RTT具备与目标嵌入式应用的双向通信能力,既可以输出调试信息,也可以接收外部控制命令

多通道支持:RTT在两个传输方向上支持多个通道,每个通道可用于不同的目的,如标准输出、错误输出、调试输出等

易用性:RTT的实现代码可以免费下载,并且可以轻松集成到任何现有的应用程序中。通过在PC上使用J-Link RTT Viewer工具,用户可以方便地查看和管理多个虚拟终端。

使用场景:

替代串口调试:RTT可以替代传统的串口调试方式,节省串口资源,并降低串口打印对系统实时性的影响

中断打印:RTT支持在中断中打印信息,这是传统printf函数无法实现的

多平台支持:RTT不依赖操作系统,可以在裸机上运行,并支持多种终端端口使用

实时数据读写管理:基于目标MCU内存中的RTT控制块结构体,RTT能够实现实时数据读写管理

接下来介绍下RTT的工作原理,简单来讲RTT的工作核心是一个位于RAM中的控制块结构,以及一个环形缓冲区来处理每个通道的每个配置方向(上行/下行)。每个缓冲区都可以在运行时由应用程序配置和添加。每个通道可以配置为阻塞或非阻塞模式。示意图如下:

3ec3146a-0aa6-11f0-9310-92fbcf53809c.png

在Zephyr中添加RTT也可以说是一步到位,得益于Zephyr的软件框架,我们只需要通过打开几个kConfig文件的变量即可:

CONFIG_UART_CONSOLE=n
CONFIG_RTT_CONSOLE=y
CONFIG_USE_SEGGER_RTT=y
CONFIG_SHELL_BACKEND_RTT=y

通过打开这几个配置变量,重新编译Zephyr代码,当我们想要通过调用printk来打印时,即可实现通过Segger RTT来进行输出:

3ee256d6-0aa6-11f0-9310-92fbcf53809c.gif

让我们来看下具体实现,通过单步调试,打开printk的源代码,我们可以看到,其底层实际上调用的是SEGGER_RTT_Write()函数: 这样一来,我们就可以省掉一个uart口,只通过Jlink这个调试端口进行log信息的打印。以防止某些时间敏感代码在运行时受到影响。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信