打印
[APM32E1]

使用J-LINK RTT打印调试信息

[复制链接]
1029|29
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
heyanmei|  楼主 | 2024-10-24 18:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
#申请原创#J-Link RTT打印输出-APM32E103ZE

在J-LINK安装路径下按照此路径找到该文件并解压



在自己的模版工程新建RTT文件夹,复制Config和RTT里面的文件到RTT文件夹




打开工程添加RTT文件和路径





添加头文件#include "SEGGER_RTT.h"



使用SEGGER_RTT_printf进行打印输出信息



打开JLinkRTTViewer进行配置,在J-Link安装路径下可以找到



下载程序,查看J-Link RTT是否成功打印调试信息





RTT相关函数说明



最后提供F003和E103使用JLINK-RTT打印输出信息的例程,见百度网盘链接

通过百度网盘分享的文件:JLINK RTT打印调试信息
链接:https://pan.baidu.com/s/1Z4Tf3kaDmXCRYAJQkm_S-w
提取码:6oxc
--来自百度网盘超级会员V6的分享



使用特权

评论回复
沙发
abotomson| | 2024-11-7 20:08 | 只看该作者
代码中配置适当的 RTT 缓冲区大小。缓冲区太小可能会导致数据丢失,而缓冲区太大可能会占用过多内存资源。

使用特权

评论回复
板凳
yeates333| | 2024-11-7 20:53 | 只看该作者
在程序的开始阶段,调用SEGGER_RTT_Init()函数来初始化RTT。这个函数会设置RTT所需的内部结构和缓冲区。

使用特权

评论回复
地板
1988020566| | 2024-11-7 21:31 | 只看该作者
根据需要配置RTT缓冲区大小,以确保能够存储足够的调试信息。

使用特权

评论回复
5
earlmax| | 2024-11-7 22:40 | 只看该作者
可以通过查看编译生成的MAP文件来确认RTT缓冲区的配置情况。

使用特权

评论回复
6
sdCAD| | 2024-11-8 08:22 | 只看该作者
J-LINK RTT Viewer支持在日志中添加时间戳和打印颜色。这需要在MCU程序中实现相应的接口,例如通过添加特定的控制字符来设置颜色。

使用特权

评论回复
7
ulystronglll| | 2024-11-8 10:01 | 只看该作者
在目标设备的代码中处理RTT事件,如接收调试命令或响应调试请求。

使用特权

评论回复
8
minzisc| | 2024-11-8 11:46 | 只看该作者
在调试器设置中启用RTT功能,并配置RTT缓冲区大小。

使用特权

评论回复
9
beacherblack| | 2024-11-8 13:34 | 只看该作者
如果系统对实时性有较高要求,需要注意RTT打印调试信息对系统实时性的影响。在实时性要求较高的场合,可以考虑使用更高效的调试方法或减少调试信息的输出。

使用特权

评论回复
10
sesefadou| | 2024-11-8 15:20 | 只看该作者
默认情况下,RTT使用固定大小的缓冲区,但有时可能需要根据应用程序的需求进行调整。

使用特权

评论回复
11
timfordlare| | 2024-11-8 17:01 | 只看该作者
在使用RTT时,应考虑异常情况的处理,如缓冲区溢出或调试器断开连接时的行为。

使用特权

评论回复
12
caigang13| | 2024-11-8 18:59 | 只看该作者
在串口不够用的时候可以用JLINK RTT作为调试接口。

使用特权

评论回复
13
yorkbarney| | 2024-11-8 20:25 | 只看该作者
如果打印的调试信息很长,可能会遇到缓冲区不够的问题。此时,可以通过修改SEGGER_RTT_Conf.h文件中的BUFFER_SIZE_UP宏定义来增加缓冲区的大小。

使用特权

评论回复
14
kmzuaz| | 2024-11-8 21:10 | 只看该作者
频繁使用RTT打印调试信息可能会对系统性能产生影响,特别是在嵌入式系统中,IO操作通常比较耗时。因此,建议在需要时才使用RTT打印调试信息,并在发布版本中移除或关闭调试输出。

使用特权

评论回复
15
lihuami| | 2024-11-8 21:55 | 只看该作者
确认代码中是否初始化了RTT模块。在某些SDK或示例工程中,RTT模块的初始化可能默认未被调用,需要手动添加。

使用特权

评论回复
16
mattlincoln| | 2024-11-8 22:06 | 只看该作者
如果打印的日志速度超过了 J-Link RTT Viewer 的读取速度,可能会导致数据丢失。

使用特权

评论回复
17
albertaabbot| | 2024-11-8 22:17 | 只看该作者
在发布版本中,应该考虑移除或禁用 RTT 相关的代码,以减少代码大小和提高性能。

使用特权

评论回复
18
sheflynn| | 2024-11-8 22:28 | 只看该作者
使用SEGGER_RTT_printf()函数来打印调试信息。这个函数类似于C语言的printf()函数,但接受一个缓冲区索引和一个格式化字符串,以及可变数量的参数。

使用特权

评论回复
19
jackcat| | 2024-11-8 22:38 | 只看该作者
使用SEGGER_RTT_printf()或其他RTT提供的打印函数来输出调试信息,而不是标准的printf()函数。

使用特权

评论回复
20
fengm| | 2024-11-8 22:49 | 只看该作者
如果需要记录调试信息,可以使用RTT Logger工具来捕获和保存RTT通道的数据。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

5

帖子

0

粉丝