esp32c6: add newlib support

pull/9946/head
wuzhenghui 2022-07-12 21:10:16 +08:00 zatwierdzone przez Song Ruo Jing
rodzic ff8dd1e1a8
commit 62f9ddcb82
5 zmienionych plików z 14 dodań i 4 usunięć

Wyświetl plik

@ -384,7 +384,7 @@ void esp_newlib_locks_init(void)
__sinit_recursive_mutex = (_lock_t) &s_common_recursive_mutex; __sinit_recursive_mutex = (_lock_t) &s_common_recursive_mutex;
extern _lock_t __sfp_recursive_mutex; extern _lock_t __sfp_recursive_mutex;
__sfp_recursive_mutex = (_lock_t) &s_common_recursive_mutex; __sfp_recursive_mutex = (_lock_t) &s_common_recursive_mutex;
#elif defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32S3) || defined(CONFIG_IDF_TARGET_ESP32H2) || defined(CONFIG_IDF_TARGET_ESP32C2) #elif ESP_ROM_HAS_RETARGETABLE_LOCKING
/* Newlib 3.3.0 is used in ROM, built with _RETARGETABLE_LOCKING. /* Newlib 3.3.0 is used in ROM, built with _RETARGETABLE_LOCKING.
* No access to lock variables for the purpose of ECO forward compatibility, * No access to lock variables for the purpose of ECO forward compatibility,
* however we have an API to initialize lock variables used in the ROM. * however we have an API to initialize lock variables used in the ROM.

Wyświetl plik

@ -33,6 +33,8 @@
#include "esp32h2/rom/libc_stubs.h" #include "esp32h2/rom/libc_stubs.h"
#elif CONFIG_IDF_TARGET_ESP32C2 #elif CONFIG_IDF_TARGET_ESP32C2
#include "esp32c2/rom/libc_stubs.h" #include "esp32c2/rom/libc_stubs.h"
#elif CONFIG_IDF_TARGET_ESP32C6
#include "esp32c6/rom/libc_stubs.h"
#endif #endif
static struct _reent s_reent; static struct _reent s_reent;
@ -109,7 +111,8 @@ static struct syscall_stub_table s_stub_table = {
._printf_float = NULL, ._printf_float = NULL,
._scanf_float = NULL, ._scanf_float = NULL,
#endif #endif
#if CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32C2 #if CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32H2 \
|| CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6
/* TODO IDF-2570 : mark that this assert failed in ROM, to avoid confusion between IDF & ROM /* TODO IDF-2570 : mark that this assert failed in ROM, to avoid confusion between IDF & ROM
assertion failures (as function names & source file names will be similar) assertion failures (as function names & source file names will be similar)
*/ */
@ -132,7 +135,8 @@ void esp_newlib_init(void)
syscall_table_ptr_pro = syscall_table_ptr_app = &s_stub_table; syscall_table_ptr_pro = syscall_table_ptr_app = &s_stub_table;
#elif CONFIG_IDF_TARGET_ESP32S2 #elif CONFIG_IDF_TARGET_ESP32S2
syscall_table_ptr_pro = &s_stub_table; syscall_table_ptr_pro = &s_stub_table;
#elif CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32C2 #elif CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32H2 \
|| CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C6
syscall_table_ptr = &s_stub_table; syscall_table_ptr = &s_stub_table;
#endif #endif

Wyświetl plik

@ -39,6 +39,9 @@
#elif CONFIG_IDF_TARGET_ESP32C2 #elif CONFIG_IDF_TARGET_ESP32C2
#include "esp32c2/rom/rtc.h" #include "esp32c2/rom/rtc.h"
#include "esp32c2/rtc.h" #include "esp32c2/rtc.h"
#elif CONFIG_IDF_TARGET_ESP32C6
#include "esp32c6/rom/rtc.h"
#include "esp32c6/rtc.h"
#endif #endif

Wyświetl plik

@ -146,7 +146,8 @@ TEST_CASE("check if ROM or Flash is used for functions", "[newlib]")
#if defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_SPIRAM) #if defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_SPIRAM)
TEST_ASSERT(fn_in_rom(atoi)); TEST_ASSERT(fn_in_rom(atoi));
TEST_ASSERT(fn_in_rom(strtol)); TEST_ASSERT(fn_in_rom(strtol));
#elif defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32S3) || defined(CONFIG_IDF_TARGET_ESP32H2) || defined(CONFIG_IDF_TARGET_ESP32C2) #elif defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32S3) || defined(CONFIG_IDF_TARGET_ESP32H2)\
|| defined(CONFIG_IDF_TARGET_ESP32C2) || defined(CONFIG_IDF_TARGET_ESP32C6)
/* S3 and C3 always use these from ROM */ /* S3 and C3 always use these from ROM */
TEST_ASSERT(fn_in_rom(atoi)); TEST_ASSERT(fn_in_rom(atoi));
TEST_ASSERT(fn_in_rom(strtol)); TEST_ASSERT(fn_in_rom(strtol));

Wyświetl plik

@ -40,6 +40,8 @@
#include "esp32h2/rtc.h" #include "esp32h2/rtc.h"
#elif CONFIG_IDF_TARGET_ESP32C2 #elif CONFIG_IDF_TARGET_ESP32C2
#include "esp32c2/rtc.h" #include "esp32c2/rtc.h"
#elif CONFIG_IDF_TARGET_ESP32C6
#include "esp32c6/rtc.h"
#endif #endif
#if portNUM_PROCESSORS == 2 #if portNUM_PROCESSORS == 2