[LWIP] 如何启LWIP用调试信息输出

主要在两个文件内配置opt.h和lwipopts.h。

第一步 启动调试项

cpp 复制代码
//LWIP调试选项
#define LWIP_DEBUG        LWIP_DBG_ON	 //LWIP_DBG_OFF关闭DEBUG选项 LWIP_DBG_ON

第二步 设置调试等级和类型

opt.h文件中

cpp 复制代码
 * LWIP_DBG_MIN_LEVEL: After masking, the value of the debug is
 * compared against this value. If it is smaller, then debugging
 * messages are written.
 * @see debugging_levels
 */
#if !defined LWIP_DBG_MIN_LEVEL || defined __DOXYGEN__
#define LWIP_DBG_MIN_LEVEL              LWIP_DBG_LEVEL_ALL
#endif

/**
 * LWIP_DBG_TYPES_ON: A mask that can be used to globally enable/disable
 * debug messages of certain types.
 * @see debugging_levels
 */
#if !defined LWIP_DBG_TYPES_ON || defined __DOXYGEN__
#define LWIP_DBG_TYPES_ON               LWIP_DBG_ON
#endif

LWIP_DBG_MIN_LEVEL 调试信息等级

LWIP_DBG_TYPES_ON 调试类型

调试等级LWIP_DBG_MIN_LEVEL有以下可定义

cpp 复制代码
 #define LWIP_DBG_LEVEL_ALL     0x00
/** Debug level: Warnings. bad checksums, dropped packets, ... */
#define LWIP_DBG_LEVEL_WARNING 0x01
/** Debug level: Serious. memory allocation failures, ... */
#define LWIP_DBG_LEVEL_SERIOUS 0x02
/** Debug level: Severe */
#define LWIP_DBG_LEVEL_SEVERE  0x03    

调试类型在 opt.h中定义开启比如将NETIF_DEBUG调试信息开启

cpp 复制代码
#if !defined NETIF_DEBUG || defined __DOXYGEN__
#define NETIF_DEBUG                     LWIP_DBG_ON
#endif      

第三步 定义输出信息函数

实现调试信息输出函数定义,一般是实现printf函数。

cpp 复制代码
#define LWIP_PLATFORM_DIAG(x)         do { printf x; } while(0)  // 需要实现printf

调试建议

在调试等级设置上,建议设置LWIP_DBG_LEVEL_WARNING及以上等级,如果设置ALL可能会有太多的输出信息难以查找问题。

关闭调试

只需将LWIP_DEBUG选项设置为关闭即可

cpp 复制代码
//LWIP调试选项
#define LWIP_DEBUG        LWIP_DBG_OFF  //LWIP_DBG_OFF关闭DEBUG选项 LWIP_DBG_ON
相关推荐
新晨单片机设计1 小时前
S003A-基于STM32单片机温度计(数码管显示)【Proteus仿真+Keil程序+原理图】
stm32·单片机·stm32单片机功能定制
AOI小白新手上路1 小时前
江科协51单片机16-1 DA数模转换实验(PWM 呼吸灯)
单片机·嵌入式硬件·51单片机
hongmai6668882 小时前
告别Wi-Fi,专注Mesh:ESP32-H2-MINI-1U-H2S模组规格与应用
单片机·嵌入式硬件·物联网·5g·h.265
Yiran_G2 小时前
BLE通信距离怎么判断?从发射功率、PHY到天线设计分析
单片机·嵌入式硬件
HUI-4743 小时前
EG5101|TSSOP‑24 数字算法电流模式同步降压控制器,高性能数字化电源方案
单片机·嵌入式硬件
单片机仿真设计3 小时前
【proteus仿真】基于 STM32 的久坐提醒与坐姿矫正器设计(仿真图+程序)
stm32·单片机·嵌入式硬件·proteus·毕设
jianqiang.xue3 小时前
ESP-IDF保姆级入门11|FreeRTOS队列通信全解:生产者消费者+中断数据转发+多任务解耦,彻底搞定任务间交互
单片机·嵌入式硬件·物联网·架构·esp32
jianqiang.xue3 小时前
ESP-IDF保姆级入门09|ADC模拟量采集全解:电位器调压+光敏传感器+OLED显示,打通模拟→数字全链路
stm32·单片机·物联网·架构·esp32
张海森-1688204 小时前
变量的作用域和生命周期
单片机
Freak嵌入式5 小时前
MicroPython+Pico 接收空闲中断和发送空闲中断全实战
java·开发语言·stm32·单片机·嵌入式硬件