1
0
Эх сурвалжийг харах

[bsp] [ESP32_C3] 移除无用的文件 | remove useless files

wcx1024979076 1 жил өмнө
parent
commit
7da73c8f01

+ 11 - 13
bsp/ESP32_C3/.config

@@ -10,6 +10,7 @@ CONFIG_RT_NAME_MAX=8
 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set
 # CONFIG_RT_USING_AMP is not set
 # CONFIG_RT_USING_SMP is not set
+CONFIG_RT_CPUS_NR=1
 CONFIG_RT_ALIGN_SIZE=8
 # CONFIG_RT_THREAD_PRIORITY_8 is not set
 CONFIG_RT_THREAD_PRIORITY_32=y
@@ -62,18 +63,13 @@ CONFIG_RT_USING_SMALL_MEM_AS_HEAP=y
 # CONFIG_RT_USING_MEMTRACE is not set
 # CONFIG_RT_USING_HEAP_ISR is not set
 CONFIG_RT_USING_HEAP=y
-
-#
-# Kernel Device Object
-#
 CONFIG_RT_USING_DEVICE=y
 # CONFIG_RT_USING_DEVICE_OPS is not set
-# CONFIG_RT_USING_DM is not set
 # CONFIG_RT_USING_INTERRUPT_INFO is not set
 CONFIG_RT_USING_CONSOLE=y
 CONFIG_RT_CONSOLEBUF_SIZE=256
 CONFIG_RT_CONSOLE_DEVICE_NAME="uart"
-CONFIG_RT_VER_NUM=0x50002
+CONFIG_RT_VER_NUM=0x50100
 # CONFIG_RT_USING_STDC_ATOMIC is not set
 # CONFIG_RT_USING_CACHE is not set
 # CONFIG_RT_USING_HW_ATOMIC is not set
@@ -115,6 +111,7 @@ CONFIG_FINSH_USING_OPTION_COMPLETION=y
 #
 # Device Drivers
 #
+# CONFIG_RT_USING_DM is not set
 CONFIG_RT_USING_DEVICE_IPC=y
 CONFIG_RT_UNAMED_PIPE_NUMBER=64
 CONFIG_RT_USING_SYSTEM_WORKQUEUE=y
@@ -140,7 +137,6 @@ CONFIG_RT_USING_PIN=y
 # CONFIG_RT_USING_MTD_NOR is not set
 # CONFIG_RT_USING_MTD_NAND is not set
 # CONFIG_RT_USING_PM is not set
-# CONFIG_RT_USING_FDT is not set
 # CONFIG_RT_USING_RTC is not set
 # CONFIG_RT_USING_SDIO is not set
 # CONFIG_RT_USING_SPI is not set
@@ -209,10 +205,6 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_RT_USING_SAL is not set
 # CONFIG_RT_USING_NETDEV is not set
 # CONFIG_RT_USING_LWIP is not set
-# CONFIG_RT_USING_LWIP141 is not set
-# CONFIG_RT_USING_LWIP203 is not set
-# CONFIG_RT_USING_LWIP212 is not set
-# CONFIG_RT_USING_LWIP_LATEST is not set
 # CONFIG_RT_USING_AT is not set
 
 #
@@ -226,7 +218,11 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
 # CONFIG_RT_USING_ADT is not set
 # CONFIG_RT_USING_RT_LINK is not set
 # CONFIG_RT_USING_VBUS is not set
-# CONFIG_RT_USING_KTIME is not set
+
+#
+# Memory management
+#
+# CONFIG_RT_USING_MEMBLOCK is not set
 
 #
 # RT-Thread Utestcases
@@ -603,6 +599,7 @@ CONFIG_PKG_FREERTOS_WRAPPER_VER="latest"
 # CONFIG_PKG_USING_BALANCE is not set
 # CONFIG_PKG_USING_SHT2X is not set
 # CONFIG_PKG_USING_SHT3X is not set
+# CONFIG_PKG_USING_SHT4X is not set
 # CONFIG_PKG_USING_AD7746 is not set
 # CONFIG_PKG_USING_ADT74XX is not set
 # CONFIG_PKG_USING_MAX17048 is not set
@@ -706,6 +703,7 @@ CONFIG_PKG_ESP_IDF_VER="latest"
 # CONFIG_PKG_USING_FINGERPRINT is not set
 # CONFIG_PKG_USING_BT_ECB02C is not set
 # CONFIG_PKG_USING_UAT is not set
+# CONFIG_PKG_USING_ST7789 is not set
 # CONFIG_PKG_USING_SPI_TOOLS is not set
 
 #
@@ -960,6 +958,7 @@ CONFIG_PKG_ESP_IDF_VER="latest"
 #
 # Timing
 #
+# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set
 # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set
 # CONFIG_PKG_USING_ARDUINO_TICKER is not set
 # CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set
@@ -996,7 +995,6 @@ CONFIG_PKG_ESP_IDF_VER="latest"
 #
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set
 # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set
-# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set
 
 #
 # Signal IO

+ 0 - 10
bsp/ESP32_C3/.vscode/launch.json

@@ -1,10 +0,0 @@
-{
-  "version": "0.2.0",
-  "configurations": [
-    {
-      "type": "espidf",
-      "name": "Launch",
-      "request": "launch"
-    }
-  ]
-}

+ 0 - 26
bsp/ESP32_C3/.vscode/settings.json

@@ -1,26 +0,0 @@
-{
-  "C_Cpp.intelliSenseEngine": "Tag Parser",
-  "idf.adapterTargetName": "esp32c3",
-  "idf.openOcdConfigs": [
-    "board/esp32c3-builtin.cfg"
-  ],
-  "idf.portWin": "COM7",
-  "idf.flashType": "UART",
-  "files.associations": {
-    "panic_internal.h": "c",
-    "rtthread.h": "c",
-    "bitset": "c",
-    "chrono": "c",
-    "algorithm": "c",
-    "rtdebug.h": "c",
-    "rtservice.h": "c",
-    "rtdef.h": "c",
-    "rtconfig.h": "c",
-    "thread": "c",
-    "rthw.h": "c",
-    "typeinfo": "c",
-    "serial.h": "c",
-    "timer.h": "c"
-  },
-  "RTT_Studio.Build.Parallel_Jobs": "4"
-}

+ 0 - 300
bsp/ESP32_C3/.vscode/tasks.json

@@ -1,300 +0,0 @@
-{
-    "version": "2.0.0",
-    "tasks": [
-        {
-            "label": "Build - Build project",
-            "type": "shell",
-            "command": "${config:idf.pythonBinPath} ${config:idf.espIdfPath}/tools/idf.py build",
-            "windows": {
-                "command": "${config:idf.pythonBinPathWin} ${config:idf.espIdfPathWin}\\tools\\idf.py build",
-                "options": {
-                    "env": {
-                        "PATH": "${env:PATH};${config:idf.customExtraPaths}"
-                    }
-                }
-            },
-            "options": {
-                "env": {
-                    "PATH": "${env:PATH}:${config:idf.customExtraPaths}"
-                }
-            },
-            "problemMatcher": [
-                {
-                    "owner": "cpp",
-                    "fileLocation": [
-                        "relative",
-                        "${workspaceFolder}"
-                    ],
-                    "pattern": {
-                        "regexp": "^\\.\\.(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
-                        "file": 1,
-                        "line": 2,
-                        "column": 3,
-                        "severity": 4,
-                        "message": 5
-                    }
-                },
-                {
-                    "owner": "cpp",
-                    "fileLocation": "absolute",
-                    "pattern": {
-                        "regexp": "^[^\\.](.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
-                        "file": 1,
-                        "line": 2,
-                        "column": 3,
-                        "severity": 4,
-                        "message": 5
-                    }
-                }
-            ],
-            "group": {
-                "kind": "build",
-                "isDefault": true
-            }
-        },
-        {
-            "label": "Set ESP-IDF Target",
-            "type": "shell",
-            "command": "${command:espIdf.setTarget}",
-            "problemMatcher": {
-                "owner": "cpp",
-                "fileLocation": "absolute",
-                "pattern": {
-                    "regexp": "^(.*):(//d+):(//d+)://s+(warning|error)://s+(.*)$",
-                    "file": 1,
-                    "line": 2,
-                    "column": 3,
-                    "severity": 4,
-                    "message": 5
-                }
-            }
-        },
-        {
-            "label": "Clean - Clean the project",
-            "type": "shell",
-            "command": "${config:idf.pythonBinPath} ${config:idf.espIdfPath}/tools/idf.py fullclean",
-            "windows": {
-                "command": "${config:idf.pythonBinPathWin} ${config:idf.espIdfPathWin}\\tools\\idf.py fullclean",
-                "options": {
-                    "env": {
-                        "PATH": "${env:PATH};${config:idf.customExtraPaths}"
-                    }
-                }
-            },
-            "options": {
-                "env": {
-                    "PATH": "${env:PATH}:${config:idf.customExtraPaths}"
-                }
-            },
-            "problemMatcher": [
-                {
-                    "owner": "cpp",
-                    "fileLocation": [
-                        "relative",
-                        "${workspaceFolder}"
-                    ],
-                    "pattern": {
-                        "regexp": "^\\.\\.(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
-                        "file": 1,
-                        "line": 2,
-                        "column": 3,
-                        "severity": 4,
-                        "message": 5
-                    }
-                },
-                {
-                    "owner": "cpp",
-                    "fileLocation": "absolute",
-                    "pattern": {
-                        "regexp": "^[^\\.](.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
-                        "file": 1,
-                        "line": 2,
-                        "column": 3,
-                        "severity": 4,
-                        "message": 5
-                    }
-                }
-            ]
-        },
-        {
-            "label": "Flash - Flash the device",
-            "type": "shell",
-            "command": "${config:idf.pythonBinPath} ${config:idf.espIdfPath}/tools/idf.py -p ${config:idf.port} -b ${config:idf.flashBaudRate} flash",
-            "windows": {
-                "command": "${config:idf.pythonBinPathWin} ${config:idf.espIdfPathWin}\\tools\\idf.py flash -p ${config:idf.portWin} -b ${config:idf.flashBaudRate}",
-                "options": {
-                    "env": {
-                        "PATH": "${env:PATH};${config:idf.customExtraPaths}"
-                    }
-                }
-            },
-            "options": {
-                "env": {
-                    "PATH": "${env:PATH}:${config:idf.customExtraPaths}"
-                }
-            },
-            "problemMatcher": [
-                {
-                    "owner": "cpp",
-                    "fileLocation": [
-                        "relative",
-                        "${workspaceFolder}"
-                    ],
-                    "pattern": {
-                        "regexp": "^\\.\\.(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
-                        "file": 1,
-                        "line": 2,
-                        "column": 3,
-                        "severity": 4,
-                        "message": 5
-                    }
-                },
-                {
-                    "owner": "cpp",
-                    "fileLocation": "absolute",
-                    "pattern": {
-                        "regexp": "^[^\\.](.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
-                        "file": 1,
-                        "line": 2,
-                        "column": 3,
-                        "severity": 4,
-                        "message": 5
-                    }
-                }
-            ]
-        },
-        {
-            "label": "Monitor: Start the monitor",
-            "type": "shell",
-            "command": "${config:idf.pythonBinPath} ${config:idf.espIdfPath}/tools/idf.py -p ${config:idf.port} monitor",
-            "windows": {
-                "command": "${config:idf.pythonBinPathWin} ${config:idf.espIdfPathWin}\\tools\\idf.py -p ${config:idf.portWin} monitor",
-                "options": {
-                    "env": {
-                        "PATH": "${env:PATH};${config:idf.customExtraPaths}"
-                    }
-                }
-            },
-            "options": {
-                "env": {
-                    "PATH": "${env:PATH}:${config:idf.customExtraPaths}"
-                }
-            },
-            "problemMatcher": [
-                {
-                    "owner": "cpp",
-                    "fileLocation": [
-                        "relative",
-                        "${workspaceFolder}"
-                    ],
-                    "pattern": {
-                        "regexp": "^\\.\\.(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
-                        "file": 1,
-                        "line": 2,
-                        "column": 3,
-                        "severity": 4,
-                        "message": 5
-                    }
-                },
-                {
-                    "owner": "cpp",
-                    "fileLocation": "absolute",
-                    "pattern": {
-                        "regexp": "^[^\\.](.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
-                        "file": 1,
-                        "line": 2,
-                        "column": 3,
-                        "severity": 4,
-                        "message": 5
-                    }
-                }
-            ],
-            "dependsOn": "Flash - Flash the device"
-        },
-        {
-            "label": "OpenOCD: Start openOCD",
-            "type": "shell",
-            "presentation": {
-                "echo": true,
-                "reveal": "never",
-                "focus": false,
-                "panel": "new"
-            },
-            "command": "openocd -s ${command:espIdf.getOpenOcdScriptValue} ${command:espIdf.getOpenOcdConfigs}",
-            "windows": {
-                "command": "openocd.exe -s ${command:espIdf.getOpenOcdScriptValue} ${command:espIdf.getOpenOcdConfigs}",
-                "options": {
-                    "env": {
-                        "PATH": "${env:PATH};${config:idf.customExtraPaths}"
-                    }
-                }
-            },
-            "options": {
-                "env": {
-                    "PATH": "${env:PATH}:${config:idf.customExtraPaths}"
-                }
-            },
-            "problemMatcher": {
-                "owner": "cpp",
-                "fileLocation": "absolute",
-                "pattern": {
-                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
-                    "file": 1,
-                    "line": 2,
-                    "column": 3,
-                    "severity": 4,
-                    "message": 5
-                }
-            }
-        },
-        {
-            "label": "adapter",
-            "type": "shell",
-            "command": "${config:idf.pythonBinPath}",
-            "isBackground": true,
-            "options": {
-                "env": {
-                    "PATH": "${env:PATH}:${config:idf.customExtraPaths}",
-                    "PYTHONPATH": "${command:espIdf.getExtensionPath}/esp_debug_adapter/debug_adapter"
-                }
-            },
-            "problemMatcher": {
-                "background": {
-                    "beginsPattern": "\bDEBUG_ADAPTER_STARTED\b",
-                    "endsPattern": "DEBUG_ADAPTER_READY2CONNECT",
-                    "activeOnStart": true
-                },
-                "pattern": {
-                    "regexp": "(\\d+)-(\\d+)-(\\d+)\\s(\\d+):(\\d+):(\\d+),(\\d+)\\s-(.+)\\s(ERROR)",
-                    "file": 8,
-                    "line": 2,
-                    "column": 3,
-                    "severity": 4,
-                    "message": 9
-                }
-            },
-            "args": [
-                "${command:espIdf.getExtensionPath}/esp_debug_adapter/debug_adapter_main.py",
-                "-e",
-                "${workspaceFolder}/build/${command:espIdf.getProjectName}.elf",
-                "-s",
-                "${command:espIdf.getOpenOcdScriptValue}",
-                "-ip",
-                "localhost",
-                "-dn",
-                "${config:idf.adapterTargetName}",
-                "-om",
-                "connect_to_instance"
-            ],
-            "windows": {
-                "command": "${config:idf.pythonBinPathWin}",
-                "options": {
-                    "env": {
-                        "PATH": "${env:PATH};${config:idf.customExtraPaths}",
-                        "PYTHONPATH": "${command:espIdf.getExtensionPath}/esp_debug_adapter/debug_adapter"
-                    }
-                }
-            }
-        }
-    ]
-}

