Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页

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

    其它全志芯片讨论区
    xr806 xr872 faq 技术支持
    1
    1
    231
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • q1215200171
      budbool LV 8 last edited by

      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:

      /* Debug on/off */
      #define LWIP_DEBUG
      

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

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

      #define LWIP_DBG_MIN_LEVEL              LWIP_DBG_LEVEL_ALL
      #define LWIP_DBG_TYPES_ON               LWIP_DBG_ON
      

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

      #define SOCKETS_DEBUG                   LWIP_DBG_ON
      

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

      使能 LWIP_STATS:

      #define LWIP_STATS                     1
      #define LWIP_STATS_DISPLAY             1
      

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

      #define MEM_STATS                       ((MEM_LIBC_MALLOC == 0) && (MEM_USE_POOLS == 0))
      

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

      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();           // 打印上面所有信息
      
      1 Reply Last reply Reply Quote Share 0
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • Referenced by  q1215200171 q1215200171 
      • 1 / 1
      • First post
        Last post

      Copyright © 2022 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

      行为准则 | 用户协议 | 隐私权政策