[原创]如何设置LWIP调试信息的输出
0赞
发表于 11/22/2010 6:21:52 PM
阅读(5388)
如何编写LwIP中ICMP和TCP/IP的调试信息;
调试该函数的时候打出来的调试信息格式和调试PPP协议调试信息格式是完全不一样的,首先我们先找到该函数的使用语句;
例如(LWIP\core\ipv4\icmp.c)中出现以下语句:
LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: checksum failed for received ICMP echo\r\n"));
LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: ICMP type %"S16_F" code %"S16_F" not supported.\r\n", (s16_t)type, (s16_t)code));
LWIP_DEBUGF(ICMP_DEBUG, ("icmp_input: ICMP type %"S16_F" code %"S16_F" not supported.\r\n", (s16_t)type, (s16_t)code));
首先第一步先修改(LWIP\include\lwip\opt.h)文件中的设置参数,将ICMP的调试信息输出由原来的DBG_OFF参数设置成DBG_ON
#ifndef ICMP_DEBUG
#define ICMP_DEBUG DBG_ON//DBG_OFF
#endif
#define ICMP_DEBUG DBG_ON//DBG_OFF
#endif
#ifndef DBG_TYPES_ON
#define DBG_TYPES_ON DBG_ON//Modify By SmallBox At 2007.03.02 (Old Value = 0)
#endif
#define DBG_TYPES_ON DBG_ON//Modify By SmallBox At 2007.03.02 (Old Value = 0)
#endif
打开两个参数以后这样在调试ICMP的时候就可以显示出来需要的调试信息了。
这样还不能完全解决问题还要找到LWIP_DEBUGF调用该函数的语句,做以下修改:
(LWIP\include\lwip\debug.h)在该文件中添加以下语句
//Add By SmallBox at 2007.03.02
这样还不能完全解决问题还要找到LWIP_DEBUGF调用该函数的语句,做以下修改:
(LWIP\include\lwip\debug.h)在该文件中添加以下语句
//Add By SmallBox at 2007.03.02
void LWIP_PLATFORM_DIAG_HE(const char *format,...);
#define LWIP_DEBUG 1
#ifndef LWIP_PLATFORM_DIAG
# define LWIP_PLATFORM_DIAG(x) LWIP_PLATFORM_DIAG_HE x
#endif
//Add End
# define LWIP_PLATFORM_DIAG(x) LWIP_PLATFORM_DIAG_HE x
#endif
//Add End
剩下的问题就是书写void LWIP_PLATFORM_DIAG_HE(const char *format, ...)这个函数了。该函数实现向串口输出调试信息。书写完以后即可完成。
