nrf52832-log打印日志


1、Log功能作用

	日志打印(log)模块是分析程序流程和程序Bug的重要手段,嵌入式软件开发中,一般使用自己封装的Log程序模块,
	而不会使用printf函数输出信息,原因如下:
		1、可以在Log中封装数据流的接口,从而根据需求打印到各种终端,如下
			(1):UART接口设备,可通过UART打印。
			(2):显示屏设备,可以通过显示屏显示。
			(3):用Jlink仿真器时,可通过Jlink RTT打印。
			(4):等等不一一列举。
		2、方便增加打印内容,可在不同类型日志前加上不同的信息前缀,错误信息前加代码行号方便定位
		3、等等不一一列举
	Log程序模块一般包含输出终端选择、日志开关、日志级别设置功能,用户可根据需求去使用Log

2、Log使用

2.1、终端选择

		nRF52832的SDK提供两种输出终端:UART和JLINK-RTT, 在”sdk_config.h“中定义,如下图:

在这里插入图片描述

2.2、日志开关

		nRF52832的SDK包含很多模块,某个出现问题,为了定位问题会需要其他模块不打印日志,只打印出问题的模块Log,
	或者调试完成正式发布时,需要将Log全部关闭,便用到了日志开关,日志开关设置在”sdk_config.h“中定义,如下图:

在这里插入图片描述

2.3、日志级别

		为了使打印的日志更具有针对性,比如只打印错误部分日志,或者只打印警告部分日志,日志级别便应运而生
	nRF52832日志级别分为5个等级,设置在”sdk_config.h“中定义,如下图:	
				Off:		关闭日志输出
				Error:		只输出错误信息,对应的Log输出函数为 ” NRF_LOG_ERROR “
				Warning:	只输出警告信息,对应的Log输出函数为 ” NRF_LOG_WARNING “
				Info:		只输出基本信息,对应的Log输出函数为 ” NRF_LOG_INFO “
				Debug:		只输出调试信息,对应的Log输出函数为 ” NRF_LOG_DEBUG “
	日志级别举例:
				选择 Off 时,全部不打印
				选择 Warning 时,只打印 Error, Warning 信息
				选择 Debug 时,全部打印

在这里插入图片描述

3、演示代码

	使用 JLINK-RTT 打印 Log, 按上述步骤先配置好	sdk_config.h,再执行下面代码
/* 头文件包含 */
#include "nrf_log.h" 
#include "nrf_log_ctrl.h"
#include "nrf_log_default_backends.h"

/* 初始化日志打印模块 */
static void log_init(void)
{  
	ret_code_t err_code = NRF_LOG_INIT(NULL);	//初始化log程序模块
    APP_ERROR_CHECK(err_code);
	
    NRF_LOG_DEFAULT_BACKENDS_INIT();	//设置log输出终端(根据sdk_config.h中的配置设置输出终端为UART或者RTT)
}

/* 空闲状态处理函数。处理Log缓存队列中待输出的日志信息*/
static void idle_state_handle(void)
{  
	if (NRF_LOG_PROCESS() == false)	//运行到此处才处理挂起的log
    {
    }
}

/* 主函数 */
int main(void)
{	
	log_init();	//初始化log程序模块
	NRF_LOG_INFO("Log use JLINK-RTT");	//LOG打印信息

	while(1)
	{
				
		idle_state_handle();	//处理挂起的LOG和运行电源管理	
	}	
}
2021/12/11
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值