使用J-LINK RTT打印调试信息
#申请原创#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的分享
代码中配置适当的 RTT 缓冲区大小。缓冲区太小可能会导致数据丢失,而缓冲区太大可能会占用过多内存资源。 在程序的开始阶段,调用SEGGER_RTT_Init()函数来初始化RTT。这个函数会设置RTT所需的内部结构和缓冲区。 根据需要配置RTT缓冲区大小,以确保能够存储足够的调试信息。 可以通过查看编译生成的MAP文件来确认RTT缓冲区的配置情况。 J-LINK RTT Viewer支持在日志中添加时间戳和打印颜色。这需要在MCU程序中实现相应的接口,例如通过添加特定的控制字符来设置颜色。 在目标设备的代码中处理RTT事件,如接收调试命令或响应调试请求。 在调试器设置中启用RTT功能,并配置RTT缓冲区大小。 如果系统对实时性有较高要求,需要注意RTT打印调试信息对系统实时性的影响。在实时性要求较高的场合,可以考虑使用更高效的调试方法或减少调试信息的输出。 默认情况下,RTT使用固定大小的缓冲区,但有时可能需要根据应用程序的需求进行调整。 在使用RTT时,应考虑异常情况的处理,如缓冲区溢出或调试器断开连接时的行为。 在串口不够用的时候可以用JLINK RTT作为调试接口。 如果打印的调试信息很长,可能会遇到缓冲区不够的问题。此时,可以通过修改SEGGER_RTT_Conf.h文件中的BUFFER_SIZE_UP宏定义来增加缓冲区的大小。 频繁使用RTT打印调试信息可能会对系统性能产生影响,特别是在嵌入式系统中,IO操作通常比较耗时。因此,建议在需要时才使用RTT打印调试信息,并在发布版本中移除或关闭调试输出。 确认代码中是否初始化了RTT模块。在某些SDK或示例工程中,RTT模块的初始化可能默认未被调用,需要手动添加。 如果打印的日志速度超过了 J-Link RTT Viewer 的读取速度,可能会导致数据丢失。 在发布版本中,应该考虑移除或禁用 RTT 相关的代码,以减少代码大小和提高性能。 使用SEGGER_RTT_printf()函数来打印调试信息。这个函数类似于C语言的printf()函数,但接受一个缓冲区索引和一个格式化字符串,以及可变数量的参数。 使用SEGGER_RTT_printf()或其他RTT提供的打印函数来输出调试信息,而不是标准的printf()函数。 如果需要记录调试信息,可以使用RTT Logger工具来捕获和保存RTT通道的数据。
页:
[1]
2