diff --git a/arduino/realtek-ambz/cores/arduino/sdk_extern.h b/arduino/realtek-ambz/cores/arduino/sdk_extern.h index 5e228ee..09ea421 100644 --- a/arduino/realtek-ambz/cores/arduino/sdk_extern.h +++ b/arduino/realtek-ambz/cores/arduino/sdk_extern.h @@ -6,7 +6,18 @@ #include #include +// disable typedef in basic_types.h #define boolean boolean_rtl + +#include // define string macros first +#undef isdigit // then remove them, as they conflict +#undef islower // with ctype.h macros +#undef isprint +#undef isspace +#undef isxdigit +#undef strtol +#undef strtoul + #include #include #include @@ -14,6 +25,8 @@ #include #include #include + +// remove previously defined workaround #undef boolean // stdio.h @@ -36,3 +49,5 @@ extern void wait_us(int us); extern int LOGUART_SetBaud(uint32_t BaudRate); // from fixups/log_uart.c extern void DumpForOneBytes(void *addr, int cnt); // cnt max 0x70! extern void SystemCoreClockUpdate(void); + +extern int _sscanf_patch(const char *buf, const char *fmt, ...); diff --git a/builder/frameworks/realtek-ambz-sdk.py b/builder/frameworks/realtek-ambz-sdk.py index 496b0e9..8b4606d 100644 --- a/builder/frameworks/realtek-ambz-sdk.py +++ b/builder/frameworks/realtek-ambz-sdk.py @@ -58,9 +58,14 @@ env.Append( "M3", "CONFIG_PLATFORM_8711B", ("F_CPU", "166000000L"), + # LwIP options ("LWIP_TIMEVAL_PRIVATE", "0"), ("LWIP_NETIF_HOSTNAME", "1"), # to support hostname changing ("LWIP_SO_RCVBUF", "1"), # for ioctl(FIONREAD) + ("ip_addr", "ip4_addr"), # LwIP 2.0.x compatibility + ("ip_addr_t", "ip4_addr_t"), # LwIP 2.0.x compatibility + ("IN_ADDR_T_DEFINED", "1"), + ("in_addr_t", "u32_t"), ("INT_MAX", "2147483647"), # for RECV_BUFSIZE_DEFAULT ("ERRNO", "1"), # for LwIP ("vprintf", "rtl_vprintf"), @@ -204,8 +209,8 @@ env.AddLibrary( ], ) -# Sources - lwIP 1.4.1 -env.AddLibraryLwIP(version="1.4.1", port="amb1") +# Sources - lwIP 2.0.0 +env.AddLibraryLwIP(version="2.0.0", port="amb1") # Sources - mbedTLS env.AddLibrary( diff --git a/builder/libs/lwip.py b/builder/libs/lwip.py index c2bafdc..29a40ee 100644 --- a/builder/libs/lwip.py +++ b/builder/libs/lwip.py @@ -39,7 +39,6 @@ def env_add_lwip( ], includes=[ "+", - "+", "+", *port_includes, ], diff --git a/platform.json b/platform.json index 1cfcf68..6b976f5 100644 --- a/platform.json +++ b/platform.json @@ -33,7 +33,7 @@ }, "libraries": { "lwip": [ - "v1.4.1-amb1" + "v2.0.0-amb1" ] } }, diff --git a/platform/realtek-ambz/fixups/inc/err.h b/platform/realtek-ambz/fixups/inc/err.h new file mode 100644 index 0000000..99eb559 --- /dev/null +++ b/platform/realtek-ambz/fixups/inc/err.h @@ -0,0 +1,5 @@ +/* Copyright (c) Kuba Szczodrzyński 2022-05-22. */ + +#pragma once + +#include diff --git a/platform/realtek-ambz/fixups/inc/lwip/lwip_timers.h b/platform/realtek-ambz/fixups/inc/lwip/lwip_timers.h new file mode 100644 index 0000000..b2a2774 --- /dev/null +++ b/platform/realtek-ambz/fixups/inc/lwip/lwip_timers.h @@ -0,0 +1,5 @@ +/* Copyright (c) Kuba Szczodrzyński 2022-05-22. */ + +#pragma once + +#include diff --git a/platform/realtek-ambz/fixups/inc/lwipopts.h b/platform/realtek-ambz/fixups/inc/lwipopts.h index b99225a..aae0b09 100644 --- a/platform/realtek-ambz/fixups/inc/lwipopts.h +++ b/platform/realtek-ambz/fixups/inc/lwipopts.h @@ -41,7 +41,10 @@ /* Define LWIP_COMPAT_MUTEX if the port has no mutexes and binary semaphores should be used instead */ -#define LWIP_COMPAT_MUTEX 1 +#define LWIP_COMPAT_MUTEX 1 +#define LWIP_COMPAT_MUTEX_ALLOWED 1 + +#define LWIP_TCPIP_TIMEOUT 1 #define ETHARP_TRUST_IP_MAC 0 #define IP_REASSEMBLY 1 diff --git a/platform/realtek-ambz/fixups/inc/platform_opts.h b/platform/realtek-ambz/fixups/inc/platform_opts.h index 0831f7b..a2d6d16 100644 --- a/platform/realtek-ambz/fixups/inc/platform_opts.h +++ b/platform/realtek-ambz/fixups/inc/platform_opts.h @@ -1,6 +1,7 @@ // CHANGES: // - 2022-05-08 change CONFIG_USE_POLARSSL to CONFIG_USE_MBEDTLS // - 2022-05-08 use static int errno +// - 2022-05-18 include lwip/init.h /** @@ -22,6 +23,7 @@ #undef errno // undefine __errno() macro extern int errno; // use a static errno +#include /*For MP mode setting*/ //#define SUPPORT_MP_MODE 1 diff --git a/platform/realtek-ambz/fixups/inc/sockets.h b/platform/realtek-ambz/fixups/inc/sockets.h new file mode 100644 index 0000000..3f34b76 --- /dev/null +++ b/platform/realtek-ambz/fixups/inc/sockets.h @@ -0,0 +1,5 @@ +/* Copyright (c) Kuba Szczodrzyński 2022-05-23. */ + +#pragma once + +#include diff --git a/platform/realtek-ambz/fixups/inc/sys.h b/platform/realtek-ambz/fixups/inc/sys.h new file mode 100644 index 0000000..7a8cd6d --- /dev/null +++ b/platform/realtek-ambz/fixups/inc/sys.h @@ -0,0 +1,5 @@ +/* Copyright (c) Kuba Szczodrzyński 2022-05-22. */ + +#pragma once + +#include diff --git a/platform/realtek-ambz/fixups/inc/tcpip.h b/platform/realtek-ambz/fixups/inc/tcpip.h new file mode 100644 index 0000000..9809214 --- /dev/null +++ b/platform/realtek-ambz/fixups/inc/tcpip.h @@ -0,0 +1,5 @@ +/* Copyright (c) Kuba Szczodrzyński 2022-05-22. */ + +#pragma once + +#include diff --git a/platform/realtek-ambz/fixups/inc/udp.h b/platform/realtek-ambz/fixups/inc/udp.h new file mode 100644 index 0000000..70524e9 --- /dev/null +++ b/platform/realtek-ambz/fixups/inc/udp.h @@ -0,0 +1,10 @@ +/* Copyright (c) Kuba Szczodrzyński 2022-05-23. */ + +#pragma once + +#include + +// this is included only by wifi_simple_config.c +// which uses lwip_ntohl without parentheses +// so the #define from lwip/def.h doesn't work +#define lwip_ntohl lwip_htonl