RT-Thread使用jlink输出log
当串口不够用,或者不方便引出串口时,不妨尝试一下用jlink下载器输出rt-thread的msh调试信息。
1.安装JLINK驱动,官网下载地址:[https://www.segger.com/downloads/jlink/]
可能下载比较慢,耐心等待一下,已安装过可略过。
2.确保RT-Thread工程打开了shell
3.添加RTT文件到工程,这里以KEIL为例
添加如上图SEGGER_RTT_printf.c和SEGGER_RTT.c ,并包含SEGGER_RTT.h 和 SEGGER_RTT_Conf.h两个头文件路径。
一般这些文件可在JLINK安装路径下的 /Sample/RTT/目录下找到。
4.取消rtconfig.h文件下#include "finsh_config.h"的注释,
5.重写打印函数
在board.c文件下注释掉static int uart_init(void)函数。将 void rt_hw_console_output(const char *str)函数改为
void rt_hw_console_output(const char *str)
{
SEGGER_RTT_printf(0,“%s”,str);
}
将char rt_hw_console_getchar(void)函数改成
RT_WEAK char rt_hw_console_getchar(void)
{
int ch = -1;
ch = SEGGER_RTT_GetKey();
return ch;
}
编译确保无错,使用jlink烧录程序,
6.打开J-Link RTT Viewer软件
选择自己的芯片型号后,点击ok
打印了rtt log,到此结束,可在输入框里面输入指令来交互。