调试LwIP攻略(keil版)

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即可观看打印信息



你可能感兴趣的:(C++/C)