前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >全志XR806芯片 如何打开 LwIP 调试信息?

全志XR806芯片 如何打开 LwIP 调试信息?

作者头像
阿志小管家
发布2024-02-02 16:00:30
1400
发布2024-02-02 16:00:30
举报
文章被收录于专栏:全志嵌入式那些事

1. 问题背景 出现网络问题时,常常需要打开 LwIP 内部打印信息调试、查看协议栈运行状态,以获取更多的有效信息。

2. 问题描述 如何打开 LwIP 调试信息?

3. 问题分析 LwIP 内部调试信息有两类: (1) LWIP_DEBUG,可以显示协议栈内部各层运行流程,收发通路信息等。 (2) LWIP_STATS,可以显示协议栈内部各种资源使用情况,包括内存、队列、信号量等。

4. 解决办法

(1) 打开 LWIP_DEBUG 的方式 文件 include/net/lwip-x.x.x/arch/cc.h 中使能 DEBUG:

代码语言:javascript
复制
/* Debug on/off */
#define LWIP_DEBUG

文件 include/net/lwip-2.0.3/lwipopts.h 中

设置调试等级,使能全局调试信息:

代码语言:javascript
复制
#define LWIP_DBG_MIN_LEVEL              LWIP_DBG_LEVEL_ALL
#define LWIP_DBG_TYPES_ON               LWIP_DBG_ON

根据需要打开相应类别的调试信息,如 socket 相关调试信息:

代码语言:javascript
复制
#define SOCKETS_DEBUG                   LWIP_DBG_ON

(2) 打开 LWIP_STATS 的方式 文件 include/net/lwip-2.0.3/lwipopts.h 中

使能 LWIP_STATS:

代码语言:javascript
复制
#define LWIP_STATS                     1
#define LWIP_STATS_DISPLAY             1

根据需要打开相应类别的统计信息(默认已打开),如协议栈堆内存使用信息:

代码语言:javascript
复制
#define MEM_STATS                       ((MEM_LIBC_MALLOC == 0) && (MEM_USE_POOLS == 0))

最后自行调用相应统计函数,就可以显示当前协议栈统计信息:

代码语言:javascript
复制
LINK_STATS_DISPLAY();      // 链路层统计信息
ETHARP_STATS_DISPLAY();    // ARP层统计信息
IPFRAG_STATS_DISPLAY();    // IP层分片统计信息
IP_STATS_DISPLAY();        // IP层统计信息
IGMP_STATS_DISPLAY();      // IGMP协议统计信息
ICMP_STATS_DISPLAY();      // ICMP协议统计信息
UDP_STATS_DISPLAY();       // UDP层统计信息
TCP_STATS_DISPLAY();       // TCP层统计信息
MEM_STATS_DISPLAY();       // 堆内存使用统计信息
MEMP_STATS_DISPLAY(i);     // 内存池i的使用统计信息
SYS_STATS_DISPLAY();       // 系统统计信息,包括队列(mbox)、信号量、锁
stats_display();           // 打印上面所有信息

原贴链接:https://bbs.aw-ol.com/topic/729

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档