From ce0a88147bc82ac130034449b4b73603c0114257 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Thu, 2 Mar 2023 18:30:16 +0100 Subject: [PATCH] [realtek-ambz] Update base core to new structure --- builder/family/realtek-ambz.py | 21 +- .../base/compat/lwip}/lwip_timers.h | 0 cores/common/base/config/lwipopts.h | 1 + cores/realtek-amb/arduino/src/main.cpp | 16 +- cores/realtek-amb/base/config/build_info.h | 3 +- cores/realtek-amb/base/config/main.h | 155 ++------ cores/realtek-amb/{ => base}/lt_defs.h | 0 cores/realtek-amb/base/lt_family_api.c | 14 +- cores/realtek-amb/base/sdk_mem.c | 16 - cores/realtek-amb/base/sdk_mem.h | 19 - cores/realtek-amb/base/sdk_private.h | 8 + .../realtek-ambz/base/config/FreeRTOSConfig.h | 209 +---------- cores/realtek-ambz/base/config/autoconf.h | 5 - cores/realtek-ambz/base/config/lwipopts.h | 336 +---------------- .../base/config/platform_autoconf.h | 241 ------------ .../realtek-ambz/base/config/platform_opts.h | 349 +----------------- cores/realtek-ambz/base/lt_family.h | 18 + .../base/config/FreeRTOSConfig.h | 299 --------------- cores/realtek-ambz2/base/config/autoconf.h | 5 - cores/realtek-ambz2/base/config/lwipopts.h | 5 - 20 files changed, 119 insertions(+), 1601 deletions(-) rename cores/{realtek-ambz/base/compat => common/base/compat/lwip}/lwip_timers.h (100%) rename cores/realtek-amb/{ => base}/lt_defs.h (100%) delete mode 100644 cores/realtek-amb/base/sdk_mem.c delete mode 100644 cores/realtek-amb/base/sdk_mem.h delete mode 100644 cores/realtek-ambz/base/config/autoconf.h delete mode 100644 cores/realtek-ambz/base/config/platform_autoconf.h create mode 100644 cores/realtek-ambz/base/lt_family.h delete mode 100644 cores/realtek-ambz2/base/config/FreeRTOSConfig.h delete mode 100644 cores/realtek-ambz2/base/config/autoconf.h delete mode 100644 cores/realtek-ambz2/base/config/lwipopts.h diff --git a/builder/family/realtek-ambz.py b/builder/family/realtek-ambz.py index bed7f69..2fbcc04 100644 --- a/builder/family/realtek-ambz.py +++ b/builder/family/realtek-ambz.py @@ -7,9 +7,11 @@ from SCons.Script import Builder, DefaultEnvironment, Environment env: Environment = DefaultEnvironment() board: PlatformBoardConfig = env.BoardConfig() +queue = env.AddLibraryQueue("realtek-ambz") +env.ConfigureFamily() # Flags -env.Append( +queue.AppendPublic( CCFLAGS=[ "-mcpu=cortex-m4", "-mthumb", @@ -55,7 +57,10 @@ env.Append( "-Os", "-Wl,--gc-sections", "-Wl,--cref", + # the entrypoint in ROM (?) "-Wl,--entry=Reset_Handler", + # start function table in startup.c + "-Wl,--undefined=gImage2EntryFun0", "-Wl,--no-enum-size-warning", "-Wl,--no-wchar-size-warning", "-Wl,-wrap,malloc", @@ -68,8 +73,6 @@ env.Append( "-Wl,-wrap,aes_80211_encrypt", "-Wl,-wrap,aes_80211_decrypt", "-Wl,-wrap,DecGTK", - # TODO what is this and is this needed? - "-Wl,--undefined=InfraStart", # stdio wrappers (base/port/printf.c) "-Wl,-wrap,rtl_printf", "-Wl,-wrap,rtl_sprintf", @@ -92,7 +95,7 @@ env.Append( # Sources - from SDK project/realtek_amebaz_va0_example/GCC-RELEASE/application.mk # - "console" is disabled as it introduces build error, and is generally useless # - "utilities example" are also not really needed -env.AddLibrary( +queue.AddLibrary( name="ambz_sdk", base_dir="$SDK_DIR", srcs=[ @@ -206,10 +209,10 @@ env.AddLibrary( ) # Sources - lwIP -env.AddExternalLibrary("lwip", port="amb1") +queue.AddExternalLibrary("lwip", port="amb1") # Sources - mbedTLS -env.AddLibrary( +queue.AddLibrary( name="ambz_mbedtls", base_dir="$SDK_DIR", srcs=[ @@ -225,7 +228,7 @@ env.AddLibrary( ) # Libs & linker config -env.Append( +queue.AppendPublic( LIBPATH=[ # fmt: off join("$SDK_DIR", "component", "soc", "realtek", "8711b", "misc", "bsp", "lib", "common", "GCC"), @@ -280,13 +283,13 @@ target_boot = env.StaticLibrary( join("$BUILD_DIR", "boot_all"), env.BinToObj( join("$BUILD_DIR", "boot_all.o"), - join("$BIN_DIR", boot_all), + join("$MISC_DIR", boot_all), ), ) env.Prepend(LIBS=[target_boot]) # Build all libraries -env.BuildLibraries() +queue.BuildLibraries() # Main firmware outputs and actions env.Replace( diff --git a/cores/realtek-ambz/base/compat/lwip_timers.h b/cores/common/base/compat/lwip/lwip_timers.h similarity index 100% rename from cores/realtek-ambz/base/compat/lwip_timers.h rename to cores/common/base/compat/lwip/lwip_timers.h diff --git a/cores/common/base/config/lwipopts.h b/cores/common/base/config/lwipopts.h index 9e5c6fe..833df85 100644 --- a/cores/common/base/config/lwipopts.h +++ b/cores/common/base/config/lwipopts.h @@ -69,6 +69,7 @@ #undef MDNS_DEBUG #undef LWIP_DONT_PROVIDE_BYTEORDER_FUNCTIONS +#undef LWIP_PROVIDE_ERRNO /** Set this to 1 to support DNS names (or IP address strings) to set sntp servers * One server address/name can be defined as default if SNTP_SERVER_DNS == 1: diff --git a/cores/realtek-amb/arduino/src/main.cpp b/cores/realtek-amb/arduino/src/main.cpp index 2eeaaed..56246a8 100644 --- a/cores/realtek-amb/arduino/src/main.cpp +++ b/cores/realtek-amb/arduino/src/main.cpp @@ -6,22 +6,8 @@ extern "C" { #include -extern uint32_t GlobalDebugEnable; -extern uint16_t GlobalDebugLevel; -extern uint8_t GlobalPrivateLog; -extern uint8_t lt_uart_port; - -} // extern "C" - osThreadId main_tid = 0; -void initArduino() { - // make the SDK less verbose by default - GlobalDebugEnable = 0; - GlobalPrivateLog = 0; - lt_uart_port = LT_UART_DEFAULT_PORT; -} - bool startMainTask() { osThreadDef(mainTask, osPriorityRealtime, 1, 4096 * 4); main_tid = osThreadCreate(osThread(mainTask), NULL); @@ -35,3 +21,5 @@ void wait_for_debug() { } delay(1000); } + +} // extern "C" diff --git a/cores/realtek-amb/base/config/build_info.h b/cores/realtek-amb/base/config/build_info.h index bebb18f..d2ff95a 100644 --- a/cores/realtek-amb/base/config/build_info.h +++ b/cores/realtek-amb/base/config/build_info.h @@ -1,6 +1,6 @@ #pragma once -#define RTL_FW_COMPILE_TIME "20020/01/01-00:00:00" +#define RTL_FW_COMPILE_TIME "2020/01/01-00:00:00" #define RTL_FW_COMPILE_DATE "20200101" #define UTS_VERSION "2020/01/01-00:00:00" #define RTL8195AFW_COMPILE_TIME "2020/01/01-00:00:00" @@ -9,6 +9,7 @@ #define RTL8195AFW_COMPILE_HOST "localhost" #define RTL8195AFW_COMPILE_DOMAIN "localhost" #define RTL8195AFW_COMPILER "gcc" +#define RTL195AFW_COMPILER "gcc" #define RTL8710CFW_COMPILE_TIME "2020/01/01-00:00:00" #define RTL8710CFW_COMPILE_DATE "20200101" #define RTL8710CFW_COMPILE_BY "root" diff --git a/cores/realtek-amb/base/config/main.h b/cores/realtek-amb/base/config/main.h index 2f996a9..dde552c 100644 --- a/cores/realtek-amb/base/config/main.h +++ b/cores/realtek-amb/base/config/main.h @@ -1,122 +1,45 @@ -#ifndef MAIN_H -#define MAIN_H +#pragma once #include -#ifndef CONFIG_WLAN -#define CONFIG_WLAN 1 -#endif - -/* Header file declaration*/ void wlan_network(); -/* Interactive Mode */ -#define SERIAL_DEBUG_RX 1 +// clang-format off +#define WEP40_KEY { 0x12, 0x34, 0x56, 0x78, 0x90 } +// clang-format on -/* WLAN and Netork */ -#define STA_MODE_SSID "ap" /* Set SSID here */ -#define AP_MODE_SSID "wlan_ap_ssid" /* Set SSID here */ -#define AP_DEFAULT_CH 6 -#define WLAN0_NAME "wlan0" -#define WLAN1_NAME "wlan1" -#define WPA_PASSPHRASE "1234567890" /* Max 32 cahracters */ -#define WEP40_KEY {0x12, 0x34, 0x56, 0x78, 0x90} - -#define ATVER_1 1 // For First AT command -#define ATVER_2 2 // For UART Module AT command - -#if CONFIG_EXAMPLE_UART_ATCMD -#define ATCMD_VER ATVER_2 -#else -#define ATCMD_VER ATVER_1 -#endif - -#if ATCMD_VER == ATVER_2 -#undef CONFIG_EXAMPLE_WLAN_FAST_CONNECT -#define CONFIG_EXAMPLE_WLAN_FAST_CONNECT 1 - -extern unsigned char sta_ip[4], sta_netmask[4], sta_gw[4]; -extern unsigned char ap_ip[4], ap_netmask[4], ap_gw[4]; - -/*Static IP ADDRESS*/ -#define IP_ADDR0 sta_ip[0] -#define IP_ADDR1 sta_ip[1] -#define IP_ADDR2 sta_ip[2] -#define IP_ADDR3 sta_ip[3] - -/*NETMASK*/ -#define NETMASK_ADDR0 sta_netmask[0] -#define NETMASK_ADDR1 sta_netmask[1] -#define NETMASK_ADDR2 sta_netmask[2] -#define NETMASK_ADDR3 sta_netmask[3] - -/*Gateway Address*/ -#define GW_ADDR0 sta_gw[0] -#define GW_ADDR1 sta_gw[1] -#define GW_ADDR2 sta_gw[2] -#define GW_ADDR3 sta_gw[3] - -/*******************************************/ - -/*Static IP ADDRESS*/ -#define AP_IP_ADDR0 ap_ip[0] -#define AP_IP_ADDR1 ap_ip[1] -#define AP_IP_ADDR2 ap_ip[2] -#define AP_IP_ADDR3 ap_ip[3] - -/*NETMASK*/ -#define AP_NETMASK_ADDR0 ap_netmask[0] -#define AP_NETMASK_ADDR1 ap_netmask[1] -#define AP_NETMASK_ADDR2 ap_netmask[2] -#define AP_NETMASK_ADDR3 ap_netmask[3] - -/*Gateway Address*/ -#define AP_GW_ADDR0 ap_gw[0] -#define AP_GW_ADDR1 ap_gw[1] -#define AP_GW_ADDR2 ap_gw[2] -#define AP_GW_ADDR3 ap_gw[3] - -#else - -/*Static IP ADDRESS*/ -#define IP_ADDR0 192 -#define IP_ADDR1 168 -#define IP_ADDR2 1 -#define IP_ADDR3 80 - -/*NETMASK*/ -#define NETMASK_ADDR0 255 -#define NETMASK_ADDR1 255 -#define NETMASK_ADDR2 255 -#define NETMASK_ADDR3 0 - -/*Gateway Address*/ -#define GW_ADDR0 192 -#define GW_ADDR1 168 -#define GW_ADDR2 1 -#define GW_ADDR3 1 - -/*******************************************/ - -/*Static IP ADDRESS*/ -#define AP_IP_ADDR0 192 -#define AP_IP_ADDR1 168 -#define AP_IP_ADDR2 43 -#define AP_IP_ADDR3 1 - -/*NETMASK*/ -#define AP_NETMASK_ADDR0 255 -#define AP_NETMASK_ADDR1 255 -#define AP_NETMASK_ADDR2 255 -#define AP_NETMASK_ADDR3 0 - -/*Gateway Address*/ -#define AP_GW_ADDR0 192 -#define AP_GW_ADDR1 168 -#define AP_GW_ADDR2 43 -#define AP_GW_ADDR3 1 - -#endif //#if ATCMD_VER == ATVER_2 - - -#endif +#define CONFIG_WLAN 1 +#define SERIAL_DEBUG_RX 1 +#define STA_MODE_SSID "ap" +#define AP_MODE_SSID "wlan_ap_ssid" +#define AP_DEFAULT_CH 6 +#define WLAN0_NAME "wlan0" +#define WLAN1_NAME "wlan1" +#define WPA_PASSPHRASE "1234567890" +#define ATVER_1 1 +#define ATVER_2 2 +#define ATCMD_VER ATVER_1 +#define IP_ADDR0 192 +#define IP_ADDR1 168 +#define IP_ADDR2 1 +#define IP_ADDR3 80 +#define NETMASK_ADDR0 255 +#define NETMASK_ADDR1 255 +#define NETMASK_ADDR2 255 +#define NETMASK_ADDR3 0 +#define GW_ADDR0 192 +#define GW_ADDR1 168 +#define GW_ADDR2 1 +#define GW_ADDR3 1 +#define AP_IP_ADDR0 192 +#define AP_IP_ADDR1 168 +#define AP_IP_ADDR2 43 +#define AP_IP_ADDR3 1 +#define AP_NETMASK_ADDR0 255 +#define AP_NETMASK_ADDR1 255 +#define AP_NETMASK_ADDR2 255 +#define AP_NETMASK_ADDR3 0 +#define AP_GW_ADDR0 192 +#define AP_GW_ADDR1 168 +#define AP_GW_ADDR2 43 +#define AP_GW_ADDR3 1 diff --git a/cores/realtek-amb/lt_defs.h b/cores/realtek-amb/base/lt_defs.h similarity index 100% rename from cores/realtek-amb/lt_defs.h rename to cores/realtek-amb/base/lt_defs.h diff --git a/cores/realtek-amb/base/lt_family_api.c b/cores/realtek-amb/base/lt_family_api.c index ddc4e17..5c09957 100644 --- a/cores/realtek-amb/base/lt_family_api.c +++ b/cores/realtek-amb/base/lt_family_api.c @@ -2,6 +2,18 @@ #include "lt_family_api.h" -ResetReason getResetReason() { +extern uint32_t GlobalDebugEnable; +extern uint16_t GlobalDebugLevel; +extern uint8_t GlobalPrivateLog; +extern uint8_t lt_uart_port; + +void lt_init_family() { + // make the SDK less verbose by default + GlobalDebugEnable = 0; + GlobalPrivateLog = 0; + lt_uart_port = LT_UART_DEFAULT_PORT; +} + +ResetReason lt_get_reset_reason() { return RESET_REASON_UNKNOWN; } diff --git a/cores/realtek-amb/base/sdk_mem.c b/cores/realtek-amb/base/sdk_mem.c deleted file mode 100644 index a91b8c4..0000000 --- a/cores/realtek-amb/base/sdk_mem.c +++ /dev/null @@ -1,16 +0,0 @@ -/* Copyright (c) Kuba Szczodrzyński 2022-05-06. */ - -#include "sdk_mem.h" - -#include // for memset - -void *pvPortZalloc(size_t size) { - void *pvReturn = pvPortMalloc(size); - if (pvReturn) - memset(pvReturn, 0, size); - return pvReturn; -} - -void *pvPortCalloc(size_t nmemb, size_t size) { - return pvPortZalloc(nmemb * size); -} diff --git a/cores/realtek-amb/base/sdk_mem.h b/cores/realtek-amb/base/sdk_mem.h deleted file mode 100644 index 2f0e9e2..0000000 --- a/cores/realtek-amb/base/sdk_mem.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright (c) Kuba Szczodrzyński 2022-05-06. */ - -#pragma once - -#include - -// provide extern functions directly, as callers -// generally don't expect needing to include malloc() -extern void *pvPortMalloc(size_t xWantedSize); -extern void *pvPortZalloc(size_t size); -extern void *pvPortCalloc(size_t nmemb, size_t size); -extern void *pvPortReAlloc(void *pv, size_t xWantedSize); -extern void vPortFree(void *pv); - -#define malloc pvPortMalloc -#define zalloc pvPortZalloc -#define calloc pvPortCalloc -#define realloc pvPortReAlloc -#define free vPortFree diff --git a/cores/realtek-amb/base/sdk_private.h b/cores/realtek-amb/base/sdk_private.h index 0653549..8ce2358 100644 --- a/cores/realtek-amb/base/sdk_private.h +++ b/cores/realtek-amb/base/sdk_private.h @@ -2,6 +2,10 @@ #pragma once +#ifdef __cplusplus +extern "C" { +#endif // __cplusplus + // va_list is declared by SDK and conflicting #include @@ -56,3 +60,7 @@ extern void DumpForOneBytes(void *addr, int cnt); // cnt max 0x70! extern void SystemCoreClockUpdate(void); extern int _sscanf_patch(const char *buf, const char *fmt, ...); + +#ifdef __cplusplus +} // extern "C" +#endif diff --git a/cores/realtek-ambz/base/config/FreeRTOSConfig.h b/cores/realtek-ambz/base/config/FreeRTOSConfig.h index d735e54..4a377c8 100644 --- a/cores/realtek-ambz/base/config/FreeRTOSConfig.h +++ b/cores/realtek-ambz/base/config/FreeRTOSConfig.h @@ -1,207 +1,8 @@ -/* - FreeRTOS V7.3.0 - Copyright (C) 2012 Real Time Engineers Ltd. +/* Copyright (c) Kuba Szczodrzyński 2023-03-02. */ - FEATURES AND PORTS ARE ADDED TO FREERTOS ALL THE TIME. PLEASE VISIT - http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. +#pragma once - *************************************************************************** - * * - * FreeRTOS tutorial books are available in pdf and paperback. * - * Complete, revised, and edited pdf reference manuals are also * - * available. * - * * - * Purchasing FreeRTOS documentation will not only help you, by * - * ensuring you get running as quickly as possible and with an * - * in-depth knowledge of how to use FreeRTOS, it will also help * - * the FreeRTOS project to continue with its mission of providing * - * professional grade, cross platform, de facto standard solutions * - * for microcontrollers - completely free of charge! * - * * - * >>> See http://www.FreeRTOS.org/Documentation for details. <<< * - * * - * Thank you for using FreeRTOS, and thank you for your support! * - * * - *************************************************************************** +#include_next "FreeRTOSConfig.h" - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation AND MODIFIED BY the FreeRTOS exception. - >>>NOTE<<< The modification to the GPL is included to allow you to - distribute a combined work that includes FreeRTOS without being obliged to - provide the source code for proprietary components outside of the FreeRTOS - kernel. FreeRTOS is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. You should have received a copy of the GNU General Public - License and the FreeRTOS license exception along with FreeRTOS; if not it - can be viewed here: http://www.freertos.org/a00114.html and also obtained - by writing to Richard Barry, contact details for whom are available on the - FreeRTOS WEB site. - - 1 tab == 4 spaces! - - *************************************************************************** - * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * - * * - * http://www.FreeRTOS.org/FAQHelp.html * - * * - *************************************************************************** - - - http://www.FreeRTOS.org - Documentation, training, latest versions, license - and contact details. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool. - - Real Time Engineers ltd license FreeRTOS to High Integrity Systems, who sell - the code with commercial support, indemnification, and middleware, under - the OpenRTOS brand: http://www.OpenRTOS.com. High Integrity Systems also - provide a safety engineered and independently SIL3 certified version under - the SafeRTOS brand: http://www.SafeRTOS.com. -*/ - -#ifndef FREERTOS_CONFIG_H -#define FREERTOS_CONFIG_H -#if defined(__ICCARM__) || defined(__CC_ARM) || defined(__GNUC__) -#include -extern uint32_t SystemCoreClock; -#endif -#include "platform_autoconf.h" - -/*----------------------------------------------------------- - * Application specific definitions. - * - * These definitions should be adjusted for your particular hardware and - * application requirements. - * - * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE - * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. - * - * See http://www.freertos.org/a00110.html. - *----------------------------------------------------------*/ - -#define configUSE_PREEMPTION 1 -#define configUSE_IDLE_HOOK 1 -#define configUSE_TICK_HOOK 0 -#define configCPU_CLOCK_HZ ( SystemCoreClock ) -#define configTICK_RATE_HZ ( ( uint32_t ) 1000 ) -#define configSYSTICK_CLOCK_HZ 32768 -#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 512 ) -#ifdef CONFIG_WIFI_EN -#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 160 * 1024 ) ) -#else -#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 20 * 1024 ) ) -#endif -#define configMAX_TASK_NAME_LEN ( 10 ) -#define configUSE_TRACE_FACILITY 0 -#define configUSE_16_BIT_TICKS 0 -#define configIDLE_SHOULD_YIELD 0 -#define configUSE_CO_ROUTINES 1 -#define configUSE_MUTEXES 1 -#define configUSE_TIMERS 1 - -#define configMAX_PRIORITIES ( 11 ) -#define PRIORITIE_OFFSET ( 4 ) - -#define configMAX_CO_ROUTINE_PRIORITIES ( 2 ) - -#define configUSE_COUNTING_SEMAPHORES 1 -#define configUSE_ALTERNATIVE_API 0 -#define configCHECK_FOR_STACK_OVERFLOW 2 -#define configUSE_RECURSIVE_MUTEXES 1 -#define configQUEUE_REGISTRY_SIZE 0 -#define configGENERATE_RUN_TIME_STATS 0 -#if configGENERATE_RUN_TIME_STATS -#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() //( ulHighFrequencyTimerTicks = 0UL ) -#define portGET_RUN_TIME_COUNTER_VALUE() xTickCount //ulHighFrequencyTimerTicks -#undef configUSE_TRACE_FACILITY -#define configUSE_TRACE_FACILITY 1 -#define portCONFIGURE_STATS_PEROID_VALUE 1000 //unit Ticks -#endif - -#define configTIMER_TASK_PRIORITY ( 1 ) -#define configTIMER_QUEUE_LENGTH ( 10 ) -#define configTIMER_TASK_STACK_DEPTH ( 512 ) //USE_MIN_STACK_SIZE modify from 512 to 256 - -#if (__IASMARM__ != 1) - -extern void freertos_pre_sleep_processing(unsigned int *expected_idle_time); -extern void freertos_post_sleep_processing(unsigned int *expected_idle_time); -extern int freertos_ready_to_sleep(); - -/* Enable tickless power saving. */ -#define configUSE_TICKLESS_IDLE 1 - -/* In wlan usage, this value is suggested to use value less than 80 milliseconds */ -#define configEXPECTED_IDLE_TIME_BEFORE_SLEEP 2 - -/* It's magic trick that let us can use our own sleep function */ -#define configPRE_SLEEP_PROCESSING( x ) ( freertos_pre_sleep_processing(&x) ) - -#define configPOST_SLEEP_PROCESSING( x ) ( freertos_post_sleep_processing(&x) ) - -/* It's magic trick that let us can enable/disable tickless dynamically */ -#define traceLOW_POWER_IDLE_BEGIN(); do { \ - if (!freertos_ready_to_sleep()) { \ - mtCOVERAGE_TEST_MARKER(); \ - break; \ - } - - // portSUPPRESS_TICKS_AND_SLEEP( xExpectedIdleTime ); - -#define traceLOW_POWER_IDLE_END(); } while (0); - -/* It's FreeRTOS related feature but it's not included in FreeRTOS design. */ -#define configUSE_WAKELOCK_PMU 1 - -#endif // #if (__IASMARM__ != 1) - -/* Set the following definitions to 1 to include the API function, or zero -to exclude the API function. */ -#define INCLUDE_vTaskPrioritySet 1 -#define INCLUDE_uxTaskPriorityGet 1 -#define INCLUDE_vTaskDelete 1 -#define INCLUDE_vTaskCleanUpResources 0 -#define INCLUDE_vTaskSuspend 1 -#define INCLUDE_vTaskDelayUntil 1 -#define INCLUDE_vTaskDelay 1 -#define INCLUDE_pcTaskGetTaskName 1 -#define INCLUDE_xTimerPendFunctionCall 1 - -/* Cortex-M specific definitions. */ -#ifdef __NVIC_PRIO_BITS - /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ - #define configPRIO_BITS __NVIC_PRIO_BITS -#else - #define configPRIO_BITS 4 /* 15 priority levels */ -#endif - - -/* The lowest interrupt priority that can be used in a call to a "set priority" -function. */ -#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0x0f - -/* The highest interrupt priority that can be used by any interrupt service -routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL -INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER -PRIORITY THAN THIS! (higher priorities are lower numeric values. */ -#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5 - - -/* Interrupt priorities used by the kernel port layer itself. These are generic -to all Cortex-M ports, and do not rely on any particular library functions. */ -#define configKERNEL_INTERRUPT_PRIORITY ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) ) -/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! -See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ -#define configMAX_SYSCALL_INTERRUPT_PRIORITY ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) ) - -//#define RTK_MODE_TIMER - - -#endif /* FREERTOS_CONFIG_H */ +#undef configTOTAL_HEAP_SIZE +#define configTOTAL_HEAP_SIZE ((size_t)(160 * 1024)) diff --git a/cores/realtek-ambz/base/config/autoconf.h b/cores/realtek-ambz/base/config/autoconf.h deleted file mode 100644 index ad291e9..0000000 --- a/cores/realtek-ambz/base/config/autoconf.h +++ /dev/null @@ -1,5 +0,0 @@ -/* Copyright (c) Kuba Szczodrzyński 2022-07-20. */ - -#pragma once - -#include_next "autoconf.h" diff --git a/cores/realtek-ambz/base/config/lwipopts.h b/cores/realtek-ambz/base/config/lwipopts.h index 3ccc9f1..7c5a6a9 100644 --- a/cores/realtek-ambz/base/config/lwipopts.h +++ b/cores/realtek-ambz/base/config/lwipopts.h @@ -1,333 +1,17 @@ -// CHANGES: -// - 2022-05-08 undefine LWIP_PROVIDE_ERRNO -// - 2022-05-23 enable LWIP_MDNS_RESPONDER -// - 2022-05-23 set LWIP_NUM_NETIF_CLIENT_DATA to 1 -// - 2022-05-23 set MEMP_NUM_UDP_PCB to 7 +/* Copyright (c) Kuba Szczodrzyński 2023-03-02. */ - -/** - ****************************************************************************** - * @file lwipopts.h - * @author MCD Application Team - * @version V1.1.0 - * @date 07-October-2011 - * @brief lwIP Options Configuration. - * This file is based on Utilities\lwip_v1.3.2\src\include\lwip\opt.h - * and contains the lwIP configuration for the STM32F2x7 demonstration. - ****************************************************************************** - * @attention - * - * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS - * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE - * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY - * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING - * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE - * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. - * - *

