This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new 438cb4a16a xtensa/esp32s3: Add rtc heap support
438cb4a16a is described below

commit 438cb4a16a4e4bc704d79313137225d943f28cc5
Author: Eren Terzioglu <[email protected]>
AuthorDate: Fri Nov 10 19:41:07 2023 +0300

    xtensa/esp32s3: Add rtc heap support
---
 arch/xtensa/Kconfig                                |   1 +
 arch/xtensa/src/esp32s3/Kconfig                    |   5 +
 arch/xtensa/src/esp32s3/Make.defs                  |   8 +
 arch/xtensa/src/esp32s3/esp32s3_extraheaps.c       |   9 ++
 arch/xtensa/src/esp32s3/esp32s3_imm.c              |  18 +--
 arch/xtensa/src/esp32s3/esp32s3_rtcheap.c          |  34 ++++-
 arch/xtensa/src/esp32s3/esp32s3_rtcheap.h          |  41 +++++-
 arch/xtensa/src/esp32s3/esp32s3_textheap.c         | 161 +++++++++++++++++++++
 arch/xtensa/src/esp32s3/hardware/esp32s3_soc.h     |  20 +++
 .../xtensa/esp32s3/common/scripts/flat_memory.ld   |   3 +
 .../esp32s3/common/scripts/legacy_sections.ld      |  11 ++
 .../esp32s3/common/scripts/mcuboot_sections.ld     |   5 +
 .../esp32s3-devkit/configs/sotest/defconfig        |  52 +++++++
 13 files changed, 357 insertions(+), 11 deletions(-)

diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig
index 47671e8337..eec777b1a4 100644
--- a/arch/xtensa/Kconfig
+++ b/arch/xtensa/Kconfig
@@ -83,6 +83,7 @@ config ARCH_CHIP_ESP32S3
        select ARCH_HAVE_MPU
        select ARCH_HAVE_MULTICPU
        select ARCH_HAVE_RESET
+       select ARCH_HAVE_TEXT_HEAP
        select ARCH_HAVE_TESTSET
        select ARCH_VECNOTIRQ
        select LIBC_PREVENT_STRING_KERNEL
diff --git a/arch/xtensa/src/esp32s3/Kconfig b/arch/xtensa/src/esp32s3/Kconfig
index 396cd96b0e..f4d8faff62 100644
--- a/arch/xtensa/src/esp32s3/Kconfig
+++ b/arch/xtensa/src/esp32s3/Kconfig
@@ -906,6 +906,11 @@ config ESP32S3_SPIRAM_USER_HEAP
 
 endchoice # ESP32S3_SPIRAM_HEAP
 
+config ESP32S3_RTC_HEAP
+       bool "Use the RTC memory as a separate heap"
+       select ARCH_HAVE_EXTRA_HEAPS
+       default n
+
 endmenu # Memory Configuration
 
 config ESP32S3_GPIO_IRQ
diff --git a/arch/xtensa/src/esp32s3/Make.defs 
b/arch/xtensa/src/esp32s3/Make.defs
index 502fcbcf14..a0c90f09ee 100644
--- a/arch/xtensa/src/esp32s3/Make.defs
+++ b/arch/xtensa/src/esp32s3/Make.defs
@@ -156,6 +156,14 @@ ifeq ($(CONFIG_ARCH_HAVE_EXTRA_HEAPS),y)
 CHIP_CSRCS += esp32s3_extraheaps.c
 endif
 
+ifeq ($(CONFIG_ESP32S3_RTC_HEAP),y)
+CHIP_CSRCS += esp32s3_rtcheap.c
+endif
+
+ifeq ($(CONFIG_ARCH_USE_TEXT_HEAP),y)
+CHIP_CSRCS += esp32s3_textheap.c
+endif
+
 ifeq ($(CONFIG_ESP32S3_TOUCH),y)
 CHIP_CSRCS += esp32s3_touch.c
 endif
diff --git a/arch/xtensa/src/esp32s3/esp32s3_extraheaps.c 
b/arch/xtensa/src/esp32s3/esp32s3_extraheaps.c
index 539cfaa402..48688a6d70 100644
--- a/arch/xtensa/src/esp32s3/esp32s3_extraheaps.c
+++ b/arch/xtensa/src/esp32s3/esp32s3_extraheaps.c
@@ -25,6 +25,10 @@
 #include <nuttx/config.h>
 #include <nuttx/mm/mm.h>
 
