nrf52832 SEGGER RTT_LOG 和 printf

本文介绍了如何在nrf52832设备上配置和使用SEGGER RTT进行LOG打印,并通过修改sdk_config.h启用相关宏,以实现printf函数的UART和RTT输出重定向。详细步骤包括添加相关文件,以及针对不同SDK版本的宏定义设置。
摘要由CSDN通过智能技术生成

1,jlink segger  RTT LOG 打印:

添加相关的文件:

配置文件sdk_config.h打开相关的宏,不同的版本的SDK宏定义不同:

#ifndef NRF_LOG_ENABLED
#define NRF_LOG_ENABLED 1

.

.

.

#endif

nRF5_SDK_12.3.0_d7731ad的宏定义:

#ifndef NRF_LOG_BACKEND_SERIAL_USES_UART
#define NRF_LOG_BACKEND_SERIAL_USES_UART 1  //定义log从uart串口输出
#endif

#ifndef NRF_LOG_BACKEND_SERIAL_USES_RTT
#define NRF_LOG_BACKEND_SERIAL_USES_RTT 1 //定义log从jlink segger rtt输出
#endif


nRF5_SDK_15.0.0_a53641a的宏定义:

#ifndef NRF_LOG_BACKEND_RTT_ENABLED
#define NRF_LOG_BACKEND_RTT_ENABLED  1  //定义log从u

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码是用于初始化和启用日志库的后端(backend)的代码片段。它根据所定义的宏来选择性地启用不同的后端。 首先,`backend_id` 是一个整型变量,初始值为 -1。它用于保存后端的标识符,后面会用于检查后端是否成功添加。 然后,通过条件编译语句 `#if defined(NRF_LOG_BACKEND_RTT_ENABLED) && NRF_LOG_BACKEND_RTT_ENABLED` 和 `#if defined(NRF_LOG_BACKEND_UART_ENABLED) && NRF_LOG_BACKEND_UART_ENABLED` 来判断是否启用了 RTT 后端和 UART 后端。 如果启用了 RTT 后端,会调用 `nrf_log_backend_rtt_init()` 函数来进行 RTT 后端的初始化。然后,通过 `nrf_log_backend_add()` 函数将 RTT 后端添加到日志库中,并将其日志级别设置为 `NRF_LOG_SEVERITY_DEBUG`。添加成功后,会对 `backend_id` 进行断言检查,确保添加成功。最后,通过调用 `nrf_log_backend_enable()` 函数来启用 RTT 后端。 如果启用了 UART 后端,会调用 `nrf_log_backend_uart_init()` 函数来进行 UART 后端的初始化。然后,通过 `nrf_log_backend_add()` 函数将 UART 后端添加到日志库中,并将其日志级别设置为 `NRF_LOG_SEVERITY_DEBUG`。添加成功后,会对 `backend_id` 进行断言检查,确保添加成功。最后,通过调用 `nrf_log_backend_enable()` 函数来启用 UART 后端。 通过这段代码,可以根据需要选择性地启用 RTT 或 UART 后端,并将其添加到日志库中,以实现日志的输出功能。请注意,在使用这些后端之前,需要确保已正确初始化相关模块(如 RTT、UART 等)。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值