【无标题】

本文介绍了如何在RT-Thread实时操作系统中启用和使用Debug功能,包括在ENV工程中配置Debug选项,以及通过rtdbg.h和drv_log.h宏定义在代码中进行调试日志输出。文章详细阐述了不同级别的日志打印和对应的宏定义方式。
摘要由CSDN通过智能技术生成

RT-Thread之debug使用

简介
介绍RT-Thread RTOS的Debug功能使用,包括配置和使用。
开启Debug功能后,设计者可以在需要的位置使用LOG_D、LOG_I、LOG_E、    
LOG_W向控制台输出信息,方便调试使用,使用形式参考rt_kprintf。
1、ENV工程配置

在工程目录启动ENV,输入menuconfig进入配置界面,选择RT-Thread Kernel并进入
在这里插入图片描述
使用上下键移动到Enable debugging features项,使用 空格键 勾选该项
在这里插入图片描述
保存后退出,在ENV控制台更新重新编译工程。rtconfig.h的RT-Thread Kernel项里会增加RT_DEBUG 和 RT_DEBUG_COLOR两个宏定义

2、程序使用
不同的任务使用debug时需要定义自身的参数,而且定义要写在使用的.c文件内,定义使用有两种形式

  • rtdbg.h文件
    直接通过rtdbg.h使用debug时的定义格式为
 #define DBG_TAG "TAG_NAME"
 #define DBG_LVL DBG_INFO //开启的debug级别
 #include <rtdbg.h> //must after of DBG_LVL, DBG_TAG or other options

先定义DBG_TAGDBG_LVL再包含rtdbg.h文件,因为rtdbg.h内部处理DEBUG函数时会依据这俩变量,具体内容可以打开rtdbg.h阅读。

  • drv_log.h文件
    通过drv_log.h使用debug时的定义格式为
define DRV_DEBUG //也可以不定义DRV_DEBUG
define LOG_TAG "TAG_NAME"
include <drv_log.h> //must after of DRV_DEBUG, LOG_TAG or other options

这种方式是对上一种方法的封装,使用debug功能时只能开启DBG_LOG或者DBG_INFO级别,因为drv_log.h已经固定了处理流程,最后还是包含rtdbg.h

ifndef LOG_TAG
define DBG_TAG "drv"
else
define DBG_TAG LOG_TAG
endif /* LOG_TAG */
ifdef DRV_DEBUG
define DBG_LVL DBG_LOG
else
define DBG_LVL DBG_INFO
endif /* DRV_DEBUG */
include <rtdbg.h>

总结

Debug使用时也可以添加其它宏定义,通过这两种方法定义只是为rtdbg.h处理提供依赖,也可以直接定义rtdbg.h内最终使用的变量,具体可以阅读源文件。

文章转载至:https://www.cnblogs.com/niu-li/p/12469306.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值