【Jlink】使用Jlink RTT工具打印日志

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: RTT( Real Time Terminal)是SEGGER公司新出的可以在嵌入式应用中与用户进行交互的实时终端。J-Link驱动4.90之后的版本都支持RTT。RTT既可以从MCU上输出信息、也可以向应用程序发送信息,由于其高速的特性,所以不影响MCU的实时性。实现原理: 固件代码将要输出的log数据按照RTT的格式写到确定地址的内存中去,然后RTT通过swd口读取对应内存地址的数据,并显示到PC终端上。

背景

  • 平常调试代码中使用串口打印log,往往需要接出串口引脚,比较麻烦,并且串口打印速度较慢,串口的中断可能会影响代码的执行效率。
  • SEGGER RTT支持使用J-link调试器输出来自目标微控制器的信息,也可以接收输入,并且在高速度交互的同时不会影响目标处理器的实时性,可以省掉平常打印日志用的串口。

Jlink RTT简介

  • RTT( Real Time Terminal)是SEGGER公司新出的可以在嵌入式应用中与用户进行交互的实时终端。J-Link驱动4.90之后的版本都支持RTT。

    RTT既可以从MCU上输出信息、也可以向应用程序发送信息,由于其高速的特性,所以不影响MCU的实时性。

    实现原理: 固件代码将要输出的log数据按照RTT的格式写到确定地址的内存中去,然后RTT通过swd口读取对应内存地址的数据,并显示到PC终端上。RTT的工作框图如下图所示:

Jlink RTT 代码获取

  • RTT工具的源码实现提供了完整的功能,可以自由使用。RTT的源码是作为J-Link软件包的一部分,在Jlink安装目录中的 Sample/RTT中。将RTT目录中的这四个文件移植到MCU工程中,并在添加相关路径和头文件。

image-20211013223957410

移植RTT代码

  • 移植代码到工程中,包含对应的.c文件和头文件路径。
  • 加入测试函数SEGGER_RTT_printf,参数1通道设置为0, 其他参数用法和printf类似。建议在定时函数中加入以下测试代码,编译,下载到MCU中。
  • 注意:不要直接放到while(1)里面,否则可能因为循环过快导致log无法输出。
  • 该流程已富芮坤8018平台为例进行移植,其他平台也是类似的。
SEGGER_RTT_printf(0, "Hello world RTT %d\r\n", n);

连接RTT VIEW

  • 使用Jlink commander的 connect命令将Jlink与板子连接,详情可见文档上面介绍Jlink commander的文档 https://wiki.tuya-inc.com:7799/page/1448282563461263413
  • 在计算机中搜索JLINKRTT,并打开RTT VIEW终端

image-20211014143319564

  • 连接设备,选择设备类型和RTT地址。该设备是CORTEX-M3的内核,SWD连接方式, 速率可自行设置,建议设置高一些。
  • 在很多设备上RTT地址是可以自动是被到的,对于富芮坤这样不能自动识别的设备,需要自行输入RTT地址,RTT地址即为代码中结构体_SEGGER_RTT的地址,可在代码中自行打印,也可在生成的map文件中获取, map文件中地址中查找如下图。

image-20211014172635555

image-20211014145551519

  • 输入地址后,即可在RTT VIEW终端中,查看打印的RTT log信息了。

image-20211014143155986

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
3月前
|
Linux 应用服务中间件 PHP
性能工具之linux常见日志统计分析命令
通过本文的介绍,我相信同学们一定会发现 linux三剑客强大之处。在命令行中,它还能够接受,和执行外部的 AWK 程序文件,可以对文本信息进行非常复杂的处理,可以说“只有想不到的,没有它做不到的。
164 1
|
4天前
|
监控 Ubuntu 安全
如何在 VPS 上安装和使用 Logwatch 日志分析器和报告工具
如何在 VPS 上安装和使用 Logwatch 日志分析器和报告工具
14 1
|
14天前
|
Prometheus Cloud Native Perl
评测Loki日志工具
评测Loki日志工具
30 0
|
2月前
|
机器学习/深度学习 数据可视化
【tensorboard】深度学习的日志信息events.out.tfevents文件可视化工具
【tensorboard】深度学习的日志信息events.out.tfevents文件可视化工具
|
8天前
|
监控 关系型数据库 Linux
Linux日志管理工具:Logrotate(二)
Linux日志管理工具:Logrotate(二)
12 2
|
8天前
|
存储 监控 安全
Linux日志管理工具:Logrotate(一)
Linux日志管理工具:Logrotate(一)
31 0
|
29天前
|
应用服务中间件 开发者 HSF
日志存储问题之不同日志工具之间的主要差别是什么
日志存储问题之不同日志工具之间的主要差别是什么
日志存储问题之不同日志工具之间的主要差别是什么
|
2月前
|
SQL Oracle 关系型数据库
探索 Linux 命令 `db_archive`:Oracle 数据库归档日志的工具
探索 Linux 中的 `db_archive`,实际与 Oracle 数据库归档日志管理相关。在 Oracle 中,归档日志用于恢复,当在线重做日志满时自动归档。管理员可使用 SQL*Plus 查看归档模式,通过 `RMAN` 进行备份和恢复操作。管理归档日志需谨慎,避免数据丢失。了解归档管理对 Oracle 管理员至关重要,确保故障时能快速恢复数据库。
|
2月前
|
存储 关系型数据库 Linux
探索 `db_printlog`:Linux 下的数据库日志打印工具
`db_printlog`是Linux下用于解析和打印Berkeley DB日志文件的命令行工具,帮助用户以可读格式理解数据库事务和系统事件。要使用它,先安装Berkeley DB,然后通过`db_printlog logfilename`命令分析日志。常见选项包括`-h`(显示帮助)、`-v`(详细输出)和`-f`(跟随日志更新)。注意日志文件权限和大小问题,此工具适用于Berkeley DB,其他数据库系统可能有不同解析工具。
|
1月前
|
应用服务中间件 开发工具 nginx
Ngnix09目录结构分析,使用tree工具可以Ngnix目录中以一个树的方式呈现出来,yum install -y tree,tail -f nginx/logs/access.log
Ngnix09目录结构分析,使用tree工具可以Ngnix目录中以一个树的方式呈现出来,yum install -y tree,tail -f nginx/logs/access.log

热门文章

最新文章