调试LwIP攻略(keil版)

本文介绍了如何在LwIP中正确配置调试信息输出,包括宏定义的设置、debug.h文件的修改及编译错误的解决方法。通过开启调试选项并重定向printf输出,可以方便地查看运行时的状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、首先看看之前写的在keil中重定向printf输出到窗口打印信息,从而避免了连接串口打印到上位机才能观看调试信息;

附上网址:http://blog.csdn.net/wbainngg123/article/details/51888686

2、LwIP需要打开debug.h

在#ifdef LWIP_DEBUG一行上加上#define LWIP_DEBUG

编译后会出错,即开启DEBUG后 编译出错问题

原因是:后面的调用传参的时候有个宏定义U16_F没有定义。

#define LWIP_DEBUG//或者在option for target中的C++添加宏
#define U16_F "hu"
#define S16_F  "d"
#define X16_F "hx"
#define U32_F "u"
#define S32_F "d"
#define X32_F "x"
#define SZT_F "uz"
#define LWIP_PLATFORM_DIAG(x) do {printf x;} while(0)
//将printf重定向到debug窗口打印

//最后是源码

#define LWIP_DEBUGF(debug, message) do { \
                               if ( \
                                   ((debug) & LWIP_DBG_ON) && \
                                   ((debug) & LWIP_DBG_TYPES_ON) && \
                                   ((s16_t)((debug) & LWIP_DBG_MASK_LEVEL) >= LWIP_DBG_MIN_LEVEL)) { \
                                 LWIP_PLATFORM_DIAG(message); \
                                 if ((debug) & LWIP_DBG_HALT) { \
                                   while(1); \
                                 } \
                               } \
                             } while(0)

3、在opt.h中将LWIP_DBG_OFF 改为LWIP_DBG_ON;当然只需要你对那一项感兴趣的打开即可

#ifndef TCP_DEBUG
#define TCP_DEBUG                       LWIP_DBG_ON
#endif

4、打开Debug(printf)viewer即可观看打印信息



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值