© COPYRIGHT 2011 STMicroelectronics

- ****************************************************************************** - */ - -#ifndef __LWIPOPTS_H__ -#define __LWIPOPTS_H__ +#pragma once #include_next "lwipopts.h" -#include -#include "platform_opts.h" -#define WIFI_LOGO_CERTIFICATION_CONFIG 0 //for ping 10k test buffer setting +// - 2022-05-23 set LWIP_NUM_NETIF_CLIENT_DATA to 1 +#define LWIP_NUM_NETIF_CLIENT_DATA 1 +// - 2022-05-23 set MEMP_NUM_UDP_PCB to 7 +#undef MEMP_NUM_UDP_PCB +#define MEMP_NUM_UDP_PCB 7 -/** - * SYS_LIGHTWEIGHT_PROT==1: if you want inter-task protection for certain - * critical regions during buffer allocation, deallocation and memory - * allocation and deallocation. - */ -#define SYS_LIGHTWEIGHT_PROT 1 - -/* Define LWIP_COMPAT_MUTEX if the port has no mutexes and binary semaphores - should be used instead */ -#define LWIP_COMPAT_MUTEX 1 +// LWIP_COMPAT_MUTEX cannot prevent priority inversion. It is recommended to implement priority-aware mutexes. (Define +// LWIP_COMPAT_MUTEX_ALLOWED to disable this error.) #define LWIP_COMPAT_MUTEX_ALLOWED 1 -#define LWIP_TCPIP_TIMEOUT 1 - -#define ETHARP_TRUST_IP_MAC 0 -#define IP_REASSEMBLY 1 -#define IP_FRAG 1 -#define ARP_QUEUEING 0 - -/** - * NO_SYS==1: Provides VERY minimal functionality. Otherwise, - * use lwIP facilities. - */ -#define NO_SYS 0 - -#ifndef CONFIG_DYNAMIC_TICKLESS -#define CONFIG_DYNAMIC_TICKLESS 0 -#endif - -/* ---------- Memory options ---------- */ -/* MEM_ALIGNMENT: should be set to the alignment of the CPU for which - lwIP is compiled. 4 byte alignment -> define MEM_ALIGNMENT to 4, 2 - byte alignment -> define MEM_ALIGNMENT to 2. */ -#define MEM_ALIGNMENT 4 - -/* MEM_SIZE: the size of the heap memory. If the application will send -a lot of data that needs to be copied, this should be set high. */ -#if WIFI_LOGO_CERTIFICATION_CONFIG - #define MEM_SIZE (10*1024) //for ping 10k test -#elif CONFIG_ETHERNET - #define MEM_SIZE (6*1024) //for iperf test -#else - #define MEM_SIZE (5*1024) -#endif - -/* MEMP_NUM_PBUF: the number of memp struct pbufs. If the application - sends a lot of data out of ROM (or other static memory), this - should be set high. */ -#define MEMP_NUM_PBUF 100 -/* MEMP_NUM_UDP_PCB: the number of UDP protocol control blocks. One - per active UDP "connection". */ -#define MEMP_NUM_UDP_PCB 7 -/* MEMP_NUM_TCP_PCB: the number of simulatenously active TCP - connections. */ -#define MEMP_NUM_TCP_PCB 10 -/* MEMP_NUM_TCP_PCB_LISTEN: the number of listening TCP - connections. */ -#define MEMP_NUM_TCP_PCB_LISTEN 5 -/* MEMP_NUM_TCP_SEG: the number of simultaneously queued TCP - segments. */ -#define MEMP_NUM_TCP_SEG 20 -/* MEMP_NUM_SYS_TIMEOUT: the number of simulateously active - timeouts. */ -#define MEMP_NUM_SYS_TIMEOUT 10 - - -/* ---------- Pbuf options ---------- */ -/* PBUF_POOL_SIZE: the number of buffers in the pbuf pool. */ -#if WIFI_LOGO_CERTIFICATION_CONFIG - #define PBUF_POOL_SIZE 30 //for ping 10k test -#else - #define PBUF_POOL_SIZE 20 -#endif - -/* IP_REASS_MAX_PBUFS: Total maximum amount of pbufs waiting to be reassembled.*/ -#if WIFI_LOGO_CERTIFICATION_CONFIG - #define IP_REASS_MAX_PBUFS 30 //for ping 10k test -#else - #define IP_REASS_MAX_PBUFS 10 -#endif - -/* PBUF_POOL_BUFSIZE: the size of each pbuf in the pbuf pool. */ -#define PBUF_POOL_BUFSIZE 500 - - -/* ---------- TCP options ---------- */ -#define LWIP_TCP 1 -#define TCP_TTL 255 - -/* Controls if TCP should queue segments that arrive out of - order. Define to 0 if your device is low on memory. */ -#define TCP_QUEUE_OOSEQ 1 - -/* TCP Maximum segment size. */ -#define TCP_MSS (1500 - 40) /* TCP_MSS = (Ethernet MTU - IP header size - TCP header size) */ - -/* TCP sender buffer space (bytes). */ -#define TCP_SND_BUF (5*TCP_MSS) - -/* TCP_SND_QUEUELEN: TCP sender buffer space (pbufs). This must be at least - as much as (2 * TCP_SND_BUF/TCP_MSS) for things to work. */ - -#define TCP_SND_QUEUELEN (4* TCP_SND_BUF/TCP_MSS) - -/* TCP receive window. */ -#define TCP_WND (2*TCP_MSS) - - -/* ---------- ICMP options ---------- */ -#define LWIP_ICMP 1 - -/* ---------- ARP options ----------- */ -#define LWIP_ARP 1 - -/* ---------- DHCP options ---------- */ -/* Define LWIP_DHCP to 1 if you want DHCP configuration of - interfaces. DHCP is not implemented in lwIP 0.5.1, however, so - turning this on does currently not work. */ -#define LWIP_DHCP 1 - - -/* ---------- UDP options ---------- */ -#define LWIP_UDP 1 -#define UDP_TTL 255 -/* ---------- DNS options ---------- */ -#define LWIP_DNS 1 - -/* ---------- UPNP options --------- */ -#define LWIP_UPNP 0 - -/* Support Multicast */ -#define LWIP_IGMP 1 -#define LWIP_RAND() rand() -#define LWIP_SRAND() srand(sys_now()) - -/* Support TCP Keepalive */ -#define LWIP_TCP_KEEPALIVE 1 - -/*LWIP_UART_ADAPTER==1: Enable LWIP_UART_ADAPTER when CONFIG_GAGENT is enabled, - because some GAGENT functions denpond on the following macro definitions.*/ -#define LWIP_UART_ADAPTER 0 - -#if LWIP_UART_ADAPTER || CONFIG_ETHERNET -#undef LWIP_SO_SNDTIMEO -#define LWIP_SO_SNDTIMEO 1 - -#undef SO_REUSE -#define SO_REUSE 1 - -#undef MEMP_NUM_NETCONN -#define MEMP_NUM_NETCONN 10 - -#undef TCP_WND -#define TCP_WND (4*TCP_MSS) - -#define TCP_KEEPIDLE_DEFAULT 10000UL -#define TCP_KEEPINTVL_DEFAULT 1000UL -#define TCP_KEEPCNT_DEFAULT 10U -#endif - -#if CONFIG_EXAMPLE_UART_ATCMD || CONFIG_EXAMPLE_SPI_ATCMD -#undef LWIP_SO_SNDTIMEO -#define LWIP_SO_SNDTIMEO 1 - -#undef SO_REUSE -#define SO_REUSE 1 - -#undef SO_REUSE_RXTOALL -#define SO_REUSE_RXTOALL 1 - -#undef MEMP_NUM_NETCONN -#define MEMP_NUM_NETCONN 10 - -#undef MEMP_NUM_TCP_PCB -#define MEMP_NUM_TCP_PCB (MEMP_NUM_NETCONN) - -#undef MEMP_NUM_UDP_PCB -#define MEMP_NUM_UDP_PCB (MEMP_NUM_NETCONN) - -#undef TCP_WND -#define TCP_WND (4*TCP_MSS) - -#define TCP_KEEPIDLE_DEFAULT 10000UL -#define TCP_KEEPINTVL_DEFAULT 1000UL -#define TCP_KEEPCNT_DEFAULT 10U - -#define ERRNO 1 - -#endif - -/* ---------- Statistics options ---------- */ -#define LWIP_STATS 0 - - -/* - -------------------------------------- - ---------- Checksum options ---------- - -------------------------------------- -*/ - -/* -The STM32F2x7 allows computing and verifying the IP, UDP, TCP and ICMP checksums by hardware: - - To use this feature let the following define uncommented. - - To disable it and process by CPU comment the the checksum. -*/ -//Do checksum by lwip - WLAN nic does not support Checksum offload -//#define CHECKSUM_BY_HARDWARE - - -#ifdef CHECKSUM_BY_HARDWARE - /* CHECKSUM_GEN_IP==0: Generate checksums by hardware for outgoing IP packets.*/ - #define CHECKSUM_GEN_IP 0 - /* CHECKSUM_GEN_UDP==0: Generate checksums by hardware for outgoing UDP packets.*/ - #define CHECKSUM_GEN_UDP 0 - /* CHECKSUM_GEN_TCP==0: Generate checksums by hardware for outgoing TCP packets.*/ - #define CHECKSUM_GEN_TCP 0 - /* CHECKSUM_CHECK_IP==0: Check checksums by hardware for incoming IP packets.*/ - #define CHECKSUM_CHECK_IP 0 - /* CHECKSUM_CHECK_UDP==0: Check checksums by hardware for incoming UDP packets.*/ - #define CHECKSUM_CHECK_UDP 0 - /* CHECKSUM_CHECK_TCP==0: Check checksums by hardware for incoming TCP packets.*/ - #define CHECKSUM_CHECK_TCP 0 -#else - /* CHECKSUM_GEN_IP==1: Generate checksums in software for outgoing IP packets.*/ - #define CHECKSUM_GEN_IP 1 - /* CHECKSUM_GEN_UDP==1: Generate checksums in software for outgoing UDP packets.*/ - #define CHECKSUM_GEN_UDP 1 - /* CHECKSUM_GEN_TCP==1: Generate checksums in software for outgoing TCP packets.*/ - #define CHECKSUM_GEN_TCP 1 - /* CHECKSUM_CHECK_IP==1: Check checksums in software for incoming IP packets.*/ - #define CHECKSUM_CHECK_IP 1 - /* CHECKSUM_CHECK_UDP==1: Check checksums in software for incoming UDP packets.*/ - #define CHECKSUM_CHECK_UDP 1 - /* CHECKSUM_CHECK_TCP==1: Check checksums in software for incoming TCP packets.*/ - #define CHECKSUM_CHECK_TCP 1 -#endif - - -/* - ---------------------------------------------- - ---------- Sequential layer options ---------- - ---------------------------------------------- -*/ -/** - * LWIP_NETCONN==1: Enable Netconn API (require to use api_lib.c) - */ -#define LWIP_NETCONN 1 - -/* - ------------------------------------ - ---------- Socket options ---------- - ------------------------------------ -*/ -/** - * LWIP_SOCKET==1: Enable Socket API (require to use sockets.c) - */ -#define LWIP_SOCKET 1 - -/* - ----------------------------------- - ---------- DEBUG options ---------- - ----------------------------------- -*/ - -#define LWIP_DEBUG 0 - - -/* - --------------------------------- - ---------- OS options ---------- - --------------------------------- -*/ - -#define TCPIP_THREAD_STACKSIZE 1000 -#define TCPIP_MBOX_SIZE 6 -#define DEFAULT_UDP_RECVMBOX_SIZE 6 -#define DEFAULT_TCP_RECVMBOX_SIZE 6 -#define DEFAULT_RAW_RECVMBOX_SIZE 6 -#define DEFAULT_ACCEPTMBOX_SIZE 6 -#define DEFAULT_THREAD_STACKSIZE 500 -#define TCPIP_THREAD_PRIO (configMAX_PRIORITIES - 2) - -/* Added by Realtek */ -#ifndef DNS_IGNORE_REPLY_ERR -#define DNS_IGNORE_REPLY_ERR 1 -#endif /* DNS_IGNORE_REPLY_ERR */ - -// for mDNS support -#define LWIP_MDNS_RESPONDER 1 -#define LWIP_NUM_NETIF_CLIENT_DATA 1 - -#endif /* __LWIPOPTS_H__ */ - -/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/ +#define LWIP_TCPIP_TIMEOUT 1 diff --git a/cores/realtek-ambz/base/config/platform_autoconf.h b/cores/realtek-ambz/base/config/platform_autoconf.h deleted file mode 100644 index 3f95890..0000000 --- a/cores/realtek-ambz/base/config/platform_autoconf.h +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Automatically generated by make menuconfig: don't edit - */ -#define AUTOCONF_INCLUDED - -/* - * < MENUCONFIG FOR CHIP CONFIG - */ - -/* - * < CONFIG CHIP - */ -#define CONFIG_RTL8711B 1 -#undef ARM_CORE_CM3 -#define ARM_CORE_CM4 1 -#define CONFIG_CHIP_A_CUT 1 -#undef CONFIG_FPGA - -/* - * < CONFIG CPU CLK - */ -#define CONFIG_CPU_CLK 1 -#define CONFIG_CPU_125MHZ 1 -#undef CONFIG_CPU_62_5MHZ -#undef CONFIG_CPU_31_25MHZ -#undef CONFIG_CPU_15_625MHZ -#undef CONFIG_CPU_7_8125MHZ -#undef CONFIG_CPU_4MHZ -#undef CONFIG_FPGA_CLK -#define PLATFORM_CLOCK (125000000) -#define CPU_CLOCK_SEL_VALUE (0) - -/* - * < CONFIG OSC8M CLK - */ -#define CONFIG_OSC8M_CLK 1 -#define CONFIG_OSC8M_8388608HZ 1 -#undef CONFIG_OSC8M_8192000HZ -#undef CONFIG_OSC8M_8000000HZ -#undef CONFIG_OSC8M_16777216HZ -#define OSC8M_CLOCK (8388608) - -/* - * < CONFIG TEST MODE - */ -#undef CONFIG_MP -#undef CONFIG_CP -#undef CONFIG_FT -#undef CONFIG_EQC -#undef CONFIG_RTL_SIM -#undef CONFIG_POST_SIM - -/* - * < CONFIG OS - */ -#define CONFIG_KERNEL 1 -#define PLATFORM_FREERTOS 1 -#undef PLATFORM_UCOSII -#undef PLATFORM_ECOS -#undef CONFIG_TASK_SCHEDUL_DIS -#define TASK_SCHEDULER_DISABLED (0) - -/* - * < CONFIG GTIMER - */ -#define CONFIG_TIMER_EN 1 -#define CONFIG_TIMER_MODULE 1 - -/* - * < CONFIG WDG - */ -#define CONFIG_WDG 1 -#define CONFIG_WDG_MODULE 1 - -/* - * < CONFIG GDMA - */ -#define CONFIG_GDMA_EN 1 -#define CONFIG_GDMA_MODULE 1 - -/* - * < CONFIG GPIO - */ -#define CONFIG_GPIO_EN 1 -#define CONFIG_GPIO_MODULE 1 - -/* - * < CONFIG SPI - */ -#define CONFIG_SPI_COM_EN 1 -#define CONFIG_SPI_COM_MODULE 1 - -/* - * < CONFIG UART - */ -#define CONFIG_UART_EN 1 -#define CONFIG_UART_MODULE 1 - -/* - * < CONFIG I2C - */ -#define CONFIG_I2C_EN 1 -#define CONFIG_I2C_MODULE 1 - -/* - * < CONFIG I2S - */ -#define CONFIG_I2S_EN 1 -#define CONFIG_I2S_MODULE 1 - -/* - * < CONFIG SOC PS - */ -#define CONFIG_SOC_PS_EN 1 -#define CONFIG_SOC_PS_MODULE 1 - -/* - * < CONFIG CRYPTO - */ -#define CONFIG_CRYPTO_EN 1 -#define CONFIG_CRYPTO_MODULE 1 - -/* - * < CONFIG PWM - */ -#define CONFIG_PWM_EN 1 - -/* - * < CONFIG EFUSE - */ -#define CONFIG_EFUSE_EN 1 -#define CONFIG_EFUSE_MODULE 1 - -/* - * < CONFIG SPIC - */ -#define CONFIG_SPIC_EN 1 -#define CONFIG_SPIC_MODULE 1 -#define CONFIG_SPIC_PHASE_CALIBATION 1 -#undef CONFIG_SPIC_4BYTES_ADDRESS - -/* - * < CONFIG ADC - */ -#define CONFIG_ADC_EN 1 -#define CONFIG_ADC_MODULE 1 - -/* - * < CONFIG SDIO Device - */ -#define CONFIG_SDIO_DEVICE_EN 1 -#define CONFIG_SDIO_DEVICE_NORMAL 1 -#define CONFIG_SDIO_DEVICE_MODULE 1 - -/* - * < CONFIG USB - */ -#define CONFIG_USB_EN 1 -#define CONFIG_USB_MODULE 1 - -/* - * < CONFIG RDP - */ -#define CONFIG_RDP_ENABLE 1 - -/* - * < CONFIG PINMUX - */ -#undef CONFIG_PINMAP_ENABLE - -/* - * < CONFIG PER TEST - */ -#undef CONFIG_PER_TEST - -/* - * < CONFIG WIFI - */ -#define CONFIG_WIFI_EN 1 -#define CONFIG_WIFI_NORMAL 1 -#undef CONFIG_WIFI_TEST -#define CONFIG_WIFI_MODULE 1 - -/* - * < CONFIG NETWORK - */ -#define CONFIG_NETWORK 1 - -/* - * < CONFIG INIC - */ -#undef CONFIG_INIC_EN - -/* - * < CONFIG USB_NIC - */ -#undef CONFIG_USB_DONGLE_NIC_EN - -/* - * < RTK STD lib - */ -#define CONFIG_RTLIB_EN 1 -#define CONFIG_RTLIB_MODULE 1 -#undef CONFIG_RTLIB_VERIFY - -/* - * < Add MBED SDK - */ -#undef CONFIG_MBED_ENABLED - -/* - * < Build App Demo - */ -#undef CONFIG_APP_DEMO - -/* - * < Dhrystone - */ -#undef CONFIG_DHRYSTONE_TEST - -/* - * < SSL - */ -#undef CONFIG_SSL_ROM_TEST - -/* - * < System Debug Message Config - */ -#define CONFIG_UART_LOG_HISTORY 1 -#define CONFIG_DEBUG_LOG 1 -#define CONFIG_DEBUG_ERR_MSG 1 -#undef CONFIG_DEBUG_WARN_MSG -#undef CONFIG_DEBUG_INFO_MSG - -/* - * < Build Option - */ -#define CONFIG_TOOLCHAIN_ASDK 1 -#undef CONFIG_TOOLCHAIN_ARM_GCC -#define CONFIG_LINK_ROM_LIB 1 -#undef CONFIG_LINK_ROM_SYMB diff --git a/cores/realtek-ambz/base/config/platform_opts.h b/cores/realtek-ambz/base/config/platform_opts.h index 4a338f0..8469f3e 100644 --- a/cores/realtek-ambz/base/config/platform_opts.h +++ b/cores/realtek-ambz/base/config/platform_opts.h @@ -1,345 +1,14 @@ -// CHANGES: -// - 2022-05-08 change CONFIG_USE_POLARSSL to CONFIG_USE_MBEDTLS -// - 2022-05-08 use static int errno +/* Copyright (c) Kuba Szczodrzyński 2023-03-02. */ + +#pragma once + +#include_next "platform_opts.h" + // - 2022-05-18 include lwip/init.h -// - 2022-06-13 extract errno to common/fixups/errno.h - - -/** - ****************************************************************************** - *This file contains general configurations for ameba platform - ****************************************************************************** -*/ - -#ifndef __PLATFORM_OPTS_H__ -#define __PLATFORM_OPTS_H__ - -#include "platform_autoconf.h" - #include -/*For MP mode setting*/ -//#define SUPPORT_MP_MODE 1 - -/** - * For AT cmd Log service configurations - */ -#define SUPPORT_LOG_SERVICE 1 -#if SUPPORT_LOG_SERVICE -#define LOG_SERVICE_BUFLEN 100 //can't larger than UART_LOG_CMD_BUFLEN(127) -#define CONFIG_LOG_HISTORY 0 -#if CONFIG_LOG_HISTORY -#define LOG_HISTORY_LEN 5 -#endif -#define SUPPORT_INTERACTIVE_MODE 0//on/off wifi_interactive_mode -#define CONFIG_LOG_SERVICE_LOCK 0 -#endif - -/* For DCT example*/ -#define CONFIG_EXAMPLE_DCT 0 - -/** - * For interactive mode configurations, depents on log service - */ -#if SUPPORT_INTERACTIVE_MODE -#define CONFIG_INTERACTIVE_MODE 1 -#define CONFIG_INTERACTIVE_EXT 0 -#else -#define CONFIG_INTERACTIVE_MODE 0 -#define CONFIG_INTERACTIVE_EXT 0 -#endif - -/** - * For FreeRTOS tickless configurations - */ -#define FREERTOS_PMU_TICKLESS_SUSPEND_SDRAM 1 // In sleep mode, 1: suspend SDRAM, 0: no act - -/******************************************************************************/ - -/** -* For common flash usage -*/ -#define AP_SETTING_SECTOR 0x000FE000 -#define UART_SETTING_SECTOR 0x000FC000 -#define SPI_SETTING_SECTOR 0x000FC000 -#define FAST_RECONNECT_DATA (0x80000 - 0x1000) -#define FLASH_SECTOR_SIZE 0x1000 - -#define CONFIG_ENABLE_RDP 0 - -/** - * For Wlan configurations - */ -#define CONFIG_WLAN 1 -#if CONFIG_WLAN -#define CONFIG_LWIP_LAYER 1 -#define CONFIG_INIT_NET 1 //init lwip layer when start up -#define CONFIG_WIFI_IND_USE_THREAD 0 // wifi indicate worker thread - -//on/off relative commands in log service -#define CONFIG_SSL_CLIENT 0 -#define CONFIG_WEBSERVER 0 -#define CONFIG_OTA_UPDATE 1 -#define CONFIG_BSD_TCP 1//NOTE : Enable CONFIG_BSD_TCP will increase about 11KB code size -#define CONFIG_AIRKISS 0//on or off tencent airkiss -#define CONFIG_UART_SOCKET 0 -#define CONFIG_UART_XMODEM 0//support uart xmodem upgrade or not -#define CONFIG_TRANSPORT 0//on or off the at command for transport socket - -/* For WPS and P2P */ -#define CONFIG_ENABLE_WPS 0 -#define CONFIG_ENABLE_WPS_DISCOVERY 0 -#if CONFIG_ENABLE_P2P -#define CONFIG_ENABLE_WPS_AP 1 -#undef CONFIG_WIFI_IND_USE_THREAD -#define CONFIG_WIFI_IND_USE_THREAD 1 -#endif -#if (CONFIG_ENABLE_P2P && ((CONFIG_ENABLE_WPS_AP == 0) || (CONFIG_ENABLE_WPS == 0))) -#error "If CONFIG_ENABLE_P2P, need to define CONFIG_ENABLE_WPS_AP 1" -#endif - -/* For SSL/TLS */ -#define CONFIG_USE_POLARSSL 0 -#define CONFIG_USE_MBEDTLS 1 -#if ((CONFIG_USE_POLARSSL == 0) && (CONFIG_USE_MBEDTLS == 0)) || ((CONFIG_USE_POLARSSL == 1) && (CONFIG_USE_MBEDTLS == 1)) +// - 2022-05-08 change CONFIG_USE_POLARSSL to CONFIG_USE_MBEDTLS #undef CONFIG_USE_POLARSSL -#define CONFIG_USE_POLARSSL 1 #undef CONFIG_USE_MBEDTLS -#define CONFIG_USE_MBEDTLS 0 -#endif - -/* For Simple Link */ -#define CONFIG_INCLUDE_SIMPLE_CONFIG 1 - -/*For fast reconnection*/ -#define CONFIG_EXAMPLE_WLAN_FAST_CONNECT 0 - - -#define CONFIG_GAGENT 0 -/*Disable CONFIG_EXAMPLE_WLAN_FAST_CONNECT when CONFIG_GAGENT is enabled,because - reconnect to previous AP is not suitable when re-configuration. -*/ -#if CONFIG_GAGENT -#define CONFIG_EXAMPLE_WLAN_FAST_CONNECT 0 -#endif - - -#endif //end of #if CONFIG_WLAN -/*******************************************************************************/ - -/** - * For Ethernet configurations - */ -#define CONFIG_ETHERNET 0 -#if CONFIG_ETHERNET - -#define CONFIG_LWIP_LAYER 1 -#define CONFIG_INIT_NET 1 //init lwip layer when start up - -//on/off relative commands in log service -#define CONFIG_SSL_CLIENT 0 -#define CONFIG_BSD_TCP 0//NOTE : Enable CONFIG_BSD_TCP will increase about 11KB code size - -#endif - -/** - * For user to adjust SLEEP_INTERVAL - */ -#define CONFIG_DYNAMIC_TICKLESS 1 - -/*******************************************************************************/ - -/** - * For iNIC configurations - */ -//#define CONFIG_INIC_EN 0//enable iNIC mode -#if CONFIG_INIC_EN -#ifndef CONFIG_LWIP_LAYER -#define CONFIG_LWIP_LAYER 0 -#endif -#ifndef CONFIG_INIC_SDIO_HCI -#define CONFIG_INIC_SDIO_HCI 0 //for SDIO or USB iNIC -#endif -#ifndef CONFIG_INIC_CMD_RSP -#define CONFIG_INIC_CMD_RSP 0 -#endif -#ifndef CONFIG_INIC_USB_HCI -#define CONFIG_INIC_USB_HCI 0 -#endif -#endif -/******************End of iNIC configurations*******************/ - - -/* For WIFI GET BEACON FRAME example */ -#define CONFIG_EXAMPLE_GET_BEACON_FRAME 0 - -/* For WIFI MAC MONITOR example */ -#define CONFIG_EXAMPLE_WIFI_MAC_MONITOR 0 - -/* For HTTP CLIENT example */ -#define CONFIG_EXAMPLE_HTTP_CLIENT 0 - -/* For MQTT example */ -#define CONFIG_EXAMPLE_MQTT 0 - -/* For mDNS example */ -#define CONFIG_EXAMPLE_MDNS 0 - -/* For multicast example */ -#define CONFIG_EXAMPLE_MCAST 0 - -/* For XML example */ -#define CONFIG_EXAMPLE_XML 0 - -/* For socket select example */ -#define CONFIG_EXAMPLE_SOCKET_SELECT 0 - -/* For socket nonblocking connect example */ -#define CONFIG_EXAMPLE_NONBLOCK_CONNECT 0 - -/* For socket TCP bidirectional transmission example */ -#define CONFIG_EXAMPLE_SOCKET_TCP_TRX 0 - -/* For ssl download example */ -#define CONFIG_EXAMPLE_SSL_DOWNLOAD 0 - -/* For http download example */ -#define CONFIG_EXAMPLE_HTTP_DOWNLOAD 0 - -/* For httpc example */ -#define CONFIG_EXAMPLE_HTTPC 0 - -/* For httpd example */ -#define CONFIG_EXAMPLE_HTTPD 0 - -/* For tcp keepalive example */ -#define CONFIG_EXAMPLE_TCP_KEEPALIVE 0 - -/* For sntp show time example */ -#define CONFIG_EXAMPLE_SNTP_SHOWTIME 0 - - -/* For websocket client example */ -#define CONFIG_EXAMPLE_WEBSOCKET 0 - - -/* For UART Module AT command example */ -#define CONFIG_EXAMPLE_UART_ATCMD 0 -#if CONFIG_EXAMPLE_UART_ATCMD -#undef CONFIG_OTA_UPDATE -#define CONFIG_OTA_UPDATE 1 -#undef CONFIG_TRANSPORT -#define CONFIG_TRANSPORT 1 -#undef LOG_SERVICE_BUFLEN -#define LOG_SERVICE_BUFLEN 1600 -#undef CONFIG_LOG_SERVICE_LOCK -#define CONFIG_LOG_SERVICE_LOCK 1 -#undef CONFIG_EXAMPLE_WLAN_FAST_CONNECT -#define CONFIG_EXAMPLE_WLAN_FAST_CONNECT 0 -#endif - - - -/****************** For EAP method example *******************/ -#define CONFIG_EXAMPLE_EAP 0 - -// on/off specified eap method -#define CONFIG_ENABLE_PEAP 0 -#define CONFIG_ENABLE_TLS 0 -#define CONFIG_ENABLE_TTLS 0 - -// optional feature: whether to verify the cert of radius server -#define ENABLE_EAP_SSL_VERIFY_SERVER 0 - -#if CONFIG_ENABLE_PEAP || CONFIG_ENABLE_TLS || CONFIG_ENABLE_TTLS -#define CONFIG_ENABLE_EAP -#define CONFIG_EXAMPLE_WLAN_FAST_CONNECT 0 -#endif - -#if CONFIG_ENABLE_TLS -#define ENABLE_EAP_SSL_VERIFY_CLIENT 1 -#else -#define ENABLE_EAP_SSL_VERIFY_CLIENT 0 -#endif -/******************End of EAP configurations*******************/ - - -/* For iNIC host example*/ -#ifdef CONFIG_INIC_GSPI_HOST //this flag is defined in IAR project -#define CONFIG_EXAMPLE_INIC_GSPI_HOST 1 -#if CONFIG_EXAMPLE_INIC_GSPI_HOST - -#define CONFIG_INIC_HOST 1 - -#undef CONFIG_WLAN -#define CONFIG_WLAN 0 -#undef CONFIG_INCLUDE_SIMPLE_CONFIG -#define CONFIG_INCLUDE_SIMPLE_CONFIG 0 -#undef CONFIG_EXAMPLE_WLAN_FAST_CONNECT -#define CONFIG_EXAMPLE_WLAN_FAST_CONNECT 0 -#undef CONFIG_LWIP_LAYER -#define CONFIG_LWIP_LAYER 1 -#undef CONFIG_BSD_TCP -#define CONFIG_BSD_TCP 1 - -#endif -#endif - -/*For uart update example*/ -#define CONFIG_UART_UPDATE 0 -#if CONFIG_UART_UPDATE -#undef CONFIG_EXAMPLE_WLAN_FAST_CONNECT -#define CONFIG_EXAMPLE_WLAN_FAST_CONNECT 0 -#endif - -/* For uart adapter example */ -/* Please also configure LWIP_UART_ADAPTER to 1 -in lwip_opt.h for support uart adapter*/ -#define CONFIG_EXAMPLE_UART_ADAPTER 0 -#if CONFIG_EXAMPLE_UART_ADAPTER -#undef CONFIG_EXAMPLE_WLAN_FAST_CONNECT -#define CONFIG_EXAMPLE_WLAN_FAST_CONNECT 1 -#undef CONFIG_EXAMPLE_MDNS -#define CONFIG_EXAMPLE_MDNS 1 -#endif - -/* For wifi scenarios example (Wi-Fi, WPS enrollee, P2P GO) */ -// also need to enable WPS and P2P -#define CONFIG_EXAMPLE_WLAN_SCENARIO 0 - -/* For broadcast example */ -#define CONFIG_EXAMPLE_BCAST 0 - -/* For high-load memory use case memory usage */ -#define CONFIG_EXAMPLE_HIGH_LOAD_MEMORY_USE 0 - -/* For rarp example */ -#define CONFIG_EXAMPLE_RARP 0 - -/* For ssl server example */ -#define CONFIG_EXAMPLE_SSL_SERVER 0 - -#if CONFIG_QQ_LINK -#define FATFS_R_10C -#define FATFS_DISK_USB 0 -#define FATFS_DISK_SD 1 -#endif - -#if CONFIG_ENABLE_WPS -#define WPS_CONNECT_RETRY_COUNT 4 -#define WPS_CONNECT_RETRY_INTERVAL 5000 // in ms -#endif - -#define AUTO_RECONNECT_COUNT 8 -#define AUTO_RECONNECT_INTERVAL 5 // in sec - -#if CONFIG_INIC_EN -#undef CONFIG_INCLUDE_SIMPLE_CONFIG -#define CONFIG_INCLUDE_SIMPLE_CONFIG 0 -#define SUPPORT_INTERACTIVE_MODE 0 -#define CONFIG_INTERACTIVE_MODE 0 -#define CONFIG_INTERACTIVE_EXT 0 -#define CONFIG_OTA_UPDATE 0 -#endif - -#endif +#define CONFIG_USE_POLARSSL 0 +#define CONFIG_USE_MBEDTLS 1 diff --git a/cores/realtek-ambz/base/lt_family.h b/cores/realtek-ambz/base/lt_family.h new file mode 100644 index 0000000..b83d559 --- /dev/null +++ b/cores/realtek-ambz/base/lt_family.h @@ -0,0 +1,18 @@ +/* Copyright (c) Kuba Szczodrzyński 2023-03-02. */ + +#pragma once + +#include + +// Choose the main UART output port +#ifndef LT_UART_DEFAULT_PORT +#if HAS_SERIAL2 +#define LT_UART_DEFAULT_PORT 2 +#elif HAS_SERIAL0 +#define LT_UART_DEFAULT_PORT 0 +#elif HAS_SERIAL1 +#define LT_UART_DEFAULT_PORT 1 +#else +#error "No serial port is available" +#endif +#endif diff --git a/cores/realtek-ambz2/base/config/FreeRTOSConfig.h b/cores/realtek-ambz2/base/config/FreeRTOSConfig.h deleted file mode 100644 index f1ca201..0000000 --- a/cores/realtek-ambz2/base/config/FreeRTOSConfig.h +++ /dev/null @@ -1,299 +0,0 @@ -/* - * FreeRTOS Kernel V10.2.0 - * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * http://www.FreeRTOS.org - * http://aws.amazon.com/freertos - * - * 1 tab == 4 spaces! - */ - -/****************************************************************************** - See http://www.freertos.org/a00110.html for an explanation of the - definitions contained in this file. -******************************************************************************/ - -#ifndef FREERTOS_CONFIG_H -#define FREERTOS_CONFIG_H - -/*----------------------------------------------------------- - * Application specific definitions. - * - * These definitions should be adjusted for your particular hardware and - * application requirements. - * - * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE - * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. - * http://www.freertos.org/a00110.html - *----------------------------------------------------------*/ - -#if defined(__ICCARM__) || defined(__CC_ARM) || defined(__GNUC__) -#include -extern uint32_t SystemCoreClock; -#endif - -/* Cortex M33 port configuration. */ -#define configENABLE_MPU 0 - -#ifdef __ARMVFP__ - #define configENABLE_FPU 1 -#else - #define configENABLE_FPU 0 -#endif - -#if defined(CONFIG_BUILD_SECURE) || defined(CONFIG_BUILD_NONSECURE) -#define configENABLE_TRUSTZONE 1 -#else -#define configENABLE_TRUSTZONE 0 -#endif - -/* Constants related to the behaviour or the scheduler. */ -#define configUSE_PORT_OPTIMISED_TASK_SELECTION 0 -#define configUSE_PREEMPTION 1 -#define configUSE_TIME_SLICING 1 -#define configTICK_RATE_HZ ( ( uint32_t ) 1000 ) -#define configMAX_PRIORITIES ( 11 ) -#define configIDLE_SHOULD_YIELD 1 -#define configUSE_16_BIT_TICKS 0 /* Only for 8 and 16-bit hardware. */ - -/* Constants that describe the hardware and memory usage. */ -#define configCPU_CLOCK_HZ ( SystemCoreClock ) -#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 70 ) //number of double word -#define configMINIMAL_SECURE_STACK_SIZE ( ( unsigned short ) configMINIMAL_STACK_SIZE*4 ) //number of byte -#define configMAX_TASK_NAME_LEN ( 10 ) -#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 160 * 1024 ) ) -#define configAPPLICATION_ALLOCATED_HEAP 0 - -/* Constants that build features in or out. */ -#define configUSE_MUTEXES 1 -#define configUSE_APPLICATION_TASK_TAG 0 -#define configUSE_NEWLIB_REENTRANT 0 -#define configUSE_CO_ROUTINES 0 -#define configUSE_COUNTING_SEMAPHORES 1 -#define configUSE_RECURSIVE_MUTEXES 1 -#define configUSE_QUEUE_SETS 1 -#define configUSE_TASK_NOTIFICATIONS 1 -#define configUSE_TRACE_FACILITY 0 - -/* Constants that define which hook (callback) functions should be used. */ -#define configUSE_IDLE_HOOK 0 -#define configUSE_TICK_HOOK 0 -#define configUSE_MALLOC_FAILED_HOOK 1 -#define secureconfigUSE_MALLOC_FAILED_HOOK 1 - -/* Constants provided for debugging and optimisation assistance. */ -#define configCHECK_FOR_STACK_OVERFLOW 2 - -/* Software timer definitions. */ -#define configUSE_TIMERS 1 -#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 ) -#define configTIMER_QUEUE_LENGTH ( 10 + 32) -#define configTIMER_TASK_STACK_DEPTH ( 512 ) - -/* Set the following definitions to 1 to include the API function, or zero - * to exclude the API function. NOTE: Setting an INCLUDE_ parameter to 0 is - * only necessary if the linker does not automatically remove functions that are - * not referenced anyway. */ -#define INCLUDE_vTaskPrioritySet 1 -#define INCLUDE_uxTaskPriorityGet 1 -#define INCLUDE_vTaskDelete 1 -#define INCLUDE_vTaskSuspend 1 -#define INCLUDE_vTaskDelayUntil 1 -#define INCLUDE_vTaskDelay 1 -#define INCLUDE_pcTaskGetTaskName 1 -#define INCLUDE_uxTaskGetStackHighWaterMark 0 -#define INCLUDE_xTaskGetIdleTaskHandle 0 -#define INCLUDE_eTaskGetState 1 -#define INCLUDE_xTaskResumeFromISR 0 -#define INCLUDE_xTaskGetCurrentTaskHandle 1 -#define INCLUDE_xTaskGetSchedulerState 1 -#define INCLUDE_xSemaphoreGetMutexHolder 1 -#define INCLUDE_xTimerPendFunctionCall 1 - -/* This demo makes use of one or more example stats formatting functions. These - * format the raw data provided by the uxTaskGetSystemState() function in to - * human readable ASCII form. See the notes in the implementation of vTaskList() - * within FreeRTOS/Source/tasks.c for limitations. */ -#define configUSE_STATS_FORMATTING_FUNCTIONS 1 - -/* Dimensions a buffer that can be used by the FreeRTOS+CLI command interpreter. - * See the FreeRTOS+CLI documentation for more information: - * http://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_CLI/ */ -#define configCOMMAND_INT_MAX_OUTPUT_SIZE 2048 - -/* Interrupt priority configuration follows...................... */ - -/* Use the system definition, if there is one. */ - -#ifdef __NVIC_PRIO_BITS - /* __NVIC_PRIO_BITS will be specified when CMSIS is being used. */ -#if __NVIC_PRIO_BITS != 3 - #error "__NVIC_PRIO_BITS is NOT correct for RTL8710C" -#endif - #define configPRIO_BITS __NVIC_PRIO_BITS -#else - #define configPRIO_BITS 3 /* 8 priority levels */ - //#error "__NVIC_PRIO_BITS must be defined!" -#endif - -/* The lowest interrupt priority that can be used in a call to a "set priority" - * function. */ -#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 7 - -/* The highest interrupt priority that can be used by any interrupt service - * routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT - * CALL INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A - * HIGHER PRIORITY THAN THIS! (higher priorities are lower numeric values). */ -#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 2 - -/* Interrupt priorities used by the kernel port layer itself. These are generic - * to all Cortex-M ports, and do not rely on any particular library functions. */ -#define configKERNEL_INTERRUPT_PRIORITY ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << ( 8 - configPRIO_BITS ) ) - -/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! - * See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ -#define configMAX_SYSCALL_INTERRUPT_PRIORITY ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << ( 8 - configPRIO_BITS ) ) - - -/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS -standard names - or at least those used in the unmodified vector table. */ -#define vPortSVCHandler SVC_Handler -#define xPortPendSVHandler PendSV_Handler -#define xPortSysTickHandler SysTick_Handler - -/* The #ifdef guards against the file being included from IAR assembly files. */ -#if !defined(__IASMARM__) - -/* Constants related to the generation of run time stats. */ -#define configGENERATE_RUN_TIME_STATS 0 -#if configGENERATE_RUN_TIME_STATS -#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() -#define portGET_RUN_TIME_COUNTER_VALUE() xTickCount -#undef configUSE_TRACE_FACILITY -#define configUSE_TRACE_FACILITY 1 -#define portCONFIGURE_STATS_PEROID_VALUE 1000 //unit Ticks -#endif - -#include "diag.h" -#if defined(CONFIG_BUILD_SECURE) && (CONFIG_BUILD_SECURE == 1) -#define configASSERT(x) do { \ - if( (x) == 0 ) { \ - char *pcAssertTask = "ISR"; \ - if(__get_IPSR() == 0) \ - { \ - pcAssertTask = "TSK"; \ - } \ - dbg_printf("\n\r[%s]Assert(" #x ") failed on line %d in file %s\r\n", pcAssertTask, __LINE__, __FILE__); \ - __disable_irq(); for(;;);} \ - } while(0) -#else -#define configASSERT(x) do { \ - if( (x) == 0 ) { \ - char *pcAssertTask = "ISR"; \ - if( (__get_IPSR() == 0) && (xTaskGetSchedulerState() != taskSCHEDULER_NOT_STARTED) ) \ - { \ - pcAssertTask = pcTaskGetName( NULL ); \ - } \ - dbg_printf("\n\r[%s]Assert(" #x ") failed on line %d in file %s\r\n", pcAssertTask, __LINE__, __FILE__); \ - taskDISABLE_INTERRUPTS(); for(;;);} \ - } while(0) -#endif -#define configPRINTF( x ) dbg_printf( x ) - -#endif /* __IASMARM__ */ - -/* use the low power tickless mode */ -#define configUSE_TICKLESS_IDLE 0 -#if defined(configUSE_TICKLESS_IDLE) && configUSE_TICKLESS_IDLE -#if !defined(__IASMARM__) || (__IASMARM__ != 1) -#if !defined(CONFIG_BUILD_SECURE) || (CONFIG_BUILD_SECURE == 0) -/* At least n further complete tick periods will pass before the kernel is due to transition an application task out of the Blocked state */ -#define configEXPECTED_IDLE_TIME_BEFORE_SLEEP 2 -/* use realtek customized low power tickless mode */ -#define configUSE_CUSTOMIZED_TICKLESS_IDLE 0 -#if defined(configUSE_CUSTOMIZED_TICKLESS_IDLE) && configUSE_CUSTOMIZED_TICKLESS_IDLE -extern void freertos_pre_sleep_processing(unsigned int *expected_idle_time); -extern void freertos_post_sleep_processing(unsigned int *expected_idle_time); -extern int freertos_ready_to_sleep(void); -extern void freertos_suppress_ticks_and_sleep(unsigned int xExpectedIdleTime); - -/* configEXPECTED_IDLE_TIME_BEFORE_SLEEP is used for native tickless support -configEXPECTED_IDLE_TIME_BEFORE_CUSTOMIZED_SLEEP is used for realtek customized low power tickless mode -if xExpectedIdleTime < configEXPECTED_IDLE_TIME_BEFORE_CUSTOMIZED_SLEEP, system will go for native tickless mode -if xExpectedIdleTime >= configEXPECTED_IDLE_TIME_BEFORE_CUSTOMIZED_SLEEP, system will got for realtek customized tickless mode -In wlan usage, this value is suggested to use value less than 80 milliseconds */ -#define configEXPECTED_IDLE_TIME_BEFORE_CUSTOMIZED_SLEEP 2 -#if configEXPECTED_IDLE_TIME_BEFORE_CUSTOMIZED_SLEEP < configEXPECTED_IDLE_TIME_BEFORE_SLEEP - #error configEXPECTED_IDLE_TIME_BEFORE_CUSTOMIZED_SLEEP must not be less than configEXPECTED_IDLE_TIME_BEFORE_SLEEP -#endif - -/* Enable tickless power saving. */ -#define configPRE_SUPPRESS_TICKS_AND_SLEEP_PROCESSING( x ) do { \ - if (freertos_ready_to_sleep() == FALSE) {\ - x = 0;\ - }\ - } while(0) - -#define portSUPPRESS_TICKS_AND_SLEEP( xExpectedIdleTime ) do { \ - freertos_suppress_ticks_and_sleep(xExpectedIdleTime); \ - } while(0) - -/* It's magic trick that let us can use our own sleep function */ -#define configPRE_SLEEP_PROCESSING( x ) do { \ - freertos_pre_sleep_processing((unsigned int *)&x); \ - } while(0) - -#define configPOST_SLEEP_PROCESSING( x ) do { \ - freertos_post_sleep_processing((unsigned int *)&x); \ - } while(0) - -/* It's magic trick that let us can enable/disable tickless dynamically */ -#define traceLOW_POWER_IDLE_BEGIN() do { - -#define traceLOW_POWER_IDLE_END() } while (0) - -/* It's FreeRTOS related feature but it's not included in FreeRTOS design. */ -#define configUSE_WAKELOCK_PMU 1 - -#undef configMINIMAL_STACK_SIZE -#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 192 ) -#endif //#if defined(configUSE_CUSTOMIZED_TICKLESS_IDLE) && configUSE_CUSTOMIZED_TICKLESS_IDLE -#endif // #if !defined(CONFIG_BUILD_SECURE) || (CONFIG_BUILD_SECURE == 0) -#endif // #if !defined(__IASMARM__) || (__IASMARM__ != 1) -#endif // #if defined(configUSE_TICKLESS_IDLE) && configUSE_TICKLESS_IDLE - -/* Add by Realtek to re-arrange the FreeRTOS priority*/ -#define PRIORITIE_OFFSET ( 4 ) - -#if defined(__ICCARM__) -/* Keep below compiler pragma, below 10.2.0 remove them from portmacro.h -which will generate compiler warnings. -*/ -/* Suppress warnings that are generated by the IAR tools, but cannot be fixed in -the source code because to do so would cause other compilers to generate -warnings. */ -#pragma diag_suppress=Pe191 -#pragma diag_suppress=Pa082 -#endif - -#if defined(ENABLE_AMAZON_COMMON) -#include "FreeRTOSConfig_Amazon.h" -#endif -#endif /* FREERTOS_CONFIG_H */ diff --git a/cores/realtek-ambz2/base/config/autoconf.h b/cores/realtek-ambz2/base/config/autoconf.h deleted file mode 100644 index ad291e9..0000000 --- a/cores/realtek-ambz2/base/config/autoconf.h +++ /dev/null @@ -1,5 +0,0 @@ -/* Copyright (c) Kuba Szczodrzyński 2022-07-20. */ - -#pragma once - -#include_next "autoconf.h" diff --git a/cores/realtek-ambz2/base/config/lwipopts.h b/cores/realtek-ambz2/base/config/lwipopts.h deleted file mode 100644 index 3ee9dab..0000000 --- a/cores/realtek-ambz2/base/config/lwipopts.h +++ /dev/null @@ -1,5 +0,0 @@ -/* Copyright (c) Kuba Szczodrzyński 2022-07-20. */ - -#pragma once - -#include_next "lwipopts.h"