+ 0 - 5
bsp/ESP32_C3/CMakeLists.txt

@@ -1,5 +0,0 @@
-cmake_minimum_required(VERSION 3.16)
-set(COMPONENTS esptool_py main)
-include($ENV{IDF_PATH}/tools/cmake/project.cmake)
-set(freertos_root /Users/tangyi/rt-thread/bsp/ESP32_C3/packages/FreeRTOS_Wrapper-latest/FreeRTOS)
-project(rtthread)

+ 0 - 8
bsp/ESP32_C3/Makefile

@@ -1,8 +0,0 @@
-#
-# This is a project Makefile. It is assumed the directory this Makefile resides in is a
-# project subdirectory.
-#
-
-PROJECT_NAME := rtthread
-
-include $(IDF_PATH)/make/project.mk

+ 3 - 3
bsp/ESP32_C3/README.md

@@ -42,13 +42,13 @@ Each peripheral supporting condition for this BSP is as follows:
 | GPIO                     | Support         |                                                              |
 | UART                     | Support         | Using LUATOS_ESP32C3 development board requires connecting serial port to USB chip UART0_TX and UART0_RX (such as CP2102) |
 | JTAG debug               | Support         | ESP32C3 usb-linked development boards can be debugged        |
-| WIFI | Partial support | There are currently some problems, such as `rt_mq_recive` cannot be used in ISR, etc., and we are still trying to solve it |
-| BLE | Partially supported | There are currently some problems, such as running errors caused by the same `PC` and `SP` pointers after `NimBLE` is started for a period of time |
+| WIFI | Partial support | There are currently some problems, such as `rt_mq_recive` cannot be used in ISR, etc. |
+| BLE | Partially supported | There are currently some problems, such as `NimBLE` running errors after starting for a while |
 | GDBStub | Support | You can use the GDB provided by ESP-IDF by turning on the `BSP_ENABLE_GDBSTUB` switch, which will enter GDB mode after a chip error |
 
 Note:
 
-1. WIFI and BLE cannot be enabled at the same time. When using the BLE driver, be sure to turn off the `RT_USING_WIFI` and `LWIP` switches in `menuconfig`. In addition, due to limited personal abilities and lack of debugging equipment, there are problems with the operation of WIFI and BLE drivers. If you can solve it, please contact me [timwcx@qq.com](mailto:timwcx@qq.com), I will be grateful.
+1. WIFI and BLE cannot be enabled at the same time. When using the BLE driver, be sure to turn off the `RT_USING_WIFI` and `LWIP` switches in `menuconfig`. In addition, due to limited capabilities and lack of debugging equipment, there are problems with WIFI and BLE driver operation. If it can be solved, please contact [timwcx@qq.com](mailto:timwcx@qq.com).
 
 2. The BLE driver only supports `NimBLE` and is provided by the `bluetooth` component in `esp-idf`. To use the BLE driver, please refer to `bsp/ESP32_C3/packages/ESP-IDF-latest/examples/bluetooth/nimble` Sample program, please note that the `esp_timer_init()` function must be called to initialize the clock driver before calling the `NimBLE` related interface.
 

+ 3 - 3
bsp/ESP32_C3/README_ZH.md

@@ -49,13 +49,13 @@
 | GPIO              |     支持     |  |
 | UART              |     支持     | 使用LUATOS_ESP32C3开发板需要在UART0_TX和UART0_RX连接串口转USB芯片(如CP2102)|
 | JTAG调试          |     支持     | ESP32C3采用USB方式和PC链接的开发板可以调试                                |
-| WIFI              | 部分支持 | 目前存在一些问题,例如不能在ISR中使用`rt_mq_recive`等,还在尝试解决中 |
-| BLE             | 部分支持 | 目前存在一些问题,例如`NimBLE`启动一段时间后`PC`和`SP`指针相同导致运行错误 |
+| WIFI              | 部分支持 | 目前存在一些问题,例如不能在ISR中使用`rt_mq_recive`等 |
+| BLE             | 部分支持 | 目前存在一些问题,例如`NimBLE`启动一段时间后运行错误 |
 | GDBStub         | 支持 | 通过开启`BSP_ENABLE_GDBSTUB`开关即可使用ESP-IDF所提供的GDB,其会在芯片出错后进入GDB模式 |
 
 注:
 
-1、WIFI和BLE不能同时启用,在使用BLE驱动时注意在`menuconfig`中关闭`RT_USING_WIFI`和`LWIP`开关。另外由于个人能力有限且缺乏调试设备,WIFI和BLE驱动运行都有问题,如果可以解决联系[timwcx@qq.com](mailto:timwcx@qq.com),本人感激不尽
+1、WIFI和BLE不能同时启用,在使用BLE驱动时注意在`menuconfig`中关闭`RT_USING_WIFI`和`LWIP`开关。另外由于能力有限且缺乏调试设备,WIFI和BLE驱动运行都有问题,如果可以解决联系[timwcx@qq.com](mailto:timwcx@qq.com)。
 
 2、BLE驱动仅支持`NimBLE`,并且由`esp-idf`中的`bluetooth`组件提供,使用BLE驱动可以参考`bsp/ESP32_C3/packages/ESP-IDF-latest/examples/bluetooth/nimble`下的样例程序,注意在调用`NimBLE`相关接口之前要调用`esp_timer_init()`函数初始化时钟驱动。
 

BIN
bsp/ESP32_C3/images/build.png


BIN
bsp/ESP32_C3/images/burn.png


BIN
bsp/ESP32_C3/images/burn_en.png


+ 0 - 50
bsp/ESP32_C3/main/CMakeLists.txt

@@ -1,50 +0,0 @@
-idf_component_register(
-	SRCS
-	../../../libcpu/risc-v/common/cpuport.c
-	../../../libcpu/risc-v/common/context_gcc.S
-	../../../components/drivers/ipc/completion.c
-	../../../components/drivers/ipc/dataqueue.c
-	../../../components/drivers/ipc/pipe.c
-	../../../components/drivers/ipc/ringblk_buf.c
-	../../../components/drivers/ipc/ringbuffer.c
-	../../../components/drivers/ipc/waitqueue.c
-	../../../components/drivers/ipc/workqueue.c
-	../../../components/drivers/misc/pin.c
-	../../../components/drivers/serial/serial.c
-	../drivers/drv_uart.c
-	../drivers/board.c
-	../drivers/drv_gpio.c
-	../../../components/finsh/shell.c
-	../../../components/finsh/msh.c
-	../../../components/finsh/msh_parse.c
-	../../../components/finsh/cmd.c
-	../../../src/clock.c
-	../../../src/components.c
-	../../../src/device.c
-	../../../src/idle.c
-	../../../src/ipc.c
-	../../../src/irq.c
-	../../../src/kservice.c
-	../../../src/mem.c
-	../../../src/mempool.c
-	../../../src/object.c
-	../../../src/scheduler.c
-	../../../src/thread.c
-	../../../src/timer.c
-	main.c
-
-	INCLUDE_DIRS
-	../../../libcpu/risc-v/common
-	../../../components/drivers/include
-	../drivers
-	../../../components/finsh
-	..
-	../../../include
-)
-
-target_link_libraries(${COMPONENT_LIB}
-	INTERFACE "-u __rt_init_rt_work_sys_workqueue_init"
-	INTERFACE "-u __rt_init_rt_hw_uart_init"
-	INTERFACE "-u __rt_init_rt_hw_pin_init"
-	INTERFACE "-u __rt_init_finsh_system_init"
-)

+ 6 - 5
bsp/ESP32_C3/main/main.c

@@ -4,9 +4,10 @@
  * SPDX-License-Identifier: Apache-2.0
  *
  * Change Logs:
- * Date           Author       Notes
- * 2022-04-24     supperthomas first version
- * 2022-06-02     supperthomas fix version
+ * Date           Author        Notes
+ * 2022-04-24     supperthomas  first version
+ * 2022-06-02     supperthomas  fix version
+ * 2023-10-20     WCX1024979076 add wifi application
  */
 
 #include <rtthread.h>
@@ -21,8 +22,8 @@ int main(void)
 #ifdef BSP_USING_BLE
     extern void app_main(void);
     esp_timer_init();
-    app_main(); //该函数为esp-wifi样例程序入口
-#endif
+    app_main(); //该函数为nimble样例程序入口
+#endif /* BSP_USING_BLE */
 
 #ifdef RT_USING_WIFI
     /* set wifi work mode */

+ 5 - 4
bsp/ESP32_C3/rtconfig.h

@@ -7,6 +7,7 @@
 /* RT-Thread Kernel */
 
 #define RT_NAME_MAX 8
+#define RT_CPUS_NR 1
 #define RT_ALIGN_SIZE 8
 #define RT_THREAD_PRIORITY_32
 #define RT_THREAD_PRIORITY_MAX 32
@@ -36,14 +37,11 @@
 #define RT_USING_SMALL_MEM
 #define RT_USING_SMALL_MEM_AS_HEAP
 #define RT_USING_HEAP
-
-/* Kernel Device Object */
-
 #define RT_USING_DEVICE
 #define RT_USING_CONSOLE
 #define RT_CONSOLEBUF_SIZE 256
 #define RT_CONSOLE_DEVICE_NAME "uart"
-#define RT_VER_NUM 0x50002
+#define RT_VER_NUM 0x50100
 
 /* RT-Thread Components */
 
@@ -110,6 +108,9 @@
 /* Utilities */
 
 
+/* Memory management */
+
+
 /* RT-Thread Utestcases */
 
 

+ 0 - 600
bsp/ESP32_C3/rtt.patch

@@ -1,600 +0,0 @@
-From 92402217b821c8da7e2a188352f095caaf0818d1 Mon Sep 17 00:00:00 2001
-From: tangzz98 <tangz98@outlook.com>
-Date: Tue, 13 Sep 2022 18:05:44 -0400
-Subject: [PATCH 1/2] Add config for RT-Thread
-
----
- Kconfig                                       |   4 +
- components/driver/deprecated/i2s_legacy.c     |   4 +
- components/driver/uart.c                      |   4 +
- components/esp_system/crosscore_int.c         |   5 +-
- .../esp_system/ld/esp32c3/sections.ld.in      |  37 ++++
- .../port/arch/riscv/expression_with_stack.c   |   8 +
- components/esp_system/startup.c               |   9 +
- components/esp_system/task_wdt.c              |   4 +
- components/esp_timer/src/esp_timer.c          |   2 +
- components/freertos/CMakeLists.txt            |  50 ++++-
- .../freertos_tasks_c_additions.h              |   6 +-
- components/riscv/vectors.S                    | 179 ++++++++++++++++++
- 12 files changed, 309 insertions(+), 3 deletions(-)
-
-diff --git a/Kconfig b/Kconfig
-index c86ebeaaef..56d062b2db 100644
---- a/Kconfig
-+++ b/Kconfig
-@@ -101,6 +101,10 @@ mainmenu "Espressif IoT Development Framework Configuration"
-         bool
-         default "y" if IDF_TARGET="linux"
- 
-+    config IDF_RTOS_RTTHREAD
-+        bool "RT-THREAD SELECT"
-+        default "n" 
-+
-     config IDF_FIRMWARE_CHIP_ID
-         hex
-         default 0x0000 if IDF_TARGET_ESP32
-diff --git a/components/driver/deprecated/i2s_legacy.c b/components/driver/deprecated/i2s_legacy.c
-index 2e36ab2608..92edf9d2bb 100644
---- a/components/driver/deprecated/i2s_legacy.c
-+++ b/components/driver/deprecated/i2s_legacy.c
-@@ -1600,7 +1600,11 @@ esp_err_t i2s_driver_install(i2s_port_t i2s_num, const i2s_config_t *i2s_config,
-         i2s_obj->i2s_queue = xQueueCreate(queue_size, sizeof(i2s_event_t));
-         ESP_GOTO_ON_FALSE(i2s_obj->i2s_queue, ESP_ERR_NO_MEM, err, TAG, "I2S queue create failed");
-         *((QueueHandle_t *) i2s_queue) = i2s_obj->i2s_queue;
-+#if !defined CONFIG_IDF_RTOS_RTTHREAD
-         ESP_LOGD(TAG, "queue free spaces: %d", uxQueueSpacesAvailable(i2s_obj->i2s_queue));
-+#else
-+        ESP_LOGD(TAG, "queue free spaces: %lu", uxQueueSpacesAvailable(i2s_obj->i2s_queue));
-+#endif
-     } else {
-         i2s_obj->i2s_queue = NULL;
-     }
-diff --git a/components/driver/uart.c b/components/driver/uart.c
-index b68b2900e1..63c9841380 100644
---- a/components/driver/uart.c
-+++ b/components/driver/uart.c
-@@ -1603,7 +1603,11 @@ esp_err_t uart_driver_install(uart_port_t uart_num, int rx_buffer_size, int tx_b
-         uart_pattern_queue_reset(uart_num, UART_PATTERN_DET_QLEN_DEFAULT);
-         if (uart_queue) {
-             *uart_queue = p_uart_obj[uart_num]->event_queue;
-+#if !defined CONFIG_IDF_RTOS_RTTHREAD
-             ESP_LOGI(UART_TAG, "queue free spaces: %d", uxQueueSpacesAvailable(p_uart_obj[uart_num]->event_queue));
-+#else
-+            ESP_LOGI(UART_TAG, "queue free spaces: %lu", uxQueueSpacesAvailable(p_uart_obj[uart_num]->event_queue));
-+#endif
-         }
-     } else {
-         ESP_LOGE(UART_TAG, "UART driver already installed");
-diff --git a/components/esp_system/crosscore_int.c b/components/esp_system/crosscore_int.c
-index 4aae2a2540..8a9079de64 100644
---- a/components/esp_system/crosscore_int.c
-+++ b/components/esp_system/crosscore_int.c
-@@ -95,13 +95,14 @@ static void IRAM_ATTR esp_crosscore_isr(void *arg) {
-     if (my_reason_val & REASON_PRINT_BACKTRACE) {
-         esp_backtrace_print(100);
-     }
--
-+#ifdef CONFIG_ESP_TASK_WDT
-     if (my_reason_val & REASON_TWDT_ABORT) {
-         extern void task_wdt_timeout_abort_xtensa(bool);
-         /* Called from a crosscore interrupt, thus, we are not the core that received
-          * the TWDT interrupt, call the function with `false` as a parameter. */
-         task_wdt_timeout_abort_xtensa(false);
-     }
-+#endif
- #endif // CONFIG_IDF_TARGET_ARCH_XTENSA
- }
- 
-@@ -171,7 +172,9 @@ void IRAM_ATTR esp_crosscore_int_send_print_backtrace(int core_id)
-     esp_crosscore_int_send(core_id, REASON_PRINT_BACKTRACE);
- }
- 
-+#ifdef CONFIG_ESP_TASK_WDT
- void IRAM_ATTR esp_crosscore_int_send_twdt_abort(int core_id) {
-     esp_crosscore_int_send(core_id, REASON_TWDT_ABORT);
- }
- #endif
-+#endif
-diff --git a/components/esp_system/ld/esp32c3/sections.ld.in b/components/esp_system/ld/esp32c3/sections.ld.in
-index d6670bf759..1d51ffeea0 100644
---- a/components/esp_system/ld/esp32c3/sections.ld.in
-+++ b/components/esp_system/ld/esp32c3/sections.ld.in
-@@ -178,6 +178,26 @@ SECTIONS
-     _noinit_end = ABSOLUTE(.);
-   } > dram0_0_seg
- 
-+  .stack :
-+  {
-+      . = ALIGN(8);
-+      __STACKSIZE__ = 40960; 
-+      __stack_start__ = .;
-+      *(.stack*)
-+      . += __STACKSIZE__;
-+      __stack_cpu0 = .;
-+      __stack_end__ = .;
-+  } > dram0_0_seg
-+  PROVIDE( __rt_rvstack = __stack_end__);
-+
-+  .heap :
-+  {
-+      . = ALIGN(8);
-+      __HEAPSIZE__ = 40960; 
-+      __heap_start__ = .;
-+      . += __HEAPSIZE__;
-+      __heap_end__ = .;
-+  } > dram0_0_seg
-+
-   /* Shared RAM */
-   .dram0.bss (NOLOAD) :
-   {
-@@ -218,6 +238,17 @@ SECTIONS
-     *(.fini)
-     *(.gnu.version)
- 
-+    /* section information for finsh shell */
-+    . = ALIGN(8);
-+    __fsymtab_start = .;
-+    KEEP(*(FSymTab))
-+    __fsymtab_end = .;
-+    . = ALIGN(8);
-+    __vsymtab_start = .;
-+    KEEP(*(VSymTab))
-+    __vsymtab_end = .;
-+    . = ALIGN(8);
-+
-     /** CPU will try to prefetch up to 16 bytes of
-       * of instructions. This means that any configuration (e.g. MMU, PMS) must allow
-       * safe access to up to 16 bytes after the last real instruction, add
-@@ -318,6 +349,12 @@ SECTIONS
-     _esp_system_init_fn_array_start = ABSOLUTE(.);
-     KEEP (*(SORT_BY_INIT_PRIORITY(.esp_system_init_fn.*)))
-     _esp_system_init_fn_array_end = ABSOLUTE(.);
-+    /* section information for initial. */
-+    . = ALIGN(4);
-+    __rt_init_start = .;
-+    KEEP(*(SORT(.rti_fn*)))
-+    __rt_init_end = .;
-+    . = ALIGN(4);
-     _rodata_end = ABSOLUTE(.);
-     /* Literals are also RO data. */
-     _lit4_start = ABSOLUTE(.);
-diff --git a/components/esp_system/port/arch/riscv/expression_with_stack.c b/components/esp_system/port/arch/riscv/expression_with_stack.c
-index 07d22bf3aa..5eac5a88f8 100644
---- a/components/esp_system/port/arch/riscv/expression_with_stack.c
-+++ b/components/esp_system/port/arch/riscv/expression_with_stack.c
-@@ -18,6 +18,8 @@
- #include "freertos/FreeRTOS.h"
- #include "freertos/portmacro.h"
- 
-+#if !defined CONFIG_IDF_RTOS_RTTHREAD
-+
- static portMUX_TYPE shared_stack_spinlock = portMUX_INITIALIZER_UNLOCKED;
- static void *current_task_stack = NULL;
- 
-@@ -46,9 +48,12 @@ static StackType_t *esp_switch_stack_setup(StackType_t *stack, size_t stack_size
-     return ((StackType_t *)adjusted_top_of_stack);
- }
- 
-+#endif
-+
- 
- void esp_execute_shared_stack_function(SemaphoreHandle_t lock, void *stack, size_t stack_size, shared_stack_function function)
- {
-+#if !defined CONFIG_IDF_RTOS_RTTHREAD
-     assert(lock);
-     assert(stack);
-     assert(stack_size > 0 && stack_size >= CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE);
-@@ -70,4 +75,7 @@ void esp_execute_shared_stack_function(SemaphoreHandle_t lock, void *stack, size
-     portEXIT_CRITICAL(&shared_stack_spinlock);
- 
-     xSemaphoreGive(lock);
-+#else
-+    function();
-+#endif
- }
-diff --git a/components/esp_system/startup.c b/components/esp_system/startup.c
-index 0feda4e9f5..b1752d91a0 100644
---- a/components/esp_system/startup.c
-+++ b/components/esp_system/startup.c
-@@ -72,6 +72,10 @@
- #include "esp_psram.h"
- #include "esp_private/esp_psram_extram.h"
- #endif
-+
-+#if CONFIG_IDF_RTOS_RTTHREAD
-+#include "rtthread.h"
-+#endif
- /***********************************************/
- 
- #include "esp_private/startup_internal.h"
-@@ -266,6 +270,11 @@ static void do_core_init(void)
-        app CPU, and when that is not up yet, the memory will be inaccessible and heap_caps_init may
-        fail initializing it properly. */
-     heap_caps_init();
-+#if CONFIG_IDF_RTOS_RTTHREAD && defined RT_USING_HEAP
-+    extern int __heap_start__;
-+    extern int __heap_end__;
-+    rt_system_heap_init((void *)&__heap_start__, (void *)&__heap_end__);
-+#endif
- 
-     // When apptrace module is enabled, there will be SEGGER_SYSVIEW calls in the newlib init.
-     // SEGGER_SYSVIEW relies on apptrace module
-diff --git a/components/esp_system/task_wdt.c b/components/esp_system/task_wdt.c
-index 58d1247bf0..60330edf8a 100644
---- a/components/esp_system/task_wdt.c
-+++ b/components/esp_system/task_wdt.c
-@@ -29,6 +29,8 @@
- #include "esp_private/eh_frame_parser.h"
- #endif // CONFIG_ESP_SYSTEM_USE_EH_FRAME
- 
-+#if CONFIG_ESP_TASK_WDT
-+
- #if CONFIG_IDF_TARGET_ARCH_RISCV && !CONFIG_ESP_SYSTEM_USE_EH_FRAME
- /* Function used to print all the registers pointed by the given frame .*/
- extern void panic_print_registers(const void *frame, int core);
-@@ -784,3 +786,5 @@ esp_err_t esp_task_wdt_status(TaskHandle_t task_handle)
- 
-     return ret;
- }
-+
-+#endif
-diff --git a/components/esp_timer/src/esp_timer.c b/components/esp_timer/src/esp_timer.c
-index 3ca19f642f..78779a08b3 100644
---- a/components/esp_timer/src/esp_timer.c
-+++ b/components/esp_timer/src/esp_timer.c
-@@ -460,10 +460,12 @@ out:
-     return ESP_ERR_NO_MEM;
- }
- 
-+#if !defined CONFIG_IDF_RTOS_RTTHREAD
- ESP_SYSTEM_INIT_FN(esp_timer_startup_init, BIT(0), 100)
- {
-     return esp_timer_init();
- }
-+#endif
- 
- esp_err_t esp_timer_deinit(void)
- {
-diff --git a/components/freertos/CMakeLists.txt b/components/freertos/CMakeLists.txt
-index 78a8e4ae4e..5cd54494f6 100644
---- a/components/freertos/CMakeLists.txt
-+++ b/components/freertos/CMakeLists.txt
-@@ -6,7 +6,36 @@ endif()
- 
- idf_build_get_property(target IDF_TARGET)
- 
--if(CONFIG_FREERTOS_SMP)
-+if(CONFIG_IDF_RTOS_RTTHREAD)
-+    set(freertos_root "../../../FreeRTOS_Wrapper-latest/FreeRTOS")
-+    set(srcs
-+        "${freertos_root}/portable/esp-idf/riscv/port.c")
-+
-+    set(include_dirs
-+        "${freertos_root}/include"
-+        esp_additions/include
-+        esp_additions/include/freertos
-+        "${freertos_root}/portable/esp-idf/riscv/include")
-+
-+    set(private_include_dirs
-+        "${freertos_root}/portable/esp-idf/riscv/include/freertos")
-+
-+    list(APPEND srcs
-+        "${freertos_root}/portable/esp-idf/port_common.c"
-+        "${freertos_root}/portable/esp-idf/port_rt.c"
-+        "${freertos_root}/event_groups.c"
-+        "${freertos_root}/queue.c"
-+        "${freertos_root}/tasks.c"
-+        "${freertos_root}/timers.c"
-+        "${freertos_root}/list.c"
-+        "FreeRTOS-openocd.c"
-+        "esp_additions/freertos_v8_compat.c")
-+
-+    list(APPEND private_include_dirs
-+        "${freertos_root}/include/freertos"
-+        "esp_additions/private_include")
-+
-+elseif(CONFIG_FREERTOS_SMP)
-     set(ldfragments linker_smp.lf)
-     if(CONFIG_IDF_TARGET_ARCH_XTENSA)
-         set(srcs
-@@ -133,11 +162,19 @@ else()
-     endif()
- endif()
- 
-+if(CONFIG_IDF_RTOS_RTTHREAD)
-+idf_component_register(SRCS "${srcs}"
-+                    INCLUDE_DIRS ${include_dirs}
-+                    PRIV_INCLUDE_DIRS  ${private_include_dirs}
-+                    PRIV_REQUIRES soc esp_pm)
-+else()
- idf_component_register(SRCS "${srcs}"
-                     INCLUDE_DIRS ${include_dirs}
-                     PRIV_INCLUDE_DIRS  ${private_include_dirs}
-                     LDFRAGMENTS "${ldfragments}"
-+                    REQUIRES main
-                     PRIV_REQUIRES soc esp_pm)
-+endif()
- 
- idf_component_get_property(COMPONENT_DIR freertos COMPONENT_DIR)
- 
-@@ -153,6 +190,16 @@ if(CONFIG_FREERTOS_DEBUG_OCDAWARE)
-     idf_build_set_property(COMPILE_OPTIONS "-DconfigENABLE_FREERTOS_DEBUG_OCDAWARE=1" APPEND)
- endif()
- 
-+if(CONFIG_IDF_RTOS_RTTHREAD)
-+set_source_files_properties(
-+    tasks.c
-+    event_groups.c
-+    timers.c
-+    queue.c
-+    PROPERTIES COMPILE_DEFINITIONS
-+    _ESP_FREERTOS_INTERNAL
-+    )
-+else()
- set_source_files_properties(
-     tasks.c
-     event_groups.c
-@@ -162,6 +209,7 @@ set_source_files_properties(
-     PROPERTIES COMPILE_DEFINITIONS
-     _ESP_FREERTOS_INTERNAL
-     )
-+endif()
- 
- # The freertos component provides the `start_app` and `start_app_other_cores`
- # if it is included in the build. It then calls `app_main`
-diff --git a/components/freertos/esp_additions/private_include/freertos_tasks_c_additions.h b/components/freertos/esp_additions/private_include/freertos_tasks_c_additions.h
-index f5ecdbb5a9..96fc4f73ce 100644
---- a/components/freertos/esp_additions/private_include/freertos_tasks_c_additions.h
-+++ b/components/freertos/esp_additions/private_include/freertos_tasks_c_additions.h
-@@ -34,8 +34,9 @@
- struct _reent *__getreent(void)
- {
-     // No lock needed because if this changes, we won't be running anymore.
--    TCB_t *pxCurTask = xTaskGetCurrentTaskHandle();
-     struct _reent *ret;
-+#if !defined CONFIG_IDF_RTOS_RTTHREAD
-+    TCB_t *pxCurTask = xTaskGetCurrentTaskHandle();
-     if (pxCurTask == NULL) {
-         // No task running. Return global struct.
-         ret = _GLOBAL_REENT;
-@@ -43,6 +44,9 @@ struct _reent *__getreent(void)
-         // We have a task; return its reentrant struct.
-         ret = &pxCurTask->xNewLib_reent;
-     }
-+#else
-+    ret = _GLOBAL_REENT;
-+#endif
-     return ret;
- }
- #endif // configUSE_NEWLIB_REENTRANT == 1
-diff --git a/components/riscv/vectors.S b/components/riscv/vectors.S
-index 9b868280db..23236f3d8d 100644
---- a/components/riscv/vectors.S
-+++ b/components/riscv/vectors.S
-@@ -10,6 +10,9 @@
- #include "soc/soc_caps.h"
- #include "sdkconfig.h"
- 
-+#define STORE                   sw
-+#define LOAD                    lw
-+#define REGBYTES                4
- 
-     .equ SAVE_REGS, 32
-     .equ CONTEXT_SIZE, (SAVE_REGS * 4)
-@@ -210,6 +213,8 @@ _return_from_exception:
-      */
-     .global _interrupt_handler
-     .type _interrupt_handler, @function
-+#ifndef CONFIG_IDF_RTOS_RTTHREAD
-+
- _interrupt_handler:
-     /* Start by saving the general purpose registers and the PC value before
-      * the interrupt happened. */
-@@ -308,3 +313,177 @@ _interrupt_handler:
-     /* exit, this will also re-enable the interrupts */
-     mret
-     .size  _interrupt_handler, .-_interrupt_handler
-+#else
-+_interrupt_handler:
-+    /* 此时CPU的sp = from_thread->sp */
-+    /* 注意: 在这里,并没有将mepc的值赋值为from_thread栈中的epc,但后面会赋值 */
-+    addi sp, sp, -32 * REGBYTES             /* sp = sp - 32 * 4 栈指针向下偏移32个寄存器长度,用来将CPU的寄存器保存到from_thread的栈中*/
-+    STORE x1,   1 * REGBYTES(sp)            /* 将CPU的x1寄存器,即ra寄存器,保存到from_thread->栈中 */
-+
-+    li    t0,   0x80                        /* t0 = 0x80 */
-+    STORE t0,   2 * REGBYTES(sp)            /* mstatus = t0, 即关闭全局中断 */
-+
-+    /* 将 CPU 的其他寄存器的值,保存到from_thread的任务栈中 */
-+    STORE x4,   4 * REGBYTES(sp)
-+    STORE x5,   5 * REGBYTES(sp)
-+    STORE x6,   6 * REGBYTES(sp)
-+    STORE x7,   7 * REGBYTES(sp)
-+    STORE x8,   8 * REGBYTES(sp)
-+    STORE x9,   9 * REGBYTES(sp)
-+    STORE x10, 10 * REGBYTES(sp)
-+    STORE x11, 11 * REGBYTES(sp)
-+    STORE x12, 12 * REGBYTES(sp)
-+    STORE x13, 13 * REGBYTES(sp)
-+    STORE x14, 14 * REGBYTES(sp)
-+    STORE x15, 15 * REGBYTES(sp)
-+    STORE x16, 16 * REGBYTES(sp)
-+    STORE x17, 17 * REGBYTES(sp)
-+    STORE x18, 18 * REGBYTES(sp)
-+    STORE x19, 19 * REGBYTES(sp)
-+    STORE x20, 20 * REGBYTES(sp)
-+    STORE x21, 21 * REGBYTES(sp)
-+    STORE x22, 22 * REGBYTES(sp)
-+    STORE x23, 23 * REGBYTES(sp)
-+    STORE x24, 24 * REGBYTES(sp)
-+    STORE x25, 25 * REGBYTES(sp)
-+    STORE x26, 26 * REGBYTES(sp)
-+    STORE x27, 27 * REGBYTES(sp)
-+    STORE x28, 28 * REGBYTES(sp)
-+    STORE x29, 29 * REGBYTES(sp)
-+    STORE x30, 30 * REGBYTES(sp)
-+    STORE x31, 31 * REGBYTES(sp)
-+
-+    /* 备份 CPU 的 sp (这时,CPU的sp其实就是from thread的sp指针) 寄存器的值到 s0 寄存器中,下面会使用s0,恢复 CPU 的寄存器 */
-+    move  s0, sp    /* s0 = sp */
-+
-+    /* 在中断函数中,中断函数中调用的C函数,需要使用 sp, 这里,在中断函数中,使用的 sp 为,系统的栈资源 */
-+    /* switch to interrupt stack */
-+    la    sp, __stack_end__   /* sp = _sp */
-+
-+    /* interrupt handle */
-+    /* 注意: 在调用C函数之前,比如sp的值为0x30001000, 在执行完C函数后,sp的值还是会变成 0x30001000 */
-+    call  rt_interrupt_enter    /* 执行所有的中断函数前,调用该函数 */
-+
-+    csrr s1, mcause
-+	csrr s2, mstatus
-+
-+    /* Save the interrupt threshold level */
-+	la t0, INTERRUPT_CORE0_CPU_INT_THRESH_REG
-+	lw s3, 0(t0)
-+
-+    li t2, 0x7fffffff
-+	and t1, s1, t2		/* t1 = mcause & mask */
-+	slli t1, t1, 2 		/* t1 = mcause * 4 */
-+	la t2, INTC_INT_PRIO_REG(0)
-+	add t1, t2, t1		/* t1 = INTC_INT_PRIO_REG + 4 * mcause */
-+	lw t2, 0(t1)		/* t2 = INTC_INT_PRIO_REG[mcause] */
-+	addi t2, t2, 1		/* t2 = t2 +1 */
-+	sw t2, 0(t0)		/* INTERRUPT_CORE0_CPU_INT_THRESH_REG = t2 */
-+	fence
-+
-+    li t0, 0x8
-+	csrrs t0, mstatus, t0
-+
-+    /* call the C dispatcher */
-+	mv      a0, sp      /* argument 1, stack pointer */
-+	mv      a1, s1      /* argument 2, interrupt number (mcause) */
-+	/* mask off the interrupt flag of mcause */
-+	li	    t0, 0x7fffffff
-+	and     a1, a1, t0
-+	jal     _global_interrupt_handler
-+
-+    li t0, 0x8
-+	csrrc t0, mstatus, t0
-+
-+	/* restore the interrupt threshold level */
-+	la t0, INTERRUPT_CORE0_CPU_INT_THRESH_REG
-+	sw s3, 0(t0)
-+	fence
-+
-+    call  rt_interrupt_leave    /* 执行所有的中断函数后,调用该函数 */
-+
-+    /* 上面,将保存执行中断服务函数之前的CPU的sp寄存器到了s0所指向的位置处,当执行完中断服务函数,需要将之前的CPU寄存器,恢复一下,此时sp又变成了from thread的sp了 */
-+    move  sp, s0    /* sp = s0 */
-+
-+    /* 下面两句话,相当于将 rt_thread_switch_interrupt_flag 值,赋值给了s2  */
-+    /* 将 rt_thread_switch_interrupt_flag 的地址值,赋值给 s0 寄存器*/
-+    la    s0, rt_thread_switch_interrupt_flag       /* s0 = &rt_thread_switch_interrupt_flag */
-+    /* 将 s0 所指向的地址处的内容,取出来,赋值给 s2 寄存器,其实就是将  rt_thread_switch_interrupt_flag 的值,赋值给了 s2 寄存器*/
-+    lw    s2, 0(s0)                 /* s2 = *s0 = rt_thread_switch_interrupt_flag */
-+
-+    /* 如果 s2的值,即 rt_thread_switch_interrupt_flag 值,如果不为0,则需要继续执行下一条指令,如果为0,则需要跳转到 spurious_interrupt 标号处 执行 */
-+    /* 如果 s2的值等于0,rt_thread_switch_interrupt_flag等于0, 则不需要在中断处理函数中,进行上下文切换,反之则需要 */
-+    /* 如果不需要上下文切换, */
-+
-+    /* 在这里,跳转到 spurious_interrupt的话,是不会进行上下文切换的,因为,此时CPU的sp指针还是from线程的*/
-+    beqz  s2, spurious_interrupt    /* if (s2 == 0) goto spurious_interrupt; else 执行下一条语句*/
-+
-+    /* 需要上下文切换: 主要目的是将CPU的sp指针,赋值为to_thread的sp */
-+
-+    /* 将 s0 所执向的地址的内容设置为0, 也就是,将变量 rt_thread_switch_interrupt_flag 赋值为了 0 */
-+    /* s0存放的值是 rt_thread_switch_interrupt_flag 变量的地址*/
-+    sw    zero, 0(s0)       /* *s0 = 0; 也就是 rt_thread_switch_interrupt_flag = 0 */
-+    /* 将 mepc 的值,赋值给 a0 寄存器,mepc 的值是,跳转到中断函数执行之前的 PC 指针 */
-+    /* 这时的mpec其实,还是from线程,在跳转到中断执行前的一个PC地址 */
-+    csrr  a0, mepc  /* a0 = mepc */
-+
-+    /* 将 mpec 的值写回到freom thread任务栈中的 epc 中,待后续,恢复from线程时,使用 */
-+    STORE a0, 0 * REGBYTES(sp)  /* from_thread->sp->epc = a0 ,中断入口处*/
-+
-+    /* 将from_thread的sp指针,赋值为CPU的sp指针 */
-+    la    s0, rt_interrupt_from_thread  /* s0 = &rt_interrupt_from_thread 注意: rt_interrupt_from_thread = &(from_thread->sp) */
-+    LOAD  s1, 0(s0)                     /* s1 = rt_interrupt_from_thread,也就是s1 = &(from_thread->sp) */
-+    STORE sp, 0(s1)                     /* from_thread->sp = sp*/
-+
-+    /* 接下来,需要开始恢复CPU的sp为to_thread的sp了 */
-+    la    s0, rt_interrupt_to_thread    /* s0 = &rt_interrupt_to_thread 注意: rt_interrupt_to_thread = &(to_thred->sp)*/
-+    LOAD  s1, 0(s0)                     /* s1 = rt_interrupt_to_thread, 也就是s1 = &(to_thred->sp) */
-+    LOAD  sp, 0(s1)                     /* sp = (to_thred->sp)*/
-+
-+    /* 将CPU的 mepc设置为to_thred的mepc,待中断退出,执行mret指令后,将从该地址开始执行 */
-+    LOAD  a0,  0 * REGBYTES(sp)         /* a0 = to_thread的mepc的值*/
-+    csrw  mepc, a0                      /* mepc = a0 */
-+
-+
-+spurious_interrupt:
-+    LOAD  x1,   1 * REGBYTES(sp)
-+
-+    /* Remain in M-mode after mret */
-+    li    t0, 0x00001800
-+    csrs  mstatus, t0
-+    LOAD  t0,   2 * REGBYTES(sp)
-+    csrs  mstatus, t0
-+
-+    LOAD  x4,   4 * REGBYTES(sp)
-+    LOAD  x5,   5 * REGBYTES(sp)
-+    LOAD  x6,   6 * REGBYTES(sp)
-+    LOAD  x7,   7 * REGBYTES(sp)
-+    LOAD  x8,   8 * REGBYTES(sp)
-+    LOAD  x9,   9 * REGBYTES(sp)
-+    LOAD  x10, 10 * REGBYTES(sp)
-+    LOAD  x11, 11 * REGBYTES(sp)
-+    LOAD  x12, 12 * REGBYTES(sp)
-+    LOAD  x13, 13 * REGBYTES(sp)
-+    LOAD  x14, 14 * REGBYTES(sp)
-+    LOAD  x15, 15 * REGBYTES(sp)
-+    LOAD  x16, 16 * REGBYTES(sp)
-+    LOAD  x17, 17 * REGBYTES(sp)
-+    LOAD  x18, 18 * REGBYTES(sp)
-+    LOAD  x19, 19 * REGBYTES(sp)
-+    LOAD  x20, 20 * REGBYTES(sp)
-+    LOAD  x21, 21 * REGBYTES(sp)
-+    LOAD  x22, 22 * REGBYTES(sp)
-+    LOAD  x23, 23 * REGBYTES(sp)
-+    LOAD  x24, 24 * REGBYTES(sp)
-+    LOAD  x25, 25 * REGBYTES(sp)
-+    LOAD  x26, 26 * REGBYTES(sp)
-+    LOAD  x27, 27 * REGBYTES(sp)
-+    LOAD  x28, 28 * REGBYTES(sp)
-+    LOAD  x29, 29 * REGBYTES(sp)
-+    LOAD  x30, 30 * REGBYTES(sp)
-+    LOAD  x31, 31 * REGBYTES(sp)
-+
-+    addi  sp, sp, 32 * REGBYTES
-+    mret
-+	.size  _interrupt_handler, .-_interrupt_handler
-+#endif
-\ No newline at end of file
--- 
-2.32.0 (Apple Git-132)
-
-
-From 394259fb2164e513abd4f0d23d88da92c2a2ac9e Mon Sep 17 00:00:00 2001
-From: tangzz98 <tangz98@outlook.com>
-Date: Fri, 23 Sep 2022 00:12:13 -0400
-Subject: [PATCH 2/2] Specify freertos_root in project CMakeLists.txt
-
----
- components/freertos/CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/components/freertos/CMakeLists.txt b/components/freertos/CMakeLists.txt
-index 5cd54494f6..33c901c187 100644
---- a/components/freertos/CMakeLists.txt
-+++ b/components/freertos/CMakeLists.txt
-@@ -7,7 +7,7 @@ endif()
- idf_build_get_property(target IDF_TARGET)
- 
- if(CONFIG_IDF_RTOS_RTTHREAD)
--    set(freertos_root "../../../FreeRTOS_Wrapper-latest/FreeRTOS")
-+    message(${freertos_root})
-     set(srcs
-         "${freertos_root}/portable/esp-idf/riscv/port.c")
- 
--- 
-2.32.0 (Apple Git-132)
-

+ 0 - 1017
bsp/ESP32_C3/sdkconfig

@@ -1,1017 +0,0 @@
-#
-# Automatically generated file. DO NOT EDIT.
-# Espressif IoT Development Framework (ESP-IDF) Project Configuration
-#
-CONFIG_SOC_ADC_SUPPORTED=y
-CONFIG_SOC_DEDICATED_GPIO_SUPPORTED=y
-CONFIG_SOC_GDMA_SUPPORTED=y
-CONFIG_SOC_TWAI_SUPPORTED=y
-CONFIG_SOC_BT_SUPPORTED=y
-CONFIG_SOC_ASYNC_MEMCPY_SUPPORTED=y
-CONFIG_SOC_USB_SERIAL_JTAG_SUPPORTED=y
-CONFIG_SOC_TEMP_SENSOR_SUPPORTED=y
-CONFIG_SOC_XT_WDT_SUPPORTED=y
-CONFIG_SOC_WIFI_SUPPORTED=y
-CONFIG_SOC_SUPPORTS_SECURE_DL_MODE=y
-CONFIG_SOC_EFUSE_KEY_PURPOSE_FIELD=y
-CONFIG_SOC_EFUSE_HAS_EFUSE_RST_BUG=y
-CONFIG_SOC_RTC_FAST_MEM_SUPPORTED=y
-CONFIG_SOC_RTC_MEM_SUPPORTED=y
-CONFIG_SOC_I2S_SUPPORTED=y
-CONFIG_SOC_RMT_SUPPORTED=y
-CONFIG_SOC_SDM_SUPPORTED=y
-CONFIG_SOC_SYSTIMER_SUPPORTED=y
-CONFIG_SOC_SUPPORT_COEXISTENCE=y
-CONFIG_SOC_AES_SUPPORTED=y
-CONFIG_SOC_MPI_SUPPORTED=y
-CONFIG_SOC_SHA_SUPPORTED=y
-CONFIG_SOC_HMAC_SUPPORTED=y
-CONFIG_SOC_DIG_SIGN_SUPPORTED=y
-CONFIG_SOC_FLASH_ENC_SUPPORTED=y
-CONFIG_SOC_SECURE_BOOT_SUPPORTED=y
-CONFIG_SOC_MEMPROT_SUPPORTED=y
-CONFIG_SOC_XTAL_SUPPORT_40M=y
-CONFIG_SOC_AES_SUPPORT_DMA=y
-CONFIG_SOC_AES_GDMA=y
-CONFIG_SOC_AES_SUPPORT_AES_128=y
-CONFIG_SOC_AES_SUPPORT_AES_256=y
-CONFIG_SOC_ADC_DIG_CTRL_SUPPORTED=y
-CONFIG_SOC_ADC_ARBITER_SUPPORTED=y
-CONFIG_SOC_ADC_FILTER_SUPPORTED=y
-CONFIG_SOC_ADC_MONITOR_SUPPORTED=y
-CONFIG_SOC_ADC_DMA_SUPPORTED=y
-CONFIG_SOC_ADC_PERIPH_NUM=2
-CONFIG_SOC_ADC_MAX_CHANNEL_NUM=5
-CONFIG_SOC_ADC_ATTEN_NUM=4
-CONFIG_SOC_ADC_DIGI_CONTROLLER_NUM=1
-CONFIG_SOC_ADC_PATT_LEN_MAX=8
-CONFIG_SOC_ADC_DIGI_MIN_BITWIDTH=12
-CONFIG_SOC_ADC_DIGI_MAX_BITWIDTH=12
-CONFIG_SOC_ADC_DIGI_RESULT_BYTES=4
-CONFIG_SOC_ADC_DIGI_DATA_BYTES_PER_CONV=4
-CONFIG_SOC_ADC_DIGI_FILTER_NUM=2
-CONFIG_SOC_ADC_DIGI_MONITOR_NUM=2
-CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=83333
-CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=611
-CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=12
-CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12
-CONFIG_SOC_ADC_CALIBRATION_V1_SUPPORTED=y
-CONFIG_SOC_APB_BACKUP_DMA=y
-CONFIG_SOC_BROWNOUT_RESET_SUPPORTED=y
-CONFIG_SOC_SHARED_IDCACHE_SUPPORTED=y
-CONFIG_SOC_CACHE_MEMORY_IBANK_SIZE=0x4000
-CONFIG_SOC_CPU_CORES_NUM=1
-CONFIG_SOC_CPU_INTR_NUM=32
-CONFIG_SOC_CPU_HAS_FLEXIBLE_INTC=y
-CONFIG_SOC_CPU_BREAKPOINTS_NUM=8
-CONFIG_SOC_CPU_WATCHPOINTS_NUM=8
-CONFIG_SOC_CPU_WATCHPOINT_SIZE=0x80000000
-CONFIG_SOC_DS_SIGNATURE_MAX_BIT_LEN=3072
-CONFIG_SOC_DS_KEY_PARAM_MD_IV_LENGTH=16
-CONFIG_SOC_DS_KEY_CHECK_MAX_WAIT_US=1100
-CONFIG_SOC_GDMA_GROUPS=1
-CONFIG_SOC_GDMA_PAIRS_PER_GROUP=3
-CONFIG_SOC_GDMA_TX_RX_SHARE_INTERRUPT=y
-CONFIG_SOC_GPIO_PORT=1
-CONFIG_SOC_GPIO_PIN_COUNT=22
-CONFIG_SOC_GPIO_SUPPORTS_RTC_INDEPENDENT=y
-CONFIG_SOC_GPIO_SUPPORT_FORCE_HOLD=y
-CONFIG_SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP=y
-CONFIG_SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK=0
-CONFIG_SOC_GPIO_SUPPORT_SLP_SWITCH=y
-CONFIG_SOC_DEDIC_GPIO_OUT_CHANNELS_NUM=8
-CONFIG_SOC_DEDIC_GPIO_IN_CHANNELS_NUM=8
-CONFIG_SOC_DEDIC_PERIPH_ALWAYS_ENABLE=y
-CONFIG_SOC_I2C_NUM=1
-CONFIG_SOC_I2C_FIFO_LEN=32
-CONFIG_SOC_I2C_SUPPORT_SLAVE=y
-CONFIG_SOC_I2C_SUPPORT_HW_CLR_BUS=y
-CONFIG_SOC_I2C_SUPPORT_XTAL=y
-CONFIG_SOC_I2C_SUPPORT_RTC=y
-CONFIG_SOC_I2S_NUM=y
-CONFIG_SOC_I2S_HW_VERSION_2=y
-CONFIG_SOC_I2S_SUPPORTS_PCM=y
-CONFIG_SOC_I2S_SUPPORTS_PDM=y
-CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y
-CONFIG_SOC_I2S_SUPPORTS_PDM_CODEC=y
-CONFIG_SOC_I2S_SUPPORTS_TDM=y
-CONFIG_SOC_LEDC_SUPPORT_APB_CLOCK=y
-CONFIG_SOC_LEDC_SUPPORT_XTAL_CLOCK=y
-CONFIG_SOC_LEDC_CHANNEL_NUM=6
-CONFIG_SOC_LEDC_TIMER_BIT_WIDE_NUM=14
-CONFIG_SOC_LEDC_SUPPORT_FADE_STOP=y
-CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000
-CONFIG_SOC_MPU_REGIONS_MAX_NUM=8
-CONFIG_SOC_RMT_GROUPS=1
-CONFIG_SOC_RMT_TX_CANDIDATES_PER_GROUP=2
-CONFIG_SOC_RMT_RX_CANDIDATES_PER_GROUP=2
-CONFIG_SOC_RMT_CHANNELS_PER_GROUP=4
-CONFIG_SOC_RMT_MEM_WORDS_PER_CHANNEL=48
-CONFIG_SOC_RMT_SUPPORT_RX_PINGPONG=y
-CONFIG_SOC_RMT_SUPPORT_RX_DEMODULATION=y
-CONFIG_SOC_RMT_SUPPORT_TX_ASYNC_STOP=y
-CONFIG_SOC_RMT_SUPPORT_TX_LOOP_COUNT=y
-CONFIG_SOC_RMT_SUPPORT_TX_SYNCHRO=y
-CONFIG_SOC_RMT_SUPPORT_TX_CARRIER_DATA_ONLY=y
-CONFIG_SOC_RMT_SUPPORT_XTAL=y
-CONFIG_SOC_RMT_SUPPORT_APB=y
-CONFIG_SOC_RMT_SUPPORT_RC_FAST=y
-CONFIG_SOC_RTC_CNTL_CPU_PD_DMA_BUS_WIDTH=128
-CONFIG_SOC_RTC_CNTL_CPU_PD_REG_FILE_NUM=108
-CONFIG_SOC_RTC_SLOW_CLOCK_SUPPORT_8MD256=y
-CONFIG_SOC_RTCIO_PIN_COUNT=0
-CONFIG_SOC_RSA_MAX_BIT_LEN=3072
-CONFIG_SOC_SHA_DMA_MAX_BUFFER_SIZE=3968
-CONFIG_SOC_SHA_SUPPORT_DMA=y
-CONFIG_SOC_SHA_SUPPORT_RESUME=y
-CONFIG_SOC_SHA_GDMA=y
-CONFIG_SOC_SHA_SUPPORT_SHA1=y
-CONFIG_SOC_SHA_SUPPORT_SHA224=y
-CONFIG_SOC_SHA_SUPPORT_SHA256=y
-CONFIG_SOC_SDM_GROUPS=1
-CONFIG_SOC_SDM_CHANNELS_PER_GROUP=4
-CONFIG_SOC_SPI_PERIPH_NUM=2
-CONFIG_SOC_SPI_MAXIMUM_BUFFER_SIZE=64
-CONFIG_SOC_SPI_SUPPORT_DDRCLK=y
-CONFIG_SOC_SPI_SLAVE_SUPPORT_SEG_TRANS=y
-CONFIG_SOC_SPI_SUPPORT_CD_SIG=y
-CONFIG_SOC_SPI_SUPPORT_CONTINUOUS_TRANS=y
-CONFIG_SOC_SPI_SUPPORT_SLAVE_HD_VER2=y
-CONFIG_SOC_SPI_PERIPH_SUPPORT_CONTROL_DUMMY_OUT=y
-CONFIG_SOC_MEMSPI_IS_INDEPENDENT=y
-CONFIG_SOC_SPI_MAX_PRE_DIVIDER=16
-CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_WAIT_IDLE=y
-CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_SUSPEND=y
-CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_RESUME=y
-CONFIG_SOC_SPI_MEM_SUPPORT_IDLE_INTR=y
-CONFIG_SOC_SPI_MEM_SUPPORT_SW_SUSPEND=y
-CONFIG_SOC_SPI_MEM_SUPPORT_CHECK_SUS=y
-CONFIG_SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE=y
-CONFIG_SOC_MEMSPI_SRC_FREQ_80M_SUPPORTED=y
-CONFIG_SOC_MEMSPI_SRC_FREQ_40M_SUPPORTED=y
-CONFIG_SOC_MEMSPI_SRC_FREQ_26M_SUPPORTED=y
-CONFIG_SOC_MEMSPI_SRC_FREQ_20M_SUPPORTED=y
-CONFIG_SOC_SYSTIMER_COUNTER_NUM=2
-CONFIG_SOC_SYSTIMER_ALARM_NUM=3
-CONFIG_SOC_SYSTIMER_BIT_WIDTH_LO=32
-CONFIG_SOC_SYSTIMER_BIT_WIDTH_HI=20
-CONFIG_SOC_SYSTIMER_FIXED_DIVIDER=y
-CONFIG_SOC_SYSTIMER_INT_LEVEL=y
-CONFIG_SOC_SYSTIMER_ALARM_MISS_COMPENSATE=y
-CONFIG_SOC_TIMER_GROUPS=2
-CONFIG_SOC_TIMER_GROUP_TIMERS_PER_GROUP=1
-CONFIG_SOC_TIMER_GROUP_COUNTER_BIT_WIDTH=54
-CONFIG_SOC_TIMER_GROUP_SUPPORT_XTAL=y
-CONFIG_SOC_TIMER_GROUP_SUPPORT_APB=y
-CONFIG_SOC_TIMER_GROUP_TOTAL_TIMERS=2
-CONFIG_SOC_TWAI_BRP_MIN=2
-CONFIG_SOC_TWAI_BRP_MAX=16384
-CONFIG_SOC_TWAI_SUPPORTS_RX_STATUS=y
-CONFIG_SOC_SECURE_BOOT_V2_RSA=y
-CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=3
-CONFIG_SOC_EFUSE_REVOKE_BOOT_KEY_DIGESTS=y
-CONFIG_SOC_SUPPORT_SECURE_BOOT_REVOKE_KEY=y
-CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=32
-CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES=y
-CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_128=y
-CONFIG_SOC_MEMPROT_CPU_PREFETCH_PAD_SIZE=16
-CONFIG_SOC_MEMPROT_MEM_ALIGN_SIZE=512
-CONFIG_SOC_UART_NUM=2
-CONFIG_SOC_UART_FIFO_LEN=128
-CONFIG_SOC_UART_BITRATE_MAX=5000000
-CONFIG_SOC_UART_SUPPORT_APB_CLK=y
-CONFIG_SOC_UART_SUPPORT_RTC_CLK=y
-CONFIG_SOC_UART_SUPPORT_XTAL_CLK=y
-CONFIG_SOC_UART_SUPPORT_WAKEUP_INT=y
-CONFIG_SOC_UART_REQUIRE_CORE_RESET=y
-CONFIG_SOC_UART_SUPPORT_FSM_TX_WAIT_SEND=y
-CONFIG_SOC_COEX_HW_PTI=y
-CONFIG_SOC_PHY_DIG_REGS_MEM_SIZE=21
-CONFIG_SOC_MAC_BB_PD_MEM_SIZE=192
-CONFIG_SOC_WIFI_LIGHT_SLEEP_CLK_WIDTH=12
-CONFIG_SOC_PM_SUPPORT_WIFI_WAKEUP=y
-CONFIG_SOC_PM_SUPPORT_BT_WAKEUP=y
-CONFIG_SOC_PM_SUPPORT_CPU_PD=y
-CONFIG_SOC_PM_SUPPORT_WIFI_PD=y
-CONFIG_SOC_PM_SUPPORT_BT_PD=y
-CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_FAST_RC=y
-CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_XTAL=y
-CONFIG_SOC_WIFI_HW_TSF=y
-CONFIG_SOC_WIFI_FTM_SUPPORT=y
-CONFIG_SOC_WIFI_GCMP_SUPPORT=y
-CONFIG_SOC_WIFI_WAPI_SUPPORT=y
-CONFIG_SOC_WIFI_CSI_SUPPORT=y
-CONFIG_SOC_WIFI_MESH_SUPPORT=y
-CONFIG_SOC_BLE_SUPPORTED=y
-CONFIG_IDF_CMAKE=y
-CONFIG_IDF_TARGET_ARCH_RISCV=y
-CONFIG_IDF_TARGET_ARCH="riscv"
-CONFIG_IDF_TARGET="esp32c3"
-CONFIG_IDF_TARGET_ESP32C3=y
-CONFIG_IDF_RTOS_RTTHREAD=y
-CONFIG_IDF_FIRMWARE_CHIP_ID=0x0005
-
-#
-# Build type
-#
-CONFIG_APP_BUILD_TYPE_APP_2NDBOOT=y
-# CONFIG_APP_BUILD_TYPE_ELF_RAM is not set
-CONFIG_APP_BUILD_GENERATE_BINARIES=y
-CONFIG_APP_BUILD_BOOTLOADER=y
-CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y
-# CONFIG_APP_REPRODUCIBLE_BUILD is not set
-# CONFIG_APP_NO_BLOBS is not set
-# end of Build type
-
-#
-# Bootloader config
-#
-CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x0
-CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y
-# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set
-# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set
-# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set
-# CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set
-# CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set
-# CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set
-CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y
-# CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set
-# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set
-CONFIG_BOOTLOADER_LOG_LEVEL=3
-CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y
-# CONFIG_BOOTLOADER_FACTORY_RESET is not set
-# CONFIG_BOOTLOADER_APP_TEST is not set
-CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE=y
-CONFIG_BOOTLOADER_WDT_ENABLE=y
-# CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set
-CONFIG_BOOTLOADER_WDT_TIME_MS=9000
-# CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set
-# CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set
-# CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set
-# CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set
-CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0
-# CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set
-CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y
-# end of Bootloader config
-
-#
-# Security features
-#
-CONFIG_SECURE_BOOT_V2_RSA_SUPPORTED=y
-CONFIG_SECURE_BOOT_V2_PREFERRED=y
-# CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set
-# CONFIG_SECURE_BOOT is not set
-# CONFIG_SECURE_FLASH_ENC_ENABLED is not set
-CONFIG_SECURE_ROM_DL_MODE_ENABLED=y
-# end of Security features
-
-#
-# Application manager
-#
-CONFIG_APP_COMPILE_TIME_DATE=y
-# CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set
-# CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set
-# CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set
-CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16
-# end of Application manager
-
-CONFIG_ESP_ROM_HAS_CRC_LE=y
-CONFIG_ESP_ROM_HAS_CRC_BE=y
-CONFIG_ESP_ROM_HAS_JPEG_DECODE=y
-CONFIG_ESP_ROM_UART_CLK_IS_XTAL=y
-CONFIG_ESP_ROM_USB_SERIAL_DEVICE_NUM=3
-CONFIG_ESP_ROM_HAS_RETARGETABLE_LOCKING=y
-CONFIG_ESP_ROM_HAS_ERASE_0_REGION_BUG=y
-CONFIG_ESP_ROM_GET_CLK_FREQ=y
-CONFIG_ESP_ROM_NEEDS_SWSETUP_WORKAROUND=y
-
-#
-# Boot ROM Behavior
-#
-CONFIG_BOOT_ROM_LOG_ALWAYS_ON=y
-# CONFIG_BOOT_ROM_LOG_ALWAYS_OFF is not set
-# CONFIG_BOOT_ROM_LOG_ON_GPIO_HIGH is not set
-# CONFIG_BOOT_ROM_LOG_ON_GPIO_LOW is not set
-# end of Boot ROM Behavior
-
-#
-# Serial flasher config
-#
-# CONFIG_ESPTOOLPY_NO_STUB is not set
-# CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set
-# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set
-CONFIG_ESPTOOLPY_FLASHMODE_DIO=y
-# CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set
-CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y
-CONFIG_ESPTOOLPY_FLASHMODE="dio"
-CONFIG_ESPTOOLPY_FLASHFREQ_80M=y
-# CONFIG_ESPTOOLPY_FLASHFREQ_40M is not set
-# CONFIG_ESPTOOLPY_FLASHFREQ_26M is not set
-# CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set
-CONFIG_ESPTOOLPY_FLASHFREQ="80m"
-# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set
-# CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set
-CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
-# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set
-# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set
-# CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set
-# CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set
-# CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set
-CONFIG_ESPTOOLPY_FLASHSIZE="4MB"
-# CONFIG_ESPTOOLPY_HEADER_FLASHSIZE_UPDATE is not set
-CONFIG_ESPTOOLPY_BEFORE_RESET=y
-# CONFIG_ESPTOOLPY_BEFORE_NORESET is not set
-CONFIG_ESPTOOLPY_BEFORE="default_reset"
-CONFIG_ESPTOOLPY_AFTER_RESET=y
-# CONFIG_ESPTOOLPY_AFTER_NORESET is not set
-CONFIG_ESPTOOLPY_AFTER="hard_reset"
-CONFIG_ESPTOOLPY_MONITOR_BAUD=115200
-# end of Serial flasher config
-
-#
-# Partition Table
-#
-CONFIG_PARTITION_TABLE_SINGLE_APP=y
-# CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set
-# CONFIG_PARTITION_TABLE_TWO_OTA is not set
-# CONFIG_PARTITION_TABLE_CUSTOM is not set
-CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
-CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp.csv"
-CONFIG_PARTITION_TABLE_OFFSET=0x8000
-CONFIG_PARTITION_TABLE_MD5=y
-# end of Partition Table
-
-#
-# Compiler options
-#
-CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y
-# CONFIG_COMPILER_OPTIMIZATION_SIZE is not set
-# CONFIG_COMPILER_OPTIMIZATION_PERF is not set
-# CONFIG_COMPILER_OPTIMIZATION_NONE is not set
-CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y
-# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set
-# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set
-CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB=y
-CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2
-# CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set
-CONFIG_COMPILER_HIDE_PATHS_MACROS=y
-# CONFIG_COMPILER_CXX_EXCEPTIONS is not set
-# CONFIG_COMPILER_CXX_RTTI is not set
-CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y
-# CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set
-# CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set
-# CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set
-# CONFIG_COMPILER_WARN_WRITE_STRINGS is not set
-# CONFIG_COMPILER_SAVE_RESTORE_LIBCALLS is not set
-# CONFIG_COMPILER_DUMP_RTL_FILES is not set
-# end of Compiler options
-
-#
-# Component config
-#
-
-#
-# Driver Configurations
-#
-
-#
-# Legacy ADC Configuration
-#
-# CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set
-
-#
-# Legacy ADC Calibration Configuration
-#
-# CONFIG_ADC_CALI_SUPPRESS_DEPRECATE_WARN is not set
-# end of Legacy ADC Calibration Configuration
-# end of Legacy ADC Configuration
-
-#
-# SPI Configuration
-#
-# CONFIG_SPI_MASTER_IN_IRAM is not set
-CONFIG_SPI_MASTER_ISR_IN_IRAM=y
-# CONFIG_SPI_SLAVE_IN_IRAM is not set
-CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
-# end of SPI Configuration
-
-#
-# TWAI Configuration
-#
-# CONFIG_TWAI_ISR_IN_IRAM is not set
-# end of TWAI Configuration
-
-#
-# Temperature sensor Configuration
-#
-# CONFIG_TEMP_SENSOR_SUPPRESS_DEPRECATE_WARN is not set
-# CONFIG_TEMP_SENSOR_ENABLE_DEBUG_LOG is not set
-# end of Temperature sensor Configuration
-
-#
-# UART Configuration
-#
-# CONFIG_UART_ISR_IN_IRAM is not set
-# end of UART Configuration
-
-#
-# GPIO Configuration
-#
-# CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set
-# end of GPIO Configuration
-
-#
-# Sigma Delta Modulator Configuration
-#
-# CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set
-# CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set
-# CONFIG_SDM_ENABLE_DEBUG_LOG is not set
-# end of Sigma Delta Modulator Configuration
-
-#
-# GPTimer Configuration
-#
-# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set
-# CONFIG_GPTIMER_ISR_IRAM_SAFE is not set
-# CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set
-# CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set
-# end of GPTimer Configuration
-
-#
-# RMT Configuration
-#
-# CONFIG_RMT_ISR_IRAM_SAFE is not set
-# CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set
-# CONFIG_RMT_ENABLE_DEBUG_LOG is not set
-# end of RMT Configuration
-
-#
-# I2S Configuration
-#
-# CONFIG_I2S_ISR_IRAM_SAFE is not set
-# CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set
-# CONFIG_I2S_ENABLE_DEBUG_LOG is not set
-# end of I2S Configuration
-# end of Driver Configurations
-
-#
-# eFuse Bit Manager
-#
-# CONFIG_EFUSE_CUSTOM_TABLE is not set
-# CONFIG_EFUSE_VIRTUAL is not set
-CONFIG_EFUSE_MAX_BLK_LEN=256
-# end of eFuse Bit Manager
-
-#
-# Common ESP-related
-#
-CONFIG_ESP_ERR_TO_NAME_LOOKUP=y
-# end of Common ESP-related
-
-#
-# Hardware Settings
-#
-
-#
-# MAC Config
-#
-CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y
-CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y
-CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y
-CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y
-# CONFIG_ESP32C3_UNIVERSAL_MAC_ADDRESSES_TWO is not set
-CONFIG_ESP32C3_UNIVERSAL_MAC_ADDRESSES_FOUR=y
-CONFIG_ESP32C3_UNIVERSAL_MAC_ADDRESSES=4
-# end of MAC Config
-
-#
-# Sleep Config
-#
-CONFIG_ESP_SLEEP_POWER_DOWN_FLASH=y
-CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND=y
-# CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND is not set
-# end of Sleep Config
-
-#
-# RTC Clock Config
-#
-CONFIG_RTC_CLK_SRC_INT_RC=y
-# CONFIG_RTC_CLK_SRC_EXT_CRYS is not set
-# CONFIG_RTC_CLK_SRC_EXT_OSC is not set
-# CONFIG_RTC_CLK_SRC_INT_8MD256 is not set
-CONFIG_RTC_CLK_CAL_CYCLES=1024
-CONFIG_RTC_CLOCK_BBPLL_POWER_ON_WITH_USB=y
-# end of RTC Clock Config
-
-#
-# Peripheral Control
-#
-# CONFIG_PERIPH_CTRL_FUNC_IN_IRAM is not set
-# end of Peripheral Control
-
-#
-# MMU Config
-#
-CONFIG_MMU_PAGE_SIZE_64KB=y
-CONFIG_MMU_PAGE_MODE="64KB"
-CONFIG_MMU_PAGE_SIZE=0x10000
-# end of MMU Config
-
-# CONFIG_ESP32C3_REV_MIN_0 is not set
-# CONFIG_ESP32C3_REV_MIN_1 is not set
-# CONFIG_ESP32C3_REV_MIN_2 is not set
-CONFIG_ESP32C3_REV_MIN_3=y
-# CONFIG_ESP32C3_REV_MIN_4 is not set
-CONFIG_ESP32C3_REV_MIN=3
-
-#
-# GDMA Configuration
-#
-# CONFIG_GDMA_CTRL_FUNC_IN_IRAM is not set
-# CONFIG_GDMA_ISR_IRAM_SAFE is not set
-# end of GDMA Configuration
-
-#
-# Main XTAL Config
-#
-CONFIG_XTAL_FREQ_40=y
-CONFIG_XTAL_FREQ=40
-# end of Main XTAL Config
-# end of Hardware Settings
-
-#
-# Power Management
-#
-# CONFIG_PM_ENABLE is not set
-CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=y
-# end of Power Management
-
-#
-# ESP Ringbuf
-#
-# CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH is not set
-# CONFIG_RINGBUF_PLACE_ISR_FUNCTIONS_INTO_FLASH is not set
-# end of ESP Ringbuf
-
-#
-# ESP System Settings
-#
-# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80 is not set
-CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160=y
-CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=160
-# CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set
-CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y
-# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set
-# CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set
-# CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set
-CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE=y
-CONFIG_ESP_SYSTEM_RTC_FAST_MEM_AS_HEAP_DEPCHECK=y
-CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP=y
-# CONFIG_ESP_SYSTEM_USE_EH_FRAME is not set
-
-#
-# Memory protection
-#
-CONFIG_ESP_SYSTEM_MEMPROT_FEATURE=y
-CONFIG_ESP_SYSTEM_MEMPROT_FEATURE_LOCK=y
-# end of Memory protection
-
-CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32
-CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304
-CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584
-CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y
-# CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set
-CONFIG_ESP_MAIN_TASK_AFFINITY=0x0
-CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048
-CONFIG_ESP_CONSOLE_UART_DEFAULT=y
-# CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG is not set
-# CONFIG_ESP_CONSOLE_UART_CUSTOM is not set
-# CONFIG_ESP_CONSOLE_NONE is not set
-# CONFIG_ESP_CONSOLE_SECONDARY_NONE is not set
-CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG=y
-CONFIG_ESP_CONSOLE_UART=y
-CONFIG_ESP_CONSOLE_UART_NUM=0
-CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200
-# CONFIG_ESP_INT_WDT is not set
-# CONFIG_ESP_TASK_WDT is not set
-# CONFIG_ESP_PANIC_HANDLER_IRAM is not set
-# CONFIG_ESP_DEBUG_STUBS_ENABLE is not set
-# CONFIG_ESP_DEBUG_OCDAWARE is not set
-CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y
-
-#
-# Brownout Detector
-#
-CONFIG_ESP_BROWNOUT_DET=y
-CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7=y
-# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set
-# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set
-# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set
-# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3 is not set
-# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set
-CONFIG_ESP_BROWNOUT_DET_LVL=7
-# end of Brownout Detector
-
-CONFIG_ESP_SYSTEM_BROWNOUT_INTR=y
-# end of ESP System Settings
-
-#
-# IPC (Inter-Processor Call)
-#
-CONFIG_ESP_IPC_TASK_STACK_SIZE=1536
-# end of IPC (Inter-Processor Call)
-
-#
-# High resolution timer (esp_timer)
-#
-# CONFIG_ESP_TIMER_PROFILING is not set
-CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y
-CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y
-CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584
-CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1
-# CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set
-CONFIG_ESP_TIMER_IMPL_SYSTIMER=y
-# end of High resolution timer (esp_timer)
-
-#
-# FreeRTOS
-#
-
-#
-# Kernel
-#
-# CONFIG_FREERTOS_SMP is not set
-CONFIG_FREERTOS_UNICORE=y
-CONFIG_FREERTOS_HZ=1000
-CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
-CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE=y
-# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set
-# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY is not set
-CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
-CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536
-# CONFIG_FREERTOS_USE_IDLE_HOOK is not set
-# CONFIG_FREERTOS_USE_TICK_HOOK is not set
-CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16
-# CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set
-CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
-CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
-CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
-CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
-# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set
-# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set
-# end of Kernel
-
-#
-# Port
-#
-CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y
-# CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set
-# CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set
-CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y
-CONFIG_FREERTOS_ISR_STACKSIZE=1536
-CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y
-CONFIG_FREERTOS_TICK_SUPPORT_SYSTIMER=y
-CONFIG_FREERTOS_CORETIMER_SYSTIMER_LVL1=y
-# CONFIG_FREERTOS_CORETIMER_SYSTIMER_LVL3 is not set
-CONFIG_FREERTOS_SYSTICK_USES_SYSTIMER=y
-# CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set
-# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set
-CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION=y
-# CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT is not set
-# end of Port
-
-CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF
-CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y
-# end of FreeRTOS
-
-#
-# Hardware Abstraction Layer (HAL) and Low Level (LL)
-#
-CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y
-# CONFIG_HAL_ASSERTION_DISABLE is not set
-# CONFIG_HAL_ASSERTION_SILENT is not set
-# CONFIG_HAL_ASSERTION_ENABLE is not set
-CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2
-# end of Hardware Abstraction Layer (HAL) and Low Level (LL)
-
-#
-# Heap memory debugging
-#
-CONFIG_HEAP_POISONING_DISABLED=y
-# CONFIG_HEAP_POISONING_LIGHT is not set
-# CONFIG_HEAP_POISONING_COMPREHENSIVE is not set
-CONFIG_HEAP_TRACING_OFF=y
-# CONFIG_HEAP_TRACING_STANDALONE is not set
-# CONFIG_HEAP_TRACING_TOHOST is not set
-# CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set
-# end of Heap memory debugging
-
-#
-# Log output
-#
-# CONFIG_LOG_DEFAULT_LEVEL_NONE is not set
-# CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set
-# CONFIG_LOG_DEFAULT_LEVEL_WARN is not set
-CONFIG_LOG_DEFAULT_LEVEL_INFO=y
-# CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set
-# CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set
-CONFIG_LOG_DEFAULT_LEVEL=3
-CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y
-# CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set
-# CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set
-CONFIG_LOG_MAXIMUM_LEVEL=3
-CONFIG_LOG_COLORS=y
-CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y
-# CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set
-# end of Log output
-
-#
-# mbedTLS
-#
-CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y
-# CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set
-# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set
-CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
-CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384
-CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096
-# CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set
-# CONFIG_MBEDTLS_DEBUG is not set
-
-#
-# mbedTLS v3.x related
-#
-# CONFIG_MBEDTLS_SSL_PROTO_TLS1_3 is not set
-# CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH is not set
-# CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set
-# CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set
-CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y
-# end of mbedTLS v3.x related
-
-#
-# Certificate Bundle
-#
-CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
-CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y
-# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set
-# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set
-# CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set
-CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS=200
-# end of Certificate Bundle
-
-# CONFIG_MBEDTLS_ECP_RESTARTABLE is not set
-# CONFIG_MBEDTLS_CMAC_C is not set
-CONFIG_MBEDTLS_HARDWARE_AES=y
-CONFIG_MBEDTLS_AES_USE_INTERRUPT=y
-CONFIG_MBEDTLS_HARDWARE_MPI=y
-CONFIG_MBEDTLS_MPI_USE_INTERRUPT=y
-CONFIG_MBEDTLS_HARDWARE_SHA=y
-CONFIG_MBEDTLS_ROM_MD5=y
-# CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set
-# CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set
-CONFIG_MBEDTLS_HAVE_TIME=y
-# CONFIG_MBEDTLS_PLATFORM_TIME_ALT is not set
-# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set
-CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y
-CONFIG_MBEDTLS_SHA512_C=y
-CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y
-# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set
-# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set
-# CONFIG_MBEDTLS_TLS_DISABLED is not set
-CONFIG_MBEDTLS_TLS_SERVER=y
-CONFIG_MBEDTLS_TLS_CLIENT=y
-CONFIG_MBEDTLS_TLS_ENABLED=y
-
-#
-# TLS Key Exchange Methods
-#
-# CONFIG_MBEDTLS_PSK_MODES is not set
-CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y
-CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y
-CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y
-CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y
-CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y
-CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y
-# end of TLS Key Exchange Methods
-
-CONFIG_MBEDTLS_SSL_RENEGOTIATION=y
-CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y
-# CONFIG_MBEDTLS_SSL_PROTO_GMTSSL1_1 is not set
-# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set
-CONFIG_MBEDTLS_SSL_ALPN=y
-CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y
-CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y
-
-#
-# Symmetric Ciphers
-#
-CONFIG_MBEDTLS_AES_C=y
-# CONFIG_MBEDTLS_CAMELLIA_C is not set
-# CONFIG_MBEDTLS_DES_C is not set
-# CONFIG_MBEDTLS_BLOWFISH_C is not set
-# CONFIG_MBEDTLS_XTEA_C is not set
-CONFIG_MBEDTLS_CCM_C=y
-CONFIG_MBEDTLS_GCM_C=y
-# CONFIG_MBEDTLS_NIST_KW_C is not set
-# end of Symmetric Ciphers
-
-# CONFIG_MBEDTLS_RIPEMD160_C is not set
-
-#
-# Certificates
-#
-CONFIG_MBEDTLS_PEM_PARSE_C=y
-CONFIG_MBEDTLS_PEM_WRITE_C=y
-CONFIG_MBEDTLS_X509_CRL_PARSE_C=y
-CONFIG_MBEDTLS_X509_CSR_PARSE_C=y
-# end of Certificates
-
-CONFIG_MBEDTLS_ECP_C=y
-# CONFIG_MBEDTLS_DHM_C is not set
-CONFIG_MBEDTLS_ECDH_C=y
-CONFIG_MBEDTLS_ECDSA_C=y
-# CONFIG_MBEDTLS_ECJPAKE_C is not set
-CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y
-CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y
-CONFIG_MBEDTLS_ECP_NIST_OPTIM=y
-# CONFIG_MBEDTLS_POLY1305_C is not set
-# CONFIG_MBEDTLS_CHACHA20_C is not set
-# CONFIG_MBEDTLS_HKDF_C is not set
-# CONFIG_MBEDTLS_THREADING_C is not set
-CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI=y
-# CONFIG_MBEDTLS_SECURITY_RISKS is not set
-# end of mbedTLS
-
-#
-# Newlib
-#
-CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y
-# CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set
-# CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set
-# CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set
-# CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set
-CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y
-# CONFIG_NEWLIB_NANO_FORMAT is not set
-CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y
-# CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC is not set
-# CONFIG_NEWLIB_TIME_SYSCALL_USE_HRT is not set
-# CONFIG_NEWLIB_TIME_SYSCALL_USE_NONE is not set
-# end of Newlib
-
-#
-# PThreads
-#
-CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5
-CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072
-CONFIG_PTHREAD_STACK_MIN=768
-CONFIG_PTHREAD_TASK_CORE_DEFAULT=-1
-CONFIG_PTHREAD_TASK_NAME_DEFAULT="pthread"
-# end of PThreads
-
-#
-# SPI Flash driver
-#
-# CONFIG_SPI_FLASH_VERIFY_WRITE is not set
-# CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set
-CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y
-CONFIG_SPI_FLASH_HAS_ROM_IMPL=y
-# CONFIG_SPI_FLASH_ROM_IMPL is not set
-CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y
-# CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set
-# CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set
-# CONFIG_SPI_FLASH_SHARE_SPI1_BUS is not set
-# CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set
-CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y
-CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20
-CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1
-# CONFIG_SPI_FLASH_AUTO_SUSPEND is not set
-CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192
-# CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set
-# CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set
-# CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST is not set
-
-#
-# SPI Flash behavior when brownout
-#
-CONFIG_SPI_FLASH_BROWNOUT_RESET_XMC=y
-CONFIG_SPI_FLASH_BROWNOUT_RESET=y
-# end of SPI Flash behavior when brownout
-
-#
-# Auto-detect flash chips
-#
-CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y
-CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=y
-CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y
-CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=y
-CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=y
-CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=y
-# end of Auto-detect flash chips
-
-CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y
-# end of SPI Flash driver
-# end of Component config
-
-# Deprecated options for backward compatibility
-# CONFIG_NO_BLOBS is not set
-# CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set
-# CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set
-# CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set
-CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y
-# CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set
-# CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set
-CONFIG_LOG_BOOTLOADER_LEVEL=3
-# CONFIG_APP_ROLLBACK_ENABLE is not set
-# CONFIG_FLASH_ENCRYPTION_ENABLED is not set
-# CONFIG_FLASHMODE_QIO is not set
-# CONFIG_FLASHMODE_QOUT is not set
-CONFIG_FLASHMODE_DIO=y
-# CONFIG_FLASHMODE_DOUT is not set
-CONFIG_MONITOR_BAUD=115200
-CONFIG_OPTIMIZATION_LEVEL_DEBUG=y
-CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y
-# CONFIG_OPTIMIZATION_LEVEL_RELEASE is not set
-# CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set
-CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y
-# CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set
-# CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set
-CONFIG_OPTIMIZATION_ASSERTION_LEVEL=2
-# CONFIG_CXX_EXCEPTIONS is not set
-CONFIG_STACK_CHECK_NONE=y
-# CONFIG_STACK_CHECK_NORM is not set
-# CONFIG_STACK_CHECK_STRONG is not set
-# CONFIG_STACK_CHECK_ALL is not set
-# CONFIG_WARN_WRITE_STRINGS is not set
-CONFIG_ESP_SYSTEM_PD_FLASH=y
-CONFIG_ESP32C3_LIGHTSLEEP_GPIO_RESET_WORKAROUND=y
-CONFIG_ESP32C3_RTC_CLK_SRC_INT_RC=y
-# CONFIG_ESP32C3_RTC_CLK_SRC_EXT_CRYS is not set
-# CONFIG_ESP32C3_RTC_CLK_SRC_EXT_OSC is not set
-# CONFIG_ESP32C3_RTC_CLK_SRC_INT_8MD256 is not set
-CONFIG_ESP32C3_RTC_CLK_CAL_CYCLES=1024
-CONFIG_ESP_SYSTEM_PM_POWER_DOWN_CPU=y
-# CONFIG_ESP32C3_DEFAULT_CPU_FREQ_80 is not set
-CONFIG_ESP32C3_DEFAULT_CPU_FREQ_160=y
-CONFIG_ESP32C3_DEFAULT_CPU_FREQ_MHZ=160
-CONFIG_ESP32C3_MEMPROT_FEATURE=y
-CONFIG_ESP32C3_MEMPROT_FEATURE_LOCK=y
-CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32
-CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304
-CONFIG_MAIN_TASK_STACK_SIZE=3584
-CONFIG_CONSOLE_UART_DEFAULT=y
-# CONFIG_CONSOLE_UART_CUSTOM is not set
-# CONFIG_CONSOLE_UART_NONE is not set
-# CONFIG_ESP_CONSOLE_UART_NONE is not set
-CONFIG_CONSOLE_UART=y
-CONFIG_CONSOLE_UART_NUM=0
-CONFIG_CONSOLE_UART_BAUDRATE=115200
-# CONFIG_INT_WDT is not set
-# CONFIG_TASK_WDT is not set
-# CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set
-# CONFIG_ESP32C3_DEBUG_OCDAWARE is not set
-CONFIG_BROWNOUT_DET=y
-CONFIG_ESP32C3_BROWNOUT_DET=y
-CONFIG_ESP32C3_BROWNOUT_DET=y
-CONFIG_BROWNOUT_DET_LVL_SEL_7=y
-CONFIG_ESP32C3_BROWNOUT_DET_LVL_SEL_7=y
-# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set
-# CONFIG_ESP32C3_BROWNOUT_DET_LVL_SEL_6 is not set
-# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set
-# CONFIG_ESP32C3_BROWNOUT_DET_LVL_SEL_5 is not set
-# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set
-# CONFIG_ESP32C3_BROWNOUT_DET_LVL_SEL_4 is not set
-# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set
-# CONFIG_ESP32C3_BROWNOUT_DET_LVL_SEL_3 is not set
-# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set
-# CONFIG_ESP32C3_BROWNOUT_DET_LVL_SEL_2 is not set
-CONFIG_BROWNOUT_DET_LVL=7
-CONFIG_ESP32C3_BROWNOUT_DET_LVL=7
-CONFIG_IPC_TASK_STACK_SIZE=1536
-CONFIG_TIMER_TASK_STACK_SIZE=3584
-CONFIG_TIMER_TASK_PRIORITY=1
-CONFIG_TIMER_TASK_STACK_DEPTH=2048
-CONFIG_TIMER_QUEUE_LENGTH=10
-# CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set
-# CONFIG_HAL_ASSERTION_SILIENT is not set
-CONFIG_ESP32C3_TIME_SYSCALL_USE_RTC_SYSTIMER=y
-# CONFIG_ESP32C3_TIME_SYSCALL_USE_RTC is not set
-# CONFIG_ESP32C3_TIME_SYSCALL_USE_SYSTIMER is not set
-# CONFIG_ESP32C3_TIME_SYSCALL_USE_NONE is not set
-CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5
-CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072
-CONFIG_ESP32_PTHREAD_STACK_MIN=768
-CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT=-1
-CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread"
-CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y
-# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS is not set
-# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set
-# End of deprecated options