+#ifdef CONFIG_ESP32S3_RTC_HEAP
+#  include "esp32s3_rtcheap.h"
+#endif
+
 /****************************************************************************
  * Public Functions
  ****************************************************************************/
@@ -42,5 +46,10 @@ void up_extraheaps_init(void)
 #ifdef CONFIG_XTENSA_IMEM_USE_SEPARATE_HEAP
   xtensa_imm_initialize();
 #endif
+#ifdef CONFIG_ESP32S3_RTC_HEAP
+  /* Initialize the RTC heap */
+
+  esp32s3_rtcheap_initialize();
+#endif
 }
 
diff --git a/arch/xtensa/src/esp32s3/esp32s3_imm.c 
b/arch/xtensa/src/esp32s3/esp32s3_imm.c
index e1e432670c..c8ed901c84 100644
--- a/arch/xtensa/src/esp32s3/esp32s3_imm.c
+++ b/arch/xtensa/src/esp32s3/esp32s3_imm.c
@@ -79,7 +79,7 @@ void xtensa_imm_initialize(void)
  *   size - Size (in bytes) of the memory region to be allocated.
  *
  * Return Value:
- *   Adress of the allocated memory space. NULL, if allocation fails.
+ *   Address of the allocated memory space. NULL, if allocation fails.
  *
  ****************************************************************************/
 
@@ -100,7 +100,7 @@ void *xtensa_imm_malloc(size_t size)
  *   elem_size - Size (in bytes) of the type to be allocated.
  *
  * Return Value:
- *   Adress of the allocated memory space. NULL, if allocation fails.
+ *   Address of the allocated memory space. NULL, if allocation fails.
  *
  ****************************************************************************/
 
@@ -116,11 +116,11 @@ void *xtensa_imm_calloc(size_t n, size_t elem_size)
  *   Reallocate memory from the internal heap.
  *
  * Input Parameters:
- *   ptr  - Adress to be reallocate.
- *   size - Size (in bytes) to be reallocate.
+ *   ptr  - Address to be reallocated.
+ *   size - Size (in bytes) to be reallocated.
  *
  * Return Value:
- *   Adress of the possibly moved memory space. NULL, if allocation fails.
+ *   Address of the possibly moved memory space. NULL, if allocation fails.
  *
  ****************************************************************************/
 
@@ -139,7 +139,7 @@ void *xtensa_imm_realloc(void *ptr, size_t size)
  *   size - Size (in bytes) of the memory region to be allocated.
  *
  * Return Value:
- *   Adress of the allocated memory space. NULL, if allocation fails.
+ *   Address of the allocated memory space. NULL, if allocation fails.
  *
  ****************************************************************************/
 
@@ -155,7 +155,7 @@ void *xtensa_imm_zalloc(size_t size)
  *   Free memory from the internal heap.
  *
  * Input Parameters:
- *   mem - Adress to be freed.
+ *   mem - Address to be freed.
  *
  * Returned Value:
  *   None.
@@ -180,10 +180,10 @@ void xtensa_imm_free(void *mem)
  *
  * Input Parameters:
  *   alignment - Requested alignment.
- *   size - Size (in bytes) of the memory region to be allocated.
+ *   size      - Size (in bytes) of the memory region to be allocated.
  *
  * Return Value:
- *   Adress of the allocated adress. NULL, if allocation fails.
+ *   Address of the allocated address. NULL, if allocation fails.
  *
  ****************************************************************************/
 
diff --git a/arch/xtensa/src/esp32s3/esp32s3_rtcheap.c 
b/arch/xtensa/src/esp32s3/esp32s3_rtcheap.c
index 1fe5293a5f..87946e7344 100644
--- a/arch/xtensa/src/esp32s3/esp32s3_rtcheap.c
+++ b/arch/xtensa/src/esp32s3/esp32s3_rtcheap.c
@@ -75,6 +75,9 @@ void esp32s3_rtcheap_initialize(void)
  * Parameters:
  *   size - Size (in bytes) of the memory region to be allocated.
  *
+ * Return Value:
+ *   Address of the allocated memory space. NULL, if allocation fails.
+ *
  ****************************************************************************/
 
 void *esp32s3_rtcheap_malloc(size_t size)
@@ -86,9 +89,16 @@ void *esp32s3_rtcheap_malloc(size_t size)
  * Name: esp32s3_rtcheap_calloc
  *
  * Description:
