Showing results for 
Search instead for 
Did you mean: 

Resource Library

How to enable Debug prints for LwIP in WICED SDK


How to enable Debug prints for LwIP in WICED SDK

By default the LwIP standard debug prints are disabled to save memory and re-use the same for other parts of application threads. But in-case, you need to enable the standard debug prints in LwIP stack, which is done by LWIP_DEBUGF, you need to follow the steps mentioned below.

lwipopts for WICED SDK can be found in 43xxx_Wi-Fi/WICED/network/LwIP/WWD/FreeRTOS/lwipopts.h. If you are on a DEBUG build (specified by -debug in the make target), WICED_LWIP_DEBUG macro will be enabled, but the prints are still disabled by default.


A standard snip example is considered to demonstrate the how-to operation for a DEBUG build.

  1. Make Target: snip.tcp_client-<platform_name>-FreeRTOS-LwIP-debug download

    2. Switch the LWIP_DBG_TYPES_ON to LWIP_DBG_ON


    3. To enable specific debug messages in LWIP, just set the specific define value for the *_DEBUG value to " LWIP_DBG_ON". A comprehensive list of debug                          defines that can be enabled usually found in the 43xxx_Wi-Fi/WICED/network/LwIP/ver2.0.3/src/include/lwip/opt.h file. You need to copy the defines          for the  debug messages you want to enable into the lwipopts.h file and enable them there. As an example, I have switched the following on in my lwipopts.h file

#define TCP_DEBUG                       LWIP_DBG_ON

#define ETHARP_DEBUG                    LWIP_DBG_ON

#define PBUF_DEBUG                      LWIP_DBG_ON

#define IP_DEBUG                        LWIP_DBG_ON

#define TCPIP_DEBUG                     LWIP_DBG_ON

#define DHCP_DEBUG                      LWIP_DBG_ON

#define UDP_DEBUG                       LWIP_DBG_ON

Attached is the modified lwipopts.h file and and the uart terminal print. Please note that enabling debug prints can add extra size (approximately 20 kB for the mentioned settings) to the code. It will also slow down performance of the LwIP code due to required run-time checks and output. It's is recommended to enable debug support only if there is no chance of attaching an external debugger to the target platform and step through the code.

Version history
Revision #:
1 of 1
Last update:
‎Jun 28, 2020 09:35 PM
Updated by: