调试串口不够用,RTT来帮忙

在做嵌入式调试的时候经常用串口打印log。有时会发现串口资源不足。这时可以采用RTT调试。RTT全称Real Time Transmit,可以通过jlink接口打印数据信息。

闲话少说上干货,下面就来一步一步实现RTT。

第一步,获取RTT源码

找到电脑jlink的安装路径。D:\Program Files (x86)\SEGGER\JLink_V646g\Samples\RTT (笔者安装D盘上其他人可不一定哦)会看到一个《SEGGER_RTT_V646g》的压缩包。解压这个压缩包。

RTT文件夹内即为源码。将红色框中的文件加入到工程中。

                                      

第二步,增加debug_log.c和debug_log.h文件

debug_log.c内容如下


#include "debug_log.h"
#include "SEGGER_RTT.h"
#include "stdio.h"
int printf_rtt(const char * sFormat, ...)
{
va_list ParamList;
va_start(ParamList, sFormat);
SEGGER_RTT_vprintf(0, sFormat, &ParamList);
va_end(ParamList);
 return 0;
}

debug_log.h内容如下:


#ifndef __DEBUG_H
#define __DEBUG_H
int printf_rtt(const char * sFormat, ...);
#define log(...)    printf_rtt(__VA_ARGS__)// 将printf_rtt注释掉即可关闭log打印
#endif

                                            

 配置完成RTT可以使用了。按照printf()方式使用log()即可。

第三步,使用打印函数log()

本文以freertos为例。(当然裸机也可以用RTT哦)

建立2个任务


void task_1()
{
  while(1)
 {
  log("task_1\r\n");  
  osDelay(100);
 }
}

void task_2()
{
  while(1)
 {
    log("task_2\r\n");
    osDelay(100);
 }
}

第四步,设置上位机

打开jlink RTT Viewer V6.46g。

                                        

 File->connect 选择对应的mcu型号点击OK。

                               

程序开始运行可以看到打印信息。

                                     

 当看到这个打印信息证明RTT神器使用成功

转载来源:调试串口不够用,RTT来帮忙

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值