- *   Calculates the size of the allocation and allocate memory from
+ *   Calculates the size of the allocation and allocates memory from
  *   the RTC heap.
  *
+ * Parameters:
+ *   n         - Size (in types) of the memory region to be allocated.
+ *   elem_size - Size (in bytes) of the type to be allocated.
+ *
+ * Return Value:
+ *   Address of the allocated memory space. NULL, if allocation fails.
+ *
  ****************************************************************************/
 
 void *esp32s3_rtcheap_calloc(size_t n, size_t elem_size)
@@ -102,6 +112,13 @@ void *esp32s3_rtcheap_calloc(size_t n, size_t elem_size)
  * Description:
  *   Reallocate memory from the RTC heap.
  *
+ * Parameters:
+ *   ptr  - Address to be reallocated.
+ *   size - Size (in bytes) to be reallocated.
+ *
+ * Return Value:
+ *   Address of the possibly moved memory space. NULL, if allocation fails.
+ *
  ****************************************************************************/
 
 void *esp32s3_rtcheap_realloc(void *ptr, size_t size)
@@ -115,6 +132,12 @@ void *esp32s3_rtcheap_realloc(void *ptr, size_t size)
  * Description:
  *   Allocate and zero memory from the RTC heap.
  *
+ * Parameters:
+ *   size - Size (in bytes) of the memory region to be allocated.
+ *
+ * Return Value:
+ *   Address of the allocated memory space. NULL, if allocation fails.
+ *
  ****************************************************************************/
 
 void *esp32s3_rtcheap_zalloc(size_t size)
@@ -128,6 +151,9 @@ void *esp32s3_rtcheap_zalloc(size_t size)
  * Description:
  *   Free memory from the RTC heap.
  *
+ * Parameters:
+ *   mem - Address to be freed.
+ *
  ****************************************************************************/
 
 void esp32s3_rtcheap_free(void *mem)
@@ -150,6 +176,9 @@ void esp32s3_rtcheap_free(void *mem)
  *   alignment - Requested alignment.
  *   size - Size (in bytes) of the memory region to be allocated.
  *
+ * Return Value:
+ *   Address of the allocated adddress. NULL, if allocation fails.
+ *
  ****************************************************************************/
 
 void *esp32s3_rtcheap_memalign(size_t alignment, size_t size)
@@ -184,6 +213,9 @@ bool esp32s3_rtcheap_heapmember(void *mem)
  *   user heap.
  *
  * Parameters:
+ *   None.
+ *
+ * Return Value:
  *   info - Where memory information will be copied.
  *
  ****************************************************************************/
diff --git a/arch/xtensa/src/esp32s3/esp32s3_rtcheap.h 
b/arch/xtensa/src/esp32s3/esp32s3_rtcheap.h
index 9909f812ba..edd8d56c3c 100644
--- a/arch/xtensa/src/esp32s3/esp32s3_rtcheap.h
+++ b/arch/xtensa/src/esp32s3/esp32s3_rtcheap.h
@@ -54,6 +54,9 @@ void esp32s3_rtcheap_initialize(void);
  * Parameters:
  *   size - Size (in bytes) of the memory region to be allocated.
  *
+ * Return Value:
+ *   Address of the allocated memory space. NULL, if allocation fails.
+ *
  ****************************************************************************/
 
 void *esp32s3_rtcheap_malloc(size_t size);
@@ -62,9 +65,16 @@ void *esp32s3_rtcheap_malloc(size_t size);
  * Name: esp32s3_rtcheap_calloc
  *
  * Description:
- *   Calculates the size of the allocation and allocate memory from
+ *   Calculates the size of the allocation and allocates memory from
  *   the RTC heap.
  *
+ * Parameters:
+ *   n         - Size (in types) of the memory region to be allocated.
+ *   elem_size - Size (in bytes) of the type to be allocated.
+ *
+ * Return Value:
+ *   Address of the allocated memory space. NULL, if allocation fails.
+ *
  ****************************************************************************/
 
 void *esp32s3_rtcheap_calloc(size_t n, size_t elem_size);
@@ -75,6 +85,13 @@ void *esp32s3_rtcheap_calloc(size_t n, size_t elem_size);
  * Description:
  *   Reallocate memory from the RTC heap.
  *
+ * Parameters:
+ *   ptr  - Address to be reallocated.
+ *   size - Size (in bytes) to be reallocated.
+ *
+ * Return Value:
+ *   Address of the possibly moved memory space. NULL, if allocation fails.
+ *
  ****************************************************************************/
 
 void *esp32s3_rtcheap_realloc(void *ptr, size_t size);
@@ -85,6 +102,12 @@ void *esp32s3_rtcheap_realloc(void *ptr, size_t size);
  * Description:
  *   Allocate and zero memory from the RTC heap.
  *
+ * Parameters:
+ *   size - Size (in bytes) of the memory region to be allocated.
+ *
+ * Return Value:
+ *   Address of the allocated memory space. NULL, if allocation fails.
+ *
  ****************************************************************************/
 
 void *esp32s3_rtcheap_zalloc(size_t size);
@@ -95,6 +118,9 @@ void *esp32s3_rtcheap_zalloc(size_t size);
  * Description:
  *   Free memory from the RTC heap.
  *
+ * Parameters:
+ *   mem - Address to be freed.
+ *
  ****************************************************************************/
 
 void esp32s3_rtcheap_free(void *mem);
@@ -110,6 +136,13 @@ void esp32s3_rtcheap_free(void *mem);
  *   The alignment argument must be a power of two (not checked). 8-byte
  *   alignment is guaranteed by normal malloc calls.
  *
+ * Parameters:
+ *   alignment - Requested alignment.
+ *   size      - Size (in bytes) of the memory region to be allocated.
+ *
+ * Return Value:
+ *   Address of the allocated adddress. NULL, if allocation fails.
+ *
  ****************************************************************************/
 
 void *esp32s3_rtcheap_memalign(size_t alignment, size_t size);
@@ -137,6 +170,12 @@ bool esp32s3_rtcheap_heapmember(void *mem);
  *   mallinfo returns a copy of updated current heap information for the
  *   user heap.
  *
+ * Parameters:
+ *   None.
+ *
+ * Return Value:
+ *   info - Where memory information will be copied.
+ *
  ****************************************************************************/
 
 struct mallinfo esp32s3_rtcheap_mallinfo(void);
diff --git a/arch/xtensa/src/esp32s3/esp32s3_textheap.c 
b/arch/xtensa/src/esp32s3/esp32s3_textheap.c
new file mode 100644
index 0000000000..d6d1907fcc
--- /dev/null
+++ b/arch/xtensa/src/esp32s3/esp32s3_textheap.c
@@ -0,0 +1,161 @@
+/****************************************************************************
+ * arch/xtensa/src/esp32s3/esp32s3_textheap.c
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+#include <nuttx/arch.h>
+#include <nuttx/fs/procfs.h>
+#include <nuttx/mm/mm.h>
+
+#include <sys/types.h>
+#include <debug.h>
+#include <nuttx/kmalloc.h>
+
+#include "hardware/esp32s3_soc.h"
+
+#ifdef CONFIG_ESP32S3_RTC_HEAP
+#  include "esp32s3_rtcheap.h"
+#endif
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+#ifndef CONFIG_ESP32S3_RTC_HEAP
+#error "No suitable heap available. Enable ESP32S3_RTC_HEAP."
+#endif
+
+#define D_I_BUS_OFFSET  0x700000
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: up_textheap_memalign
+ *
+ * Description:
+ *   memalign requests more than enough space from malloc, finds a region
+ *   within that chunk that meets the alignment request and then frees any
+ *   leading or trailing space in text heap.
+ *
+ *   The alignment argument must be a power of two (not checked). 8-byte
+ *   alignment is guaranteed by normal malloc calls.
+ *
+ * Parameters:
+ *   align - Requested alignment.
+ *   size  - Size (in bytes) of the memory region to be allocated.
+ *
+ * Return Value:
+ *   Address of the allocated address. NULL, if allocation fails.
+ *
+ ****************************************************************************/
+
+void *up_textheap_memalign(size_t align, size_t size)
+{
+  void *ret = NULL;
+
+  /* Prioritise allocating from RTC. If that fails, allocate from the
+   * main heap.
+   */
+
+#ifdef CONFIG_ESP32S3_RTC_HEAP
+  ret = esp32s3_rtcheap_memalign(align, size);
+#endif
+
+  if (ret == NULL)
+    {
+      ret = kmm_memalign(align, size);
+      if (ret)
+        {
+          /* kmm_memalign buffer is at the Data bus offset.  Adjust it so we
+           * can access it from the Instruction bus.
+           */
+
+          ret += D_I_BUS_OFFSET;
+        }
+    }
+
+  return ret;
+}
+
+/****************************************************************************
+ * Name: up_textheap_free
+ *
+ * Description:
+ *   Free memory from the text heap.
+ *
+ * Parameters:
+ *   mem - Address to be freed.
+ *
+ ****************************************************************************/
+
+void up_textheap_free(void *p)
+{
+  if (p)
+    {
+#ifdef CONFIG_ESP32S3_RTC_HEAP
+      if (esp32s3_ptr_rtc(p))
+        {
+          esp32s3_rtcheap_free(p);
+        }
+      else
+#endif
+        {
+          p -= D_I_BUS_OFFSET;
+          kmm_free(p);
+        }
+    }
+}
+
+/****************************************************************************
+ * Name: up_textheap_heapmember
+ *
+ * Description:
+ *   Check if an address lies in text heap.
+ *
+ * Parameters:
+ *   mem - The address to check.
+ *
+ * Return Value:
+ *   True if the address is a member of the text heap. False if not.
+ *
+ ****************************************************************************/
+
+bool up_textheap_heapmember(void *p)
+{
+  if (p == NULL)
+    {
+      return false;
+    }
+
+#ifdef CONFIG_ESP32S3_RTC_HEAP
+  if (esp32s3_ptr_rtc(p))
+    {
+      return esp32s3_rtcheap_heapmember(p);
+    }
+#endif
+
+  p -= D_I_BUS_OFFSET;
+  return kmm_heapmember(p);
+}
diff --git a/arch/xtensa/src/esp32s3/hardware/esp32s3_soc.h 
b/arch/xtensa/src/esp32s3/hardware/esp32s3_soc.h
index d38ee869c6..f6337da0ec 100644
--- a/arch/xtensa/src/esp32s3/hardware/esp32s3_soc.h
+++ b/arch/xtensa/src/esp32s3/hardware/esp32s3_soc.h
@@ -553,6 +553,26 @@ static inline bool IRAM_ATTR esp32s3_ptr_exec(const void 
*p)
       || (ip >= SOC_RTC_IRAM_LOW && ip < SOC_RTC_IRAM_HIGH);
 }
 
+/****************************************************************************
+ * Name: esp32s3_ptr_rtc
+ *
+ * Description:
+ *   Check if the buffer comes from the RTC RAM.
+ *
+ * Parameters:
+ *   p - Address of the buffer.
+ *
+ * Return Value:
+ *   True if given buffer comes from RTC RAM. False if not.
+ *
+ ****************************************************************************/
+
+static inline bool IRAM_ATTR esp32s3_ptr_rtc(const void *p)
+{
+  return ((intptr_t)p >= SOC_RTC_DATA_LOW &&
+          (intptr_t)p < SOC_RTC_DATA_HIGH);
+}
+
 #endif /* __ASSEMBLY__ */
 
 #endif /* __ARCH_XTENSA_SRC_ESP32S3_HARDWARE_ESP32S3_SOC_H */
diff --git a/boards/xtensa/esp32s3/common/scripts/flat_memory.ld 
b/boards/xtensa/esp32s3/common/scripts/flat_memory.ld
index 9a2acc1acb..0df435f650 100644
--- a/boards/xtensa/esp32s3/common/scripts/flat_memory.ld
+++ b/boards/xtensa/esp32s3/common/scripts/flat_memory.ld
@@ -179,3 +179,6 @@ MEMORY
   REGION_ALIAS("default_code_seg", irom0_0_seg);
 #endif /* CONFIG_ESP32S3_RUN_IRAM */
 
+/* Mark the end of the RTC heap (top of the RTC region) */
+
+_ertcheap = 0x50001fff;
diff --git a/boards/xtensa/esp32s3/common/scripts/legacy_sections.ld 
b/boards/xtensa/esp32s3/common/scripts/legacy_sections.ld
index 22ebcdbcd8..ed4a6cbb34 100644
--- a/boards/xtensa/esp32s3/common/scripts/legacy_sections.ld
+++ b/boards/xtensa/esp32s3/common/scripts/legacy_sections.ld
@@ -367,4 +367,15 @@ SECTIONS
     . = ALIGN(4);
     _iram_end = ABSOLUTE(.);
   } >iram0_0_seg
+
+  .rtc.data :
+  {
+    *(.rtc.data)
+    *(.rtc.rodata)
+
+   /* Whatever is left from the RTC memory is used as a special heap. */
+
+    . = ALIGN (4);
+    _srtcheap = ABSOLUTE(.);
+  } > rtc_slow_seg
 }
diff --git a/boards/xtensa/esp32s3/common/scripts/mcuboot_sections.ld 
b/boards/xtensa/esp32s3/common/scripts/mcuboot_sections.ld
index fe59f59fb7..e8cbb99b23 100644
--- a/boards/xtensa/esp32s3/common/scripts/mcuboot_sections.ld
+++ b/boards/xtensa/esp32s3/common/scripts/mcuboot_sections.ld
@@ -333,5 +333,10 @@ SECTIONS
   {
     *(.rtc.data)
     *(.rtc.rodata)
+
+   /* Whatever is left from the RTC memory is used as a special heap. */
+
+    . = ALIGN (4);
+    _srtcheap = ABSOLUTE(.);
   } >rtc_data_seg AT>ROM
 }
diff --git a/boards/xtensa/esp32s3/esp32s3-devkit/configs/sotest/defconfig 
b/boards/xtensa/esp32s3/esp32s3-devkit/configs/sotest/defconfig
new file mode 100644
index 0000000000..f996774c55
--- /dev/null
+++ b/boards/xtensa/esp32s3/esp32s3-devkit/configs/sotest/defconfig
@@ -0,0 +1,52 @@
+#
+# This file is autogenerated: PLEASE DO NOT EDIT IT.
+#
+# You can use "make menuconfig" to make any modifications to the installed 
.config file.
+# You can then do "make savedefconfig" to generate a new defconfig file that 
includes your
+# modifications.
+#
+# CONFIG_ARCH_LEDS is not set
+# CONFIG_NSH_ARGCAT is not set
+# CONFIG_NSH_CMDOPT_HEXDUMP is not set
+CONFIG_ARCH="xtensa"
+CONFIG_ARCH_BOARD="esp32s3-devkit"
+CONFIG_ARCH_BOARD_COMMON=y
+CONFIG_ARCH_BOARD_ESP32S3_DEVKIT=y
+CONFIG_ARCH_CHIP="esp32s3"
+CONFIG_ARCH_CHIP_ESP32S3=y
+CONFIG_ARCH_CHIP_ESP32S3WROOM1=y
+CONFIG_ARCH_INTERRUPTSTACK=2048
+CONFIG_ARCH_STACKDUMP=y
+CONFIG_ARCH_XTENSA=y
+CONFIG_BOARDCTL_OS_SYMTAB=y
+CONFIG_BOARDCTL_ROMDISK=y
+CONFIG_BOARD_LOOPSPERMSEC=16717
+CONFIG_BUILTIN=y
+CONFIG_ESP32S3_RTC_HEAP=y
+CONFIG_ESP32S3_UART0=y
+CONFIG_EXAMPLES_SOTEST=y
+CONFIG_EXPERIMENTAL=y
+CONFIG_FS_PROCFS=y
+CONFIG_FS_ROMFS=y
+CONFIG_HAVE_CXX=y
+CONFIG_HAVE_CXXINITIALIZE=y
+CONFIG_IDLETHREAD_STACKSIZE=3072
+CONFIG_INIT_ENTRYPOINT="nsh_main"
+CONFIG_INTELHEX_BINARY=y
+CONFIG_LIBC_DLFCN=y
+CONFIG_NSH_ARCHINIT=y
+CONFIG_NSH_BUILTIN_APPS=y
+CONFIG_NSH_FILEIOSIZE=512
+CONFIG_NSH_LINELEN=64
+CONFIG_NSH_READLINE=y
+CONFIG_PREALLOC_TIMERS=4
+CONFIG_RAM_SIZE=114688
+CONFIG_RAM_START=0x20000000
+CONFIG_RR_INTERVAL=200
+CONFIG_SCHED_WAITPID=y
+CONFIG_START_DAY=6
+CONFIG_START_MONTH=12
+CONFIG_START_YEAR=2011
+CONFIG_SYSLOG_BUFFER=y
+CONFIG_SYSTEM_NSH=y
+CONFIG_UART0_SERIAL_CONSOLE=y

Reply via email to