From 4958690d9e41253352a1fe5b2031fc0fc5c8f1e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Wed, 31 Aug 2022 22:38:07 +0200 Subject: [PATCH] [core] Make lwIP debugging configurable --- arduino/libretuya/core/LibreTuyaConfig.h | 8 ++++ platform/common/config/lwipopts.h | 57 ++++++++++++++++++++++++ 2 files changed, 65 insertions(+) diff --git a/arduino/libretuya/core/LibreTuyaConfig.h b/arduino/libretuya/core/LibreTuyaConfig.h index 9c0f4ef..a8fa9eb 100644 --- a/arduino/libretuya/core/LibreTuyaConfig.h +++ b/arduino/libretuya/core/LibreTuyaConfig.h @@ -107,3 +107,11 @@ #ifndef LT_DEBUG_MDNS #define LT_DEBUG_MDNS 0 #endif + +#ifndef LT_DEBUG_LWIP +#define LT_DEBUG_LWIP 0 +#endif + +#ifndef LT_DEBUG_LWIP_ASSERT +#define LT_DEBUG_LWIP_ASSERT 0 +#endif diff --git a/platform/common/config/lwipopts.h b/platform/common/config/lwipopts.h index 76f79b3..b787bae 100644 --- a/platform/common/config/lwipopts.h +++ b/platform/common/config/lwipopts.h @@ -1,5 +1,7 @@ /* Copyright (c) Kuba SzczodrzyƄski 2022-08-26. */ +#include + #define LWIP_TIMEVAL_PRIVATE 0 #define LWIP_NETIF_HOSTNAME 1 // to support hostname changing #define LWIP_SO_RCVBUF 1 // for ioctl(FIONREAD) @@ -8,3 +10,58 @@ #define MDNS_MAX_SERVICES 10 #include_next "lwipopts.h" + +// set lwIP debugging options according to LT config +#if LT_DEBUG_LWIP +#undef LWIP_DEBUG +#define LWIP_DEBUG 1 +// make lwIP use printf() library +#include +#undef LWIP_PLATFORM_DIAG +// clang-format off +#define LWIP_PLATFORM_DIAG(x) do { printf x; } while (0) +// clang-format on +#endif + +#if LT_DEBUG_LWIP_ASSERT +#undef LWIP_NOASSERT +#undef LWIP_PLATFORM_ASSERT +// clang-format off +#define LWIP_PLATFORM_ASSERT(x) do { printf("ASSERT \"%s\" - %s:%d\n", x, __FILE__, __LINE__); while (1) {}; } while (0) +// clang-format on +#endif + +// remove family-defined debugging options (use lwIP defaults, or user-defined) +#undef ETHARP_DEBUG +#undef NETIF_DEBUG +#undef PBUF_DEBUG +#undef API_LIB_DEBUG +#undef API_MSG_DEBUG +#undef SOCKETS_DEBUG +#undef ICMP_DEBUG +#undef IGMP_DEBUG +#undef INET_DEBUG +#undef IP_DEBUG +#undef IP_REASS_DEBUG +#undef RAW_DEBUG +#undef MEM_DEBUG +#undef MEMP_DEBUG +#undef SYS_DEBUG +#undef TIMERS_DEBUG +#undef TCP_DEBUG +#undef TCP_INPUT_DEBUG +#undef TCP_FR_DEBUG +#undef TCP_RTO_DEBUG +#undef TCP_CWND_DEBUG +#undef TCP_WND_DEBUG +#undef TCP_OUTPUT_DEBUG +#undef TCP_RST_DEBUG +#undef TCP_QLEN_DEBUG +#undef UDP_DEBUG +#undef TCPIP_DEBUG +#undef SLIP_DEBUG +#undef DHCP_DEBUG +#undef AUTOIP_DEBUG +#undef DNS_DEBUG +#undef IP6_DEBUG +#undef MDNS_DEBUG