如何使用JLink:RTT打印调试日志

JLink 自V4.92版本以后,添加了RTT功能,可以在没有串口的时候当作调试日志输出端口。


一、准备工作

只需要在你的项目中添加以下三个文件:

SEGGER_RTT.c

SEGGER_RTT.h

SEGGER_RTT_Conf.h

需要注意的是在SEGGER_RTT_Conf.h中定义

#define SEGGER_RTT_IN_RAM (0)

这样不占用额外内存,即可实现日志打印;

在源码中调用SEGGER_RTT_Write(0, buff, len));

或者SEGGER_RTT_WriteString(0,str);


二、输出日志的查看方式

1. 在Keil软件中使用JLink进入全速调试模式,然后打开JLinkRTTClient.exe就可以在控制台看到程序输出的内容;

2. 直接使用JLinkRTTViewer.exe,可以在不进行全速调试模式的情况下查看输出的内容;


三、补充说明

1.如果Keil自带的Jlink驱动太旧,不支持RTT,则需要替换Keil自带的驱动文件:

在Keil\ARM\Segger\目录下面的JLink.exe, JLinkARM.dll, JLinkRDI.dll

2.实现RTT功能的关键在于JLinkARM.dll,在Keil进入调试模式时会加载JLinkARM.dll,而JLinkARM.dll会创建一个telnel服务器,监听端口是19021,所以可以用第三方telnel软件,如Secure-CRT软件来查看打印的日志更方便。


你可能感兴趣的:(学习笔记)