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