使用segger自带的工具jlink RTT viewer工具实现串口打印功能:工具
首先从Jlink官网上下载RTT代码,而后将这四个文件添加到本身工程中去,而且在主程序工程中添加SEGGER_RTT.h文件;在添加头文件的主程序里面添加以下两个宏定义,实现多参数打印功能:spa
#define printf(...) SEGGER_RTT_printf(0, __VA_ARGS__)
#define printfinfor(X,...) SEGGER_RTT_printf(0, "file: "__FILE__",function: %s"", Line: %d:"X"\r\n",__FUNCTION__,__LINE__,##__VA_ARGS__)调试
(相关代码下载连接http://download.segger.com/J-Link/RTT/RTT_Implementation_140925.zip)blog
以后能够使用 printf / printfinfor(X,...) 打印调试信息,在JLINK安装目录中打开J-Link RTT Viewer,就能够看到调试信息,以下图;ip
JLINK RTT viewer 输入:内存
首先在程序中添加SEGGER_RTT_Read(0,rtt_buf,sizeof(rtt_buf));get
其次在J-Link RTT Viewer控制台的Input里面选择Sending/Send on Enter,而后End of Line选择Noneio
这样就能够经过下方输入框输入信息,按Enter发送function
注:在freertos系统任务中加入此打印功能,很占用内存,程序莫名其妙死机,颇有多是此打印语句形成堆栈溢出,若是有莫名其妙死机问题,建议优先格式化此条语句再排查;class