[realtek-ambz2] Update base core to new structure

This commit is contained in:
Kuba Szczodrzyński
2023-03-03 17:37:44 +01:00
parent 8be5aeab59
commit 76a82768fe
13 changed files with 445 additions and 539 deletions

View File

@@ -23,7 +23,17 @@ extern "C" {
#undef strtol
#undef strtoul
#if LT_RTL8710B
#include <ameba_soc.h>
#include <rand.h>
#include <rt_lib_rom.h>
#include <rtl8710b.h>
#include <rtl_lib.h>
#endif
#if LT_RTL8720C
#include <rtl8710c.h>
#endif
#include <analogin_api.h>
#include <analogout_api.h>
#include <flash_api.h>
@@ -35,10 +45,6 @@ extern "C" {
#include <main.h>
#include <objects.h>
#include <pwmout_api.h>
#include <rand.h>
#include <rt_lib_rom.h>
#include <rtl8710b.h>
#include <rtl_lib.h>
#include <sys_api.h>
#include <timer_api.h>
#include <us_ticker_api.h>
@@ -57,6 +63,8 @@ extern "C" {
#undef vsnprintf
#undef vprintf
#include <stdio.h>
// conflict with lt_logger.h
#undef log_printf
// moved from syscalls.h
#define _close __rtl_close

View File

@@ -1,406 +0,0 @@
/**
******************************************************************************
*This file contains general configurations for ameba platform
******************************************************************************
*/
#ifndef __PLATFORM_OPTS_H__
#define __PLATFORM_OPTS_H__
/*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
#define CONFIG_ATCMD_MP 0 // support MP AT command
#define USE_MODE 1 // for test
#endif
/**
* For interactive mode configurations, depends on log service
*/
#if defined(SUPPORT_INTERACTIVE_MODE) && 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_PLL_RESERVED 0 // In sleep mode, 0: close PLL clock, 1: reserve PLL clock
#define FREERTOS_PMU_TICKLESS_SUSPEND_SDRAM 1 // In sleep mode, 1: suspend SDRAM, 0: no act
/******************************************************************************/
/**
* For common flash usage
*/
#define FLASH_BAKEUP_SECTOR (0x3000)
#define FAST_RECONNECT_DATA (0x200000 - 0x1000)
#define BT_FTL_PHY_ADDR0 (0x200000 - 0x2000)
#define BT_FTL_PHY_ADDR1 (0x200000 - 0x3000)
#define BT_FTL_BKUP_ADDR (0x200000 - 0x4000)
#define UART_SETTING_SECTOR (0x200000 - 0x5000)
#define DCT_BEGIN_ADDR \
(0x200000 - 0x29000) /*!< DCT begin address of flash, ex: 0x200000 = 2M, the default size of DCT is 24K; ; if \
backup enabled, the size is 48k; if wear leveling enabled, the size is 144k*/
#define FLASH_APP_BASE \
(0x200000 - 0xA9000 \
) /*!< FATFS begin address, default size used is 512KB (can be adjusted based on user requirement)*/
#define BT_WHITELIST_BASE_1 (0x200000 - 0xA000)
#define BT_WHITELIST_PAGE_SIZE (0x1000)
#define BT_WHITELIST_BASE_2 (BT_WHITELIST_BASE_1 + BT_WHITELIST_PAGE_SIZE)
/**
* 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
#define CONFIG_ENABLE_AP_POLLING_CLIENT_ALIVE 0 // on or off AP POLLING CLIENT
// on/off relative commands in log service
#define CONFIG_SSL_CLIENT 0
#define CONFIG_OTA_UPDATE 1
#define CONFIG_BSD_TCP 0 // 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_JD_SMART 0 // on or off for jdsmart
#define CONFIG_JOYLINK 0 // on or off for jdsmart2.0
#define CONFIG_QQ_LINK 0 // on or off for qqlink
#define CONFIG_AIRKISS_CLOUD 0 // on or off for weixin hardware cloud
#define CONFIG_UART_YMODEM 0 // support uart ymodem upgrade or not
#define CONFIG_TRANSPORT 0 // on or off the at command for transport socket
#define CONFIG_ALINK 0 // on or off for alibaba alink
#define CONFIG_MIIO 0 // on or off for alibaba alink
#define CONFIG_RIC 0 // on or off for RICloud
#define CONFIG_LINKKIT_AWSS 0 // on or off for ali feiyan cloud
/* For WPS and P2P */
#define CONFIG_ENABLE_WPS 0
#define CONFIG_ENABLE_P2P 0
#if CONFIG_ENABLE_WPS
#define CONFIG_ENABLE_WPS_DISCOVERY 1
#endif
#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 Simple Link */
#define CONFIG_INCLUDE_SIMPLE_CONFIG 1
#define CONFIG_INCLUDE_DPP_CONFIG 0
/*For fast reconnection*/
#ifdef PLATFORM_OHOS
#define CONFIG_EXAMPLE_WLAN_FAST_CONNECT 0
#else
#define CONFIG_EXAMPLE_WLAN_FAST_CONNECT 1
#endif
#if CONFIG_EXAMPLE_WLAN_FAST_CONNECT
#define CONFIG_FAST_DHCP 1
#else
#define CONFIG_FAST_DHCP 0
#endif
/*For wowlan service settings*/
#define CONFIG_WOWLAN_SERVICE 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 SSL/TLS */
#define CONFIG_USE_POLARSSL 0 // polarssl is no longer suppported for AmebaZ2
#define CONFIG_USE_MBEDTLS 1
#if ((CONFIG_USE_POLARSSL == 0) && (CONFIG_USE_MBEDTLS == 0)) || \
((CONFIG_USE_POLARSSL == 1) && (CONFIG_USE_MBEDTLS == 1))
#undef CONFIG_USE_POLARSSL
#define CONFIG_USE_POLARSSL 1
#undef CONFIG_USE_MBEDTLS
#define CONFIG_USE_MBEDTLS 0
#endif
#define CONFIG_SSL_CLIENT_PRIVATE_IN_TZ 1
/* For LWIP configuration */
#define CONFIG_LWIP_DHCP_COARSE_TIMER 60
/*Enable CONFIG_LWIP_DHCP_FINE_TIMEOUT if lease time is less than or equal to CONFIG_LWIP_DHCP_COARSE_TIMER
* replace dhcp_coarse_tmr with dhcp_fine_tmr to manage and check for lease timeout
*/
#define CONFIG_LWIP_DHCP_FINE_TIMEOUT 0
/**
* 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 Azure Examples */
#define CONFIG_USE_AZURE_EMBEDDED_C 1
#if CONFIG_USE_AZURE_EMBEDDED_C
/* For Azure embedded iot examples*/
#define CONFIG_EXAMPLE_AZURE 0
#if CONFIG_EXAMPLE_AZURE
#undef WAIT_FOR_ACK
#define WAIT_FOR_ACK
#endif
#else
/* For Azure iot hub telemetry example*/
#define CONFIG_EXAMPLE_AZURE_IOTHUB_TELEMETRY 0
/* For Azure iot hub x509 example*/
#define CONFIG_EXAMPLE_AZURE_IOTHUB_X509 0
#endif
/* for CoAP example*/
#define CONFIG_EXAMPLE_COAP 0
/* for lib CoAP example*/
#define CONFIG_EXAMPLE_COAP_SERVER 0
#define CONFIG_EXAMPLE_COAP_CLIENT 0
/* 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 multicast example */
#define CONFIG_EXAMPLE_MCAST 0
/* For XML example */
#define CONFIG_EXAMPLE_XML 0
/* For JSON example */
#define CONFIG_EXAMPLE_CJSON 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 Amazon ffs example */
#define CONFIG_EXAMPLE_FFS 0
#if CONFIG_EXAMPLE_FFS
#undef CONFIG_EXAMPLE_WLAN_FAST_CONNECT
#define CONFIG_EXAMPLE_WLAN_FAST_CONNECT 0
#undef CONFIG_FAST_DHCP
#define CONFIG_FAST_DHCP 0
#endif
/* 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_CLIENT 0
/* For DCT example*/
#define CONFIG_EXAMPLE_DCT 0
/****************** 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
#undef CONFIG_EXAMPLE_WLAN_FAST_CONNECT
#undef CONFIG_FAST_DHCP
#define CONFIG_EXAMPLE_WLAN_FAST_CONNECT 0
#define CONFIG_FAST_DHCP 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 FATFS example*/
#define CONFIG_EXAMPLE_FATFS 0
#if CONFIG_EXAMPLE_FATFS
#define CONFIG_FATFS_EN 1
#if CONFIG_FATFS_EN
// fatfs version
#define FATFS_R_10C
// fatfs disk interface
#define FATFS_DISK_USB 0
#define FATFS_DISK_SD 0
#define FATFS_DISK_FLASH 1
#endif
#endif
/* 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 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
/*For secure boot example */
#define CONFIG_EXAMPLE_SECURE_BOOT 0
/*For secure storage example */
#define CONFIG_EXAMPLE_SECURE_STORAGE 0
/* For ota update http example */
#define CONFIG_EXAMPLE_OTA_HTTP 0
/*For wifi roaming example*/
#define CONFIG_EXAMPLE_WIFI_ROAMING 0
/* for tickless roaming */
#define CONFIG_EXAMPLE_TICKLESS_WIFI_ROAMING 0
/*For ipv6 example*/
#define CONFIG_EXAMPLE_IPV6 0
#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
/*For trust zone example */
#define CONFIG_EXAMPLE_TRUST_ZONE 0
/* For Amazon FreeRTOS SDK example */
#define CONFIG_EXAMPLE_AMAZON_FREERTOS 0
#define CONFIG_EXAMPLE_AMAZON_AFQP_TESTS 0
#if (defined(CONFIG_EXAMPLE_AMAZON_FREERTOS) && CONFIG_EXAMPLE_AMAZON_FREERTOS) || \
(defined(CONFIG_EXAMPLE_AMAZON_AFQP_TESTS) && CONFIG_EXAMPLE_AMAZON_AFQP_TESTS)
#undef CONFIG_INCLUDE_SIMPLE_CONFIG
#undef CONFIG_EXAMPLE_WLAN_FAST_CONNECT
#undef CONFIG_FAST_DHCP
#define CONFIG_INCLUDE_SIMPLE_CONFIG 0
#define CONFIG_EXAMPLE_WLAN_FAST_CONNECT 0
#define CONFIG_FAST_DHCP 0
#if defined(CONFIG_BUILD_SECURE)
#define ENABLE_AMAZON_COMMON
#endif
#if defined(CONFIG_BUILD_NONSECURE) && (CONFIG_SSL_CLIENT_PRIVATE_IN_TZ == 0)
#undef SUPPORT_LOG_SERVICE
#define SUPPORT_LOG_SERVICE 0
#endif
#endif
/* For UART Module AT command example */
#define CONFIG_EXAMPLE_UART_ATCMD 0
#if (defined(CONFIG_EXAMPLE_UART_ATCMD) && CONFIG_EXAMPLE_UART_ATCMD)
#define UART_SETTING_BACKUP_SECTOR (FLASH_BAKEUP_SECTOR)
#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
#if (SUPPORT_MP_MODE && CONFIG_MIIO)
#define CONFIG_MIIO_MP 0 // miio mp test and rw private data
#endif
#endif

View File

@@ -1,69 +0,0 @@
#ifndef __PLATFORM_OPTS_BT_H__
#define __PLATFORM_OPTS_BT_H__
#define CONFIG_BT 0
#if CONFIG_BT
#define CONFIG_FTL_ENABLED
#define CONFIG_BT_CONFIG 0
#define CONFIG_BT_AIRSYNC_CONFIG 0
#define CONFIG_BT_PERIPHERAL 0
#define CONFIG_BT_CENTRAL 0
#define CONFIG_BT_SCATTERNET 0
#define CONFIG_BT_BEACON 0
#define CONFIG_BT_FUZZ_TEST 0
#define CONFIG_BT_OTA_CENTRAL_CLIENT 0
#define CONFIG_BT_DATATRANS 0
#define CONFIG_BT_MESH_PROVISIONER 0
#define CONFIG_BT_MESH_DEVICE 0
#define CONFIG_BT_MESH_PROVISIONER_MULTIPLE_PROFILE 0
#define CONFIG_BT_MESH_DEVICE_MULTIPLE_PROFILE 0
#define CONFIG_BT_MESH_CENTRAL 0
#define CONFIG_BT_MESH_PERIPHERAL 0
#define CONFIG_BT_MESH_SCATTERNET 0
#define CONFIG_BT_MESH_PROVISIONER_RTK_DEMO 0
#define CONFIG_BT_MESH_DEVICE_RTK_DEMO 0
#define CONFIG_BT_MESH_TEST 0
#define CONFIG_BT_ONLY_WITHOUT_WLAN 0
#endif // CONFIG_BT
#if defined CONFIG_BT_SCATTERNET && CONFIG_BT_SCATTERNET
#undef CONFIG_BT_PERIPHERAL
#undef CONFIG_BT_CENTRAL
#define CONFIG_BT_PERIPHERAL 1
#define CONFIG_BT_CENTRAL 1
#endif
#if defined CONFIG_BT_CENTRAL && CONFIG_BT_CENTRAL
#define CONFIG_BT_USER_COMMAND 0
#define CONFIG_BT_WHITE_LIST_TO_FLASH 0
#endif
#if defined CONFIG_BT_OTA_CENTRAL_CLIENT && CONFIG_BT_OTA_CENTRAL_CLIENT
#define CONFIG_BT_OTA_CENTRAL_CLIENT_SPLIT 0
#endif
#if ((defined CONFIG_BT_MESH_PROVISIONER && CONFIG_BT_MESH_PROVISIONER) || (defined CONFIG_BT_MESH_DEVICE && CONFIG_BT_MESH_DEVICE) || (defined CONFIG_BT_MESH_PROVISIONER_MULTIPLE_PROFILE && CONFIG_BT_MESH_PROVISIONER_MULTIPLE_PROFILE) || (defined CONFIG_BT_MESH_DEVICE_MULTIPLE_PROFILE && CONFIG_BT_MESH_DEVICE_MULTIPLE_PROFILE))
#define CONFIG_BT_MESH_USER_API 1
#define CONFIG_BT_MESH_IDLE_CHECK 0
#endif
#if defined CONFIG_BT_MESH_PROVISIONER_RTK_DEMO && CONFIG_BT_MESH_PROVISIONER_RTK_DEMO
#undef CONFIG_BT_CONFIG
#define CONFIG_BT_CONFIG 1
#endif
#if ((defined CONFIG_BT_MESH_PROVISIONER && CONFIG_BT_MESH_PROVISIONER) && (defined CONFIG_BT_MESH_DEVICE && CONFIG_BT_MESH_DEVICE))
#error "CONFIG_BT_MESH_PROVISIONER & CONFIG_BT_MESH_DEVICE can not open at the same time"
#endif
#if ((defined CONFIG_BT_MESH_PROVISIONER_MULTIPLE_PROFILE && CONFIG_BT_MESH_PROVISIONER_MULTIPLE_PROFILE) && (defined CONFIG_BT_MESH_DEVICE_MULTIPLE_PROFILE && CONFIG_BT_MESH_DEVICE_MULTIPLE_PROFILE))
#error \
"CONFIG_BT_MESH_PROVISIONER_MULTIPLE_PROFILE & CONFIG_BT_MESH_DEVICE_MULTIPLE_PROFILE can not open at the same time"
#endif
#if (((defined CONFIG_BT_MESH_CENTRAL && CONFIG_BT_MESH_CENTRAL) && (defined CONFIG_BT_MESH_PERIPHERAL && CONFIG_BT_MESH_PERIPHERAL)) || ((defined CONFIG_BT_MESH_CENTRAL && CONFIG_BT_MESH_CENTRAL) && (defined CONFIG_BT_MESH_SCATTERNET && CONFIG_BT_MESH_SCATTERNET)) || ((defined CONFIG_BT_MESH_PERIPHERAL && CONFIG_BT_MESH_PERIPHERAL) && (defined CONFIG_BT_MESH_SCATTERNET && CONFIG_BT_MESH_SCATTERNET)) || ((defined CONFIG_BT_MESH_CENTRAL && CONFIG_BT_MESH_CENTRAL) && (defined CONFIG_BT_MESH_PERIPHERAL && CONFIG_BT_MESH_PERIPHERAL) && (defined CONFIG_BT_MESH_SCATTERNET && CONFIG_BT_MESH_SCATTERNET)))
#error "Only one of CONFIG_BT_MESH_CENTRAL, CONFIG_BT_MESH_PERIPHERAL and CONFIG_BT_MESH_SCATTERNET can be enabled"
#endif
#endif // __PLATFORM_OPTS_BT_H__

View File

@@ -0,0 +1,32 @@
/* Copyright (c) Kuba Szczodrzyński 2023-03-03. */
#include <stddef.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <basic_types.h>
#include <platform_conf.h>
#include <utility.h>
int __wrap_memcmp(const void *av, const void *bv, size_t len) {
return utility_stubs.memcmp(av, bv, len);
}
void *__wrap_memcpy(void *s1, const void *s2, size_t n) {
return utility_stubs.memcpy(s1, s2, n);
}
void *__wrap_memmove(void *destaddr, const void *sourceaddr, unsigned length) {
return utility_stubs.memmove(destaddr, sourceaddr, length);
}
void *__wrap_memset(void *dst0, int val, size_t length) {
return utility_stubs.memset(dst0, val, length);
}
#if (CHIP_VER >= CHIP_B_CUT)
int __wrap_memcmp_s(const void *av, const void *bv, size_t len) {
return utility_stubs.memcmp_s(av, bv, len);
}
#endif

View File

@@ -0,0 +1,17 @@
/* Copyright (c) Kuba Szczodrzyński 2023-03-03. */
#pragma once
// Remove SDK definitions of memory utilities.
// Include stdlib versions instead.
// Wrapper functions for the removed prototypes are provided in memory.c.
#include <platform_conf.h>
#include <string.h>
#include <utility.h>
// Map SDK functions so that they point to stdlib again
#define rt_memcmp memcmp
#define rt_memcpy memcpy
#define rt_memmove memmove
#define rt_memset memset

View File

@@ -0,0 +1,168 @@
/* Copyright (c) Kuba Szczodrzyński 2023-03-03. */
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct strproc_func_stubs_s {
char *(*strcat)(char *dest, const char *src);
char *(*strchr)(const char *s, int c);
int (*strcmp)(const char *cs, const char *ct);
int (*strncmp)(const char *cs, const char *ct, size_t count);
int (*strnicmp)(const char *s1, const char *s2, size_t len);
char *(*strcpy)(char *dest, const char *src);
char *(*strncpy)(char *dest, const char *src, size_t count);
size_t (*strlcpy)(char *dst, const char *src, size_t s);
size_t (*strlen)(const char *s);
size_t (*strnlen)(const char *s, size_t count);
char *(*strncat)(char *dest, const char *src, size_t count);
char *(*strpbrk)(const char *cs, const char *ct);
size_t (*strspn)(const char *s, const char *accept);
char *(*strstr)(const char *s1, const char *s2);
char *(*strtok)(char *s, const char *ct);
size_t (*strxfrm)(char *dest, const char *src, size_t n);
char *(*strsep)(char **s, const char *ct);
double (*strtod)(const char *str, char **endptr);
float (*strtof)(const char *str, char **endptr);
long double (*strtold)(const char *str, char **endptr);
long (*strtol)(const char *nptr, char **endptr, int base);
long long (*strtoll)(const char *nptr, char **endptr, int base);
unsigned long (*strtoul)(const char *nptr, char **endptr, int base);
unsigned long long (*strtoull)(const char *nptr, char **endptr, int base);
int (*atoi)(const char *num);
unsigned int (*atoui)(const char *num);
long (*atol)(const char *num);
unsigned long (*atoul)(const char *num);
unsigned long long (*atoull)(const char *num);
double (*atof)(const char *str);
uint32_t reserved[16]; // reserved space for next ROM code version function table extending.
} strproc_func_stubs_t;
extern const strproc_func_stubs_t strproc_stubs;
// Wrappers
char *__wrap_strcat(char *dest, const char *src) {
return strproc_stubs.strcat(dest, src);
}
char *__wrap_strchr(const char *s, int c) {
return strproc_stubs.strchr(s, c);
}
int __wrap_strcmp(const char *cs, const char *ct) {
return strproc_stubs.strcmp(cs, ct);
}
int __wrap_strncmp(const char *cs, const char *ct, size_t count) {
return strproc_stubs.strncmp(cs, ct, count);
}
char *__wrap_strcpy(char *dest, const char *src) {
return strproc_stubs.strcpy(dest, src);
}
char *__wrap_strncpy(char *dest, const char *src, size_t count) {
return strproc_stubs.strncpy(dest, src, count);
}
size_t __wrap_strlen(const char *s) {
return strproc_stubs.strlen(s);
}
char *__wrap_strncat(char *dest, const char *src, size_t count) {
return strproc_stubs.strncat(dest, src, count);
}
char *__wrap_strpbrk(const char *cs, const char *ct) {
return strproc_stubs.strpbrk(cs, ct);
}
size_t __wrap_strspn(const char *s, const char *accept) {
return strproc_stubs.strspn(s, accept);
}
char *__wrap_strstr(const char *s1, const char *s2) {
return strproc_stubs.strstr(s1, s2);
}
char *__wrap_strtok(char *s, const char *ct) {
return strproc_stubs.strtok(s, ct);
}
size_t __wrap_strxfrm(char *dest, const char *src, size_t n) {
return strproc_stubs.strxfrm(dest, src, n);
}
double __wrap_strtod(const char *str, char **endptr) {
return strproc_stubs.strtod(str, endptr);
}
float __wrap_strtof(const char *str, char **endptr) {
return strproc_stubs.strtof(str, endptr);
}
long double __wrap_strtold(const char *str, char **endptr) {
return strproc_stubs.strtold(str, endptr);
}
double __wrap_atof(const char *str) {
return strproc_stubs.atof(str);
}
long __wrap_strtol(const char *nptr, char **endptr, int base) {
return strproc_stubs.strtol(nptr, endptr, base);
}
long long __wrap_strtoll(const char *nptr, char **endptr, int base) {
return strproc_stubs.strtoll(nptr, endptr, base);
}
unsigned long __wrap_strtoul(const char *nptr, char **endptr, int base) {
return strproc_stubs.strtoul(nptr, endptr, base);
}
unsigned long long __wrap_strtoull(const char *nptr, char **endptr, int base) {
return strproc_stubs.strtoull(nptr, endptr, base);
}
int __wrap_atoi(const char *num) {
return strproc_stubs.atoi(num);
}
long __wrap_atol(const char *num) {
return strproc_stubs.atol(num);
}
// Standalone functions
unsigned long atoul(const char *num) {
return strproc_stubs.atoul(num);
}
unsigned long long atoull(const char *num) {
return strproc_stubs.atoull(num);
}
unsigned int atoui(const char *num) {
return strproc_stubs.atoui(num);
}
size_t strnlen(const char *s, size_t count) {
return strproc_stubs.strnlen(s, count);
}
size_t strlcpy(char *dst, const char *src, size_t s) {
return strproc_stubs.strlcpy(dst, src, s);
}
int strnicmp(const char *s1, const char *s2, size_t len) {
return strproc_stubs.strnicmp(s1, s2, len);
}
char *strsep(char **s, const char *ct) {
return strproc_stubs.strsep(s, ct);
}

View File

@@ -0,0 +1,22 @@
/* Copyright (c) Kuba Szczodrzyński 2023-03-03. */
#pragma once
// Remove SDK definitions of string processing methods.
// Include stdlib versions instead.
// Wrapper functions for the removed prototypes are provided in strproc.c.
#include <stdarg.h>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
// These functions aren't part of stdlib.
unsigned long atoul(const char *num);
unsigned long long atoull(const char *num);
unsigned int atoui(const char *num);
size_t strnlen(const char *s, size_t count);
size_t strlcpy(char *dst, const char *src, size_t s);
int strnicmp(const char *s1, const char *s2, size_t len);
char *strsep(char **s, const char *ct);

View File

@@ -0,0 +1,6 @@
/* Copyright (c) Kuba Szczodrzyński 2023-03-03. */
#pragma once
// proxy because we're not using soc/realtek/8710c/misc/utilities/include as it contains ctype.h
#include <include/utility.h>

View File

@@ -0,0 +1,18 @@
/* Copyright (c) Kuba Szczodrzyński 2023-03-02. */
#pragma once
#include <variant.h>
// 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