summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bsp/ESP32_C3/.config28
-rw-r--r--bsp/ESP32_C3/README.md46
-rw-r--r--bsp/ESP32_C3/README_ZH.md47
-rw-r--r--bsp/ESP32_C3/builtin_imgs/partition-table.binbin3072 -> 3072 bytes
-rw-r--r--bsp/ESP32_C3/drivers/Kconfig14
-rw-r--r--bsp/ESP32_C3/drivers/drv_wifi.c360
-rw-r--r--bsp/ESP32_C3/drivers/drv_wifi.h18
-rw-r--r--bsp/ESP32_C3/drivers/sdkconfig.h340
-rw-r--r--bsp/ESP32_C3/esp32c3.gpb15
-rw-r--r--bsp/ESP32_C3/idf_port/include/freertos/portmacro.h9
-rw-r--r--bsp/ESP32_C3/idf_port/include/freertos/task_snapshot.h6
-rw-r--r--bsp/ESP32_C3/idf_port/ld/memory.ld2
-rw-r--r--bsp/ESP32_C3/idf_port/ld/sections.ld89
-rw-r--r--bsp/ESP32_C3/idf_port/src/rt-thread_balance_stub.c4
-rw-r--r--bsp/ESP32_C3/main/main.c13
-rw-r--r--bsp/ESP32_C3/rtconfig.h6
-rw-r--r--bsp/ESP32_C3/rtconfig.py6
17 files changed, 971 insertions, 32 deletions
diff --git a/bsp/ESP32_C3/.config b/bsp/ESP32_C3/.config
index 28b6a1a6fa..fe3cb4b015 100644
--- a/bsp/ESP32_C3/.config
+++ b/bsp/ESP32_C3/.config
@@ -117,7 +117,9 @@ CONFIG_FINSH_USING_OPTION_COMPLETION=y
#
CONFIG_RT_USING_DEVICE_IPC=y
CONFIG_RT_UNAMED_PIPE_NUMBER=64
-# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set
+CONFIG_RT_USING_SYSTEM_WORKQUEUE=y
+CONFIG_RT_SYSTEM_WORKQUEUE_STACKSIZE=2048
+CONFIG_RT_SYSTEM_WORKQUEUE_PRIORITY=23
CONFIG_RT_USING_SERIAL=y
CONFIG_RT_USING_SERIAL_V1=y
# CONFIG_RT_USING_SERIAL_V2 is not set
@@ -207,6 +209,10 @@ 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
#
@@ -220,6 +226,7 @@ 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
#
# RT-Thread Utestcases
@@ -261,6 +268,11 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
#
# CONFIG_PKG_USING_WLAN_WICED is not set
# CONFIG_PKG_USING_RW007 is not set
+
+#
+# CYW43012 WiFi
+#
+# CONFIG_PKG_USING_WLAN_CYW43012 is not set
# CONFIG_PKG_USING_COAP is not set
# CONFIG_PKG_USING_NOPOLL is not set
# CONFIG_PKG_USING_NETUTILS is not set
@@ -303,6 +315,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
# CONFIG_PKG_USING_NMEALIB is not set
# CONFIG_PKG_USING_PDULIB is not set
# CONFIG_PKG_USING_BTSTACK is not set
+# CONFIG_PKG_USING_BT_CYW43012 is not set
# CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
# CONFIG_PKG_USING_WAYZ_IOTKIT is not set
# CONFIG_PKG_USING_MAVLINK is not set
@@ -322,6 +335,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
# CONFIG_PKG_USING_ZFTP is not set
# CONFIG_PKG_USING_WOL is not set
# CONFIG_PKG_USING_ZEPHYR_POLLING is not set
+# CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set
#
# security packages
@@ -368,7 +382,6 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
# LVGL: powerful and easy-to-use embedded GUI library
#
# CONFIG_PKG_USING_LVGL is not set
-# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
# CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
@@ -443,6 +456,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
# CONFIG_PKG_USING_HASH_MATCH is not set
# CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set
# CONFIG_PKG_USING_VOFA_PLUS is not set
+# CONFIG_PKG_USING_ZDEBUG is not set
#
# system packages
@@ -484,6 +498,8 @@ CONFIG_PKG_FREERTOS_USING_CONFIG_H=y
# CONFIG_PKG_FREERTOS_USING_MEMMANG is not set
CONFIG_PKG_USING_FREERTOS_WRAPPER_LATEST_VERSION=y
CONFIG_PKG_FREERTOS_WRAPPER_VER="latest"
+# CONFIG_PKG_USING_LITEOS_SDK is not set
+# CONFIG_PKG_USING_TZ_DATABASE is not set
# CONFIG_PKG_USING_CAIRO is not set
# CONFIG_PKG_USING_PIXMAN is not set
# CONFIG_PKG_USING_PARTITION is not set
@@ -507,6 +523,7 @@ CONFIG_PKG_FREERTOS_WRAPPER_VER="latest"
# CONFIG_PKG_USING_QBOOT is not set
# CONFIG_PKG_USING_PPOOL is not set
# CONFIG_PKG_USING_OPENAMP is not set
+# CONFIG_PKG_USING_RPMSG_LITE is not set
# CONFIG_PKG_USING_LPM is not set
# CONFIG_PKG_USING_TLSF is not set
# CONFIG_PKG_USING_EVENT_RECORDER is not set
@@ -520,6 +537,8 @@ CONFIG_PKG_FREERTOS_WRAPPER_VER="latest"
# CONFIG_PKG_USING_AGILE_UPGRADE is not set
# CONFIG_PKG_USING_FLASH_BLOB is not set
# CONFIG_PKG_USING_MLIBC is not set
+# CONFIG_PKG_USING_TASK_MSG_BUS is not set
+# CONFIG_PKG_USING_SFDB is not set
#
# peripheral libraries and drivers
@@ -710,6 +729,7 @@ CONFIG_PKG_ESP_IDF_VER="latest"
# CONFIG_PKG_USING_UKAL is not set
# CONFIG_PKG_USING_DIGITALCTRL is not set
# CONFIG_PKG_USING_KISSFFT is not set
+# CONFIG_PKG_USING_CMSIS_DSP is not set
#
# miscellaneous packages
@@ -931,6 +951,7 @@ CONFIG_PKG_ESP_IDF_VER="latest"
#
# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set
# CONFIG_PKG_USING_ARDUINO_U8G2 is not set
+# CONFIG_PKG_USING_ARDUINO_TFT_ESPI is not set
# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set
# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set
# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set
@@ -1015,3 +1036,6 @@ CONFIG_RT_BSP_UART_RX_PIN=20
CONFIG_BSP_USING_GPIO=y
CONFIG_BSP_USING_UART=y
# CONFIG_BSP_USING_I2C0 is not set
+# CONFIG_BSP_USING_WIFI is not set
+# CONFIG_BSP_USING_BLE is not set
+# CONFIG_BSP_ENABLE_GDBSTUB is not set
diff --git a/bsp/ESP32_C3/README.md b/bsp/ESP32_C3/README.md
index 260e09b3db..054d141674 100644
--- a/bsp/ESP32_C3/README.md
+++ b/bsp/ESP32_C3/README.md
@@ -42,6 +42,52 @@ 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 |
+| 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 [[email protected]](mailto:[email protected]), I will be grateful.
+
+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.
+
+One way to run the BLE sample is to add the sample program to `scons` compilation and call the clock initialization program and sample program entry in `bsp/ESP32_C3/main/main.c`.
+
+```c
+int main(void) {
+ ...
+#ifdef BSP_USING_BLE
+ esp_timer_init(); //Call clock initialization program
+ app_main(); //Call the BLE sample program entry
+#endif
+ ...
+}
+```
+
+3、 Regarding the use of the GDBStub component, please see [ESP-IDF official documentation on GDBStub](https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32c3/api-guides/tools/idf- monitor.html?#gdbstub-gdb), currently I have provided a debugging script `esp32c3.gdb`, the specific usage method is as follows.
+
+```sh
+wcx@tim  ~/rt-thread/bsp/ESP32_C3   esp32 ±  sudo riscv32-esp-elf-gdb # Enter gdb debugging
+GNU gdb (crosstool-NG esp-2022r1-RC1) 9.2.90.20200913-git
+Copyright (C) 2020 Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+Type "show copying" and "show warranty" for details.
+This GDB was configured as "--host=x86_64-build_pc-linux-gnu --target=riscv32-esp-elf".
+Type "show configuration" for configuration details.
+For bug reporting instructions, please see:
+<http://www.gnu.org/software/gdb/bugs/>.
+Find the GDB manual and other documentation resources online at:
+ <http://www.gnu.org/software/gdb/documentation/>.
+
+For help, type "help".
+Type "apropos word" to search for commands related to "word".
+(gdb) source esp32c3.gpb # Load gdb script
+0x3fca8c30 in __stack_start__ ()
+(gdb)
+```
## Environment construction and compilation
diff --git a/bsp/ESP32_C3/README_ZH.md b/bsp/ESP32_C3/README_ZH.md
index 56ed76f71a..90cc449d62 100644
--- a/bsp/ESP32_C3/README_ZH.md
+++ b/bsp/ESP32_C3/README_ZH.md
@@ -49,6 +49,53 @@
| GPIO | 支持 | |
| UART | 支持 | 使用LUATOS_ESP32C3开发板需要在UART0_TX和UART0_RX连接串口转USB芯片(如CP2102)|
| JTAG调试 | 支持 | ESP32C3采用USB方式和PC链接的开发板可以调试 |
+| WIFI | 部分支持 | 目前存在一些问题,例如不能在ISR中使用`rt_mq_recive`等,还在尝试解决中 |
+| BLE | 部分支持 | 目前存在一些问题,例如`NimBLE`启动一段时间后`PC`和`SP`指针相同导致运行错误 |
+| GDBStub | 支持 | 通过开启`BSP_ENABLE_GDBSTUB`开关即可使用ESP-IDF所提供的GDB,其会在芯片出错后进入GDB模式 |
+
+注:
+
+1、WIFI和BLE不能同时启用,在使用BLE驱动时注意在`menuconfig`中关闭`RT_USING_WIFI`和`LWIP`开关。另外由于个人能力有限且缺乏调试设备,WIFI和BLE驱动运行都有问题,如果可以解决联系我[[email protected]](mailto:[email protected]),本人感激不尽。
+
+2、BLE驱动仅支持`NimBLE`,并且由`esp-idf`中的`bluetooth`组件提供,使用BLE驱动可以参考`bsp/ESP32_C3/packages/ESP-IDF-latest/examples/bluetooth/nimble`下的样例程序,注意在调用`NimBLE`相关接口之前要调用`esp_timer_init()`函数初始化时钟驱动。
+
+一种运行BLE样例的方案是将样例程序加入到`scons`编译并在`bsp/ESP32_C3/main/main.c`中调用时钟初始化程序和样例程序入口。
+
+```c
+int main(void) {
+ ...
+#ifdef BSP_USING_BLE
+ esp_timer_init(); //调用时钟初始化程序
+ app_main(); //调用BLE样例程序入口
+#endif
+ ...
+}
+```
+
+3、关于GDBStub组件的使用,文档见[ESP-IDF关于GDBStub官方文档](https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32c3/api-guides/tools/idf-monitor.html?#gdbstub-gdb),目前个人提供了一个调试脚本`esp32c3.gdb`,具体使用方法如下。
+
+```sh
+wcx@tim  ~/rt-thread/bsp/ESP32_C3   esp32 ±  sudo riscv32-esp-elf-gdb # 进入gdb调试
+GNU gdb (crosstool-NG esp-2022r1-RC1) 9.2.90.20200913-git
+Copyright (C) 2020 Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+Type "show copying" and "show warranty" for details.
+This GDB was configured as "--host=x86_64-build_pc-linux-gnu --target=riscv32-esp-elf".
+Type "show configuration" for configuration details.
+For bug reporting instructions, please see:
+<http://www.gnu.org/software/gdb/bugs/>.
+Find the GDB manual and other documentation resources online at:
+ <http://www.gnu.org/software/gdb/documentation/>.
+
+For help, type "help".
+Type "apropos word" to search for commands related to "word".
+(gdb) source esp32c3.gpb # 加载gdb脚本
+0x3fca8c30 in __stack_start__ ()
+(gdb)
+```
+
## 环境搭建及编译
diff --git a/bsp/ESP32_C3/builtin_imgs/partition-table.bin b/bsp/ESP32_C3/builtin_imgs/partition-table.bin
index b8fa03b4b3..0dc4a341ac 100644
--- a/bsp/ESP32_C3/builtin_imgs/partition-table.bin
+++ b/bsp/ESP32_C3/builtin_imgs/partition-table.bin
Binary files differ
diff --git a/bsp/ESP32_C3/drivers/Kconfig b/bsp/ESP32_C3/drivers/Kconfig
index 08308c1775..d50ff9f7bb 100644
--- a/bsp/ESP32_C3/drivers/Kconfig
+++ b/bsp/ESP32_C3/drivers/Kconfig
@@ -66,8 +66,22 @@ menu "On-chip Peripheral Drivers"
bool "Enable I2C0"
select RT_USING_I2C
default n
+
+ config BSP_USING_WIFI
+ bool "Enable WIFI"
+ select RT_USING_WIFI
+ default n
+
+ config BSP_USING_BLE
+ bool "Enable BLE"
+ default n
+
endmenu
+config BSP_ENABLE_GDBSTUB
+ bool "Enable ESP_GDBSTUB compontent"
+ default n
+
endmenu
diff --git a/bsp/ESP32_C3/drivers/drv_wifi.c b/bsp/ESP32_C3/drivers/drv_wifi.c
new file mode 100644
index 0000000000..61b643ed8c
--- /dev/null
+++ b/bsp/ESP32_C3/drivers/drv_wifi.c
@@ -0,0 +1,360 @@
+/*
+ * Copyright (c) 2019 Winner Microelectronics Co., Ltd.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2023-07-25 WCX1024979076 1st version
+ */
+
+#include <rtthread.h>
+#include <string.h>
+#include <rtdevice.h>
+
+#ifdef RT_USING_WIFI
+#include "drv_wifi.h"
+#include "esp_system.h"
+#include "esp_wifi.h"
+#include "esp_event.h"
+#include "esp_log.h"
+#include "esp_timer.h"
+#include "nvs_flash.h"
+#include "esp_private/wifi.h"
+
+#define DBG_LEVEL DBG_LOG
+#define LOG_TAG "DRV.WIFI"
+#include <rtdbg.h>
+
+#define MAX_ADDR_LEN (6)
+
+struct drv_wifi
+{
+ struct rt_wlan_device *wlan;
+ wifi_interface_t wifi_if;
+ rt_uint8_t dev_addr[MAX_ADDR_LEN];
+};
+
+static const struct rt_wlan_dev_ops ops;
+static struct drv_wifi wifi_sta;
+static struct drv_wifi wifi_ap;
+
+#define EXAMPLE_ESP_MAXIMUM_RETRY 5
+#define DEFAULT_SCAN_LIST_SIZE 3
+static int s_retry_num = 0;
+
+wifi_ap_record_t ap_info[DEFAULT_SCAN_LIST_SIZE];
+
+static rt_err_t drv_wlan_scan_stop(struct rt_wlan_device *wlan);
+
+static void wifi_event_handler(void *arg, esp_event_base_t event_base,
+ int32_t event_id, void *event_data)
+{
+ if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_AP_START) {
+ rt_wlan_dev_indicate_event_handle(wifi_ap.wlan, RT_WLAN_DEV_EVT_AP_START, RT_NULL);
+ } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_AP_STOP) {
+ rt_wlan_dev_indicate_event_handle(wifi_ap.wlan, RT_WLAN_DEV_EVT_AP_STOP, RT_NULL);
+ } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_AP_STACONNECTED) {
+ wifi_event_ap_staconnected_t *event = (wifi_event_ap_staconnected_t *) event_data;
+ rt_wlan_dev_indicate_event_handle(wifi_ap.wlan, RT_WLAN_DEV_EVT_AP_ASSOCIATED, RT_NULL);
+ } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_AP_STADISCONNECTED) {
+ wifi_event_ap_stadisconnected_t *event = (wifi_event_ap_stadisconnected_t *) event_data;
+ rt_wlan_dev_indicate_event_handle(wifi_ap.wlan, RT_WLAN_DEV_EVT_AP_DISASSOCIATED, RT_NULL);
+ } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_START) {
+ esp_wifi_connect();
+ } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_CONNECTED) {
+ rt_wlan_dev_indicate_event_handle(wifi_sta.wlan, RT_WLAN_DEV_EVT_CONNECT, RT_NULL);
+ } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_DISCONNECTED) {
+ if (s_retry_num < EXAMPLE_ESP_MAXIMUM_RETRY) {
+ esp_wifi_connect();
+ s_retry_num++;
+ } else {
+ rt_wlan_dev_indicate_event_handle(wifi_sta.wlan, RT_WLAN_DEV_EVT_CONNECT_FAIL, RT_NULL);
+ }
+ } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_SCAN_DONE) {
+ drv_wlan_scan_stop(RT_NULL);
+ }
+}
+
+static esp_err_t wifi_sta_receive(void *buffer, uint16_t len, void *eb)
+{
+ rt_wlan_dev_report_data(wifi_sta.wlan, buffer, len);
+ return RT_EOK;
+}
+
+static esp_err_t wifi_ap_receive(void *buffer, uint16_t len, void *eb)
+{
+ rt_wlan_dev_report_data(wifi_ap.wlan, buffer, len);
+ return RT_EOK;
+}
+
+void wifi_init_sta(void)
+{
+}
+
+void wifi_init_softap(void)
+{
+}
+
+/* Initialize Wi-Fi as sta and set scan method */
+static rt_err_t drv_wlan_scan(struct rt_wlan_device *wlan, struct rt_scan_info *scan_info)
+{
+ ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA));
+ ESP_ERROR_CHECK(esp_wifi_start());
+ esp_wifi_scan_start(NULL, false);
+}
+
+static rt_err_t drv_wlan_init(struct rt_wlan_device *wlan)
+{
+ // 初始化时钟以及事件处理
+ esp_timer_init();
+ esp_event_loop_create_default();
+
+ wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
+ ESP_ERROR_CHECK(esp_wifi_init(&cfg));
+
+ esp_event_handler_instance_t instance_any_id;
+ ESP_ERROR_CHECK(esp_event_handler_instance_register(WIFI_EVENT,
+ ESP_EVENT_ANY_ID,
+ &wifi_event_handler,
+ NULL,
+ &instance_any_id));
+
+ // 注册收到内容回调
+ ESP_ERROR_CHECK(esp_wifi_internal_reg_rxcb(WIFI_IF_STA, wifi_sta_receive));
+ ESP_ERROR_CHECK(esp_wifi_internal_reg_rxcb(WIFI_IF_AP, wifi_ap_receive));
+
+ return RT_EOK;
+}
+
+static rt_err_t drv_wlan_mode(struct rt_wlan_device *wlan, rt_wlan_mode_t mode)
+{
+ if (mode == RT_WLAN_STATION) {
+ wifi_init_sta();
+ } else {
+ wifi_init_softap();
+ }
+ return RT_EOK;
+}
+
+
+static rt_err_t drv_wlan_join(struct rt_wlan_device *wlan, struct rt_sta_info *sta_info)
+{
+ wifi_config_t wifi_config = {
+ .sta = {
+ .ssid = "",
+ .password = "",
+ /* Authmode threshold resets to WPA2 as default if password matches WPA2 standards (pasword len => 8).
+ * If you want to connect the device to deprecated WEP/WPA networks, Please set the threshold value
+ * to WIFI_AUTH_WEP/WIFI_AUTH_WPA_PSK and set the password with length and format matching to
+ * WIFI_AUTH_WEP/WIFI_AUTH_WPA_PSK standards.
+ */
+ .threshold.authmode = WIFI_AUTH_WPA_WPA2_PSK,
+ .sae_pwe_h2e = WPA3_SAE_PWE_BOTH,
+ },
+ };
+ rt_memcpy(wifi_config.sta.ssid, sta_info->ssid.val, sta_info->ssid.len);
+ rt_memcpy(wifi_config.sta.password, sta_info->key.val, sta_info->key.len);
+ ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA));
+ ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_STA, &wifi_config));
+ ESP_ERROR_CHECK(esp_wifi_start());
+ return RT_EOK;
+}
+
+static rt_err_t drv_wlan_softap(struct rt_wlan_device *wlan, struct rt_ap_info *ap_info)
+{
+ wifi_config_t wifi_config = {
+ .ap = {
+ .ssid = "",
+ .ssid_len = 0,
+ .channel = 3,
+ .password = "",
+ .max_connection = 3,
+ .authmode = WIFI_AUTH_WPA_WPA2_PSK,
+ .pmf_cfg = {
+ .required = false,
+ },
+ },
+ };
+ rt_memcpy(wifi_config.ap.ssid, ap_info->ssid.val, ap_info->ssid.len);
+ rt_memcpy(wifi_config.ap.password, ap_info->key.val, ap_info->key.len);
+ wifi_config.ap.ssid_len = ap_info->ssid.len;
+ ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_AP));
+ ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_AP, &wifi_config));
+ ESP_ERROR_CHECK(esp_wifi_start());
+
+ drv_wlan_scan_stop(RT_NULL);
+ return RT_EOK;
+}
+
+static rt_err_t drv_wlan_disconnect(struct rt_wlan_device *wlan)
+{
+ ESP_ERROR_CHECK(esp_wifi_disconnect());
+ return RT_EOK;
+}
+
+static rt_err_t drv_wlan_ap_stop(struct rt_wlan_device *wlan)
+{
+ return RT_EOK;
+}
+
+static rt_err_t drv_wlan_ap_deauth(struct rt_wlan_device *wlan, rt_uint8_t mac[])
+{
+ return RT_EOK;
+}
+
+static rt_err_t drv_wlan_scan_stop(struct rt_wlan_device *wlan)
+{
+ struct rt_wlan_info wlan_info;
+ struct rt_wlan_buff buff;
+ uint16_t number = DEFAULT_SCAN_LIST_SIZE;
+ uint16_t ap_count = 0;
+
+ memset(ap_info, 0, sizeof(ap_info));
+
+ ESP_ERROR_CHECK(esp_wifi_scan_get_ap_records(&number, ap_info));
+ ESP_ERROR_CHECK(esp_wifi_scan_get_ap_num(&ap_count));
+ for (int i = 0; (i < DEFAULT_SCAN_LIST_SIZE) && (i < ap_count); i++) {
+ rt_memset(&wlan_info, 0, sizeof(wlan_info));
+ rt_memcpy(&wlan_info.bssid[0], ap_info[i].bssid, 6);
+ rt_memcpy(wlan_info.ssid.val, ap_info[i].ssid , strlen(ap_info[i].ssid));
+
+ wlan_info.ssid.len = strlen(ap_info[i].ssid);
+ wlan_info.hidden = 0;
+ wlan_info.channel = (rt_int16_t)ap_info[i].primary;
+ wlan_info.rssi = -(char)(0x100 - ap_info[i].rssi);
+ wlan_info.band = RT_802_11_BAND_2_4GHZ;
+ wlan_info.security = SECURITY_UNKNOWN;
+
+ buff.data = &wlan_info;
+ buff.len = sizeof(wlan_info);
+ rt_wlan_dev_indicate_event_handle(wifi_sta.wlan, RT_WLAN_DEV_EVT_SCAN_REPORT, &buff);
+ }
+ esp_wifi_scan_stop();
+ return RT_EOK;
+}
+
+static int drv_wlan_get_rssi(struct rt_wlan_device *wlan)
+{
+ return 0;
+}
+
+static rt_err_t drv_wlan_set_powersave(struct rt_wlan_device *wlan, int level)
+{
+ return RT_EOK;
+}
+
+static int drv_wlan_get_powersave(struct rt_wlan_device *wlan)
+{
+ return 0;
+}
+
+static rt_err_t drv_wlan_cfg_promisc(struct rt_wlan_device *wlan, rt_bool_t start)
+{
+ return RT_EOK;
+}
+
+static rt_err_t drv_wlan_cfg_filter(struct rt_wlan_device *wlan, struct rt_wlan_filter *filter)
+{
+ return -RT_EINVAL;/* not support */
+}
+
+static rt_err_t drv_wlan_set_channel(struct rt_wlan_device *wlan, int channel)
+{
+ return RT_EOK;
+}
+
+static int drv_wlan_get_channel(struct rt_wlan_device *wlan)
+{
+ return 0;
+}
+
+static rt_err_t drv_wlan_set_country(struct rt_wlan_device *wlan, rt_country_code_t country_code)
+{
+ return RT_EOK;
+}
+
+static rt_country_code_t drv_wlan_get_country(struct rt_wlan_device *wlan)
+{
+ return 0; //RT_EOK;
+}
+
+static rt_err_t drv_wlan_set_mac(struct rt_wlan_device *wlan, rt_uint8_t mac[])
+{
+ return RT_EOK;
+}
+
+static rt_err_t drv_wlan_get_mac(struct rt_wlan_device *wlan, rt_uint8_t mac[])
+{
+ return RT_EOK;
+}
+
+static int drv_wlan_recv(struct rt_wlan_device *wlan, void *buff, int len)
+{
+ return RT_EOK;
+}
+
+static int drv_wlan_send(struct rt_wlan_device *wlan, void *buff, int len)
+{
+ struct drv_wifi* wifi = wlan->user_data;
+ esp_wifi_internal_tx(wifi->wifi_if, buff, len);
+ return RT_EOK;
+}
+
+static const struct rt_wlan_dev_ops ops =
+{
+ .wlan_init = drv_wlan_init,
+ .wlan_mode = drv_wlan_mode,
+ .wlan_scan = drv_wlan_scan,
+ .wlan_join = drv_wlan_join,
+ .wlan_softap = drv_wlan_softap,
+ .wlan_disconnect = drv_wlan_disconnect,
+ .wlan_ap_stop = drv_wlan_ap_stop,
+ .wlan_ap_deauth = drv_wlan_ap_deauth,
+ .wlan_scan_stop = drv_wlan_scan_stop,
+ .wlan_get_rssi = drv_wlan_get_rssi,
+ .wlan_set_powersave = drv_wlan_set_powersave,
+ .wlan_get_powersave = drv_wlan_get_powersave,
+ .wlan_cfg_promisc = drv_wlan_cfg_promisc,
+ .wlan_cfg_filter = drv_wlan_cfg_filter,
+ .wlan_set_channel = drv_wlan_set_channel,
+ .wlan_get_channel = drv_wlan_get_channel,
+ .wlan_set_country = drv_wlan_set_country,
+ .wlan_get_country = drv_wlan_get_country,
+ .wlan_set_mac = drv_wlan_set_mac,
+ .wlan_get_mac = drv_wlan_get_mac,
+ .wlan_recv = drv_wlan_recv,
+ .wlan_send = drv_wlan_send,
+};
+
+int rt_hw_wifi_init(void)
+{
+ // 初始化nvs_flash
+ esp_err_t esp_ret = nvs_flash_init();
+
+ if (esp_ret == ESP_ERR_NVS_NO_FREE_PAGES || esp_ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
+ ESP_ERROR_CHECK(nvs_flash_erase());
+ esp_ret = nvs_flash_init();
+ }
+ ESP_ERROR_CHECK(esp_ret);
+
+ // 向系统注册
+ static struct rt_wlan_device wlan;
+ static struct rt_wlan_device wlan2;
+
+ rt_memset(&wifi_sta, 0, sizeof(wifi_sta));
+ wifi_sta.wifi_if = WIFI_IF_STA;
+ rt_err_t ret = rt_wlan_dev_register(&wlan, RT_WLAN_DEVICE_STA_NAME, &ops, 0, &wifi_sta);
+ wifi_sta.wlan = &wlan;
+
+ rt_memset(&wifi_ap, 0, sizeof(wifi_ap));
+ wifi_ap.wifi_if = WIFI_IF_AP;
+ ret |= rt_wlan_dev_register(&wlan2, RT_WLAN_DEVICE_AP_NAME, &ops, 0, &wifi_ap);
+ wifi_ap.wlan = &wlan2;
+
+ return ret;
+}
+
+INIT_DEVICE_EXPORT(rt_hw_wifi_init);
+
+#endif /* RT_USING_WIFI */
diff --git a/bsp/ESP32_C3/drivers/drv_wifi.h b/bsp/ESP32_C3/drivers/drv_wifi.h
new file mode 100644
index 0000000000..42b6e0b55a
--- /dev/null
+++ b/bsp/ESP32_C3/drivers/drv_wifi.h
@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) 2019 Winner Microelectronics Co., Ltd.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2023-07-25 WCX1024979076 1st version
+ */
+
+#ifndef __DRV_WIFI_H__
+#define __DRV_WIFI_H__
+
+#ifdef RT_USING_WIFI
+int rt_hw_wifi_init(void);
+#endif /* RT_USING_WIFI */
+
+#endif /* __DRV_WIFI_H__ */
diff --git a/bsp/ESP32_C3/drivers/sdkconfig.h b/bsp/ESP32_C3/drivers/sdkconfig.h
index 95f330a2bd..5006d687d4 100644
--- a/bsp/ESP32_C3/drivers/sdkconfig.h
+++ b/bsp/ESP32_C3/drivers/sdkconfig.h
@@ -2,6 +2,7 @@
* Automatically generated file. DO NOT EDIT.
* Espressif IoT Development Framework (ESP-IDF) Configuration Header
*/
+#include "rtconfig.h"
#pragma once
#define CONFIG_SOC_ADC_SUPPORTED 1
#define CONFIG_SOC_DEDICATED_GPIO_SUPPORTED 1
@@ -245,8 +246,8 @@
#define CONFIG_ESPTOOLPY_FLASHMODE "dio"
#define CONFIG_ESPTOOLPY_FLASHFREQ_80M 1
#define CONFIG_ESPTOOLPY_FLASHFREQ "80m"
-#define CONFIG_ESPTOOLPY_FLASHSIZE_4MB 1
-#define CONFIG_ESPTOOLPY_FLASHSIZE "4MB"
+#define CONFIG_ESPTOOLPY_FLASHSIZE_2MB 1
+#define CONFIG_ESPTOOLPY_FLASHSIZE "2MB"
#define CONFIG_ESPTOOLPY_BEFORE_RESET 1
#define CONFIG_ESPTOOLPY_BEFORE "default_reset"
#define CONFIG_ESPTOOLPY_AFTER_RESET 1
@@ -257,24 +258,131 @@
#define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp.csv"
#define CONFIG_PARTITION_TABLE_OFFSET 0x8000
#define CONFIG_PARTITION_TABLE_MD5 1
+#if defined(BSP_USING_WIFI) || defined(BSP_USING_BLE)
+#define CONFIG_ESP_WIFI_SSID "myssid"
+#define CONFIG_ESP_WIFI_PASSWORD "mypassword"
+#define CONFIG_ESP_MAXIMUM_RETRY 5
+#define CONFIG_ESP_WIFI_AUTH_WPA2_PSK 1
+#endif
#define CONFIG_COMPILER_OPTIMIZATION_DEFAULT 1
#define CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE 1
#define CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB 1
#define CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL 2
#define CONFIG_COMPILER_HIDE_PATHS_MACROS 1
#define CONFIG_COMPILER_STACK_CHECK_MODE_NONE 1
+#if defined(BSP_USING_WIFI) || defined(BSP_USING_BLE)
+#define CONFIG_APPTRACE_DEST_NONE 1
+#define CONFIG_APPTRACE_DEST_UART_NONE 1
+#define CONFIG_APPTRACE_UART_TASK_PRIO 1
+#define CONFIG_APPTRACE_LOCK_ENABLE 1
+#endif
+#ifdef BSP_USING_BLE
+#define CONFIG_BT_ENABLED 1
+#define CONFIG_BT_NIMBLE_ENABLED 1
+#define CONFIG_BT_CONTROLLER_ENABLED 1
+#define CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_INTERNAL 1
+#define CONFIG_BT_NIMBLE_LOG_LEVEL_INFO 1
+#define CONFIG_BT_NIMBLE_LOG_LEVEL 1
+#define CONFIG_BT_NIMBLE_MAX_CONNECTIONS 3
+#define CONFIG_BT_NIMBLE_MAX_BONDS 3
+#define CONFIG_BT_NIMBLE_MAX_CCCDS 8
+#define CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM 0
+#define CONFIG_BT_NIMBLE_PINNED_TO_CORE 0
+#define CONFIG_BT_NIMBLE_HOST_TASK_STACK_SIZE 4096
+#define CONFIG_BT_NIMBLE_ROLE_CENTRAL 1
+#define CONFIG_BT_NIMBLE_ROLE_PERIPHERAL 1
+#define CONFIG_BT_NIMBLE_ROLE_BROADCASTER 1
+#define CONFIG_BT_NIMBLE_ROLE_OBSERVER 1
+#define CONFIG_BT_NIMBLE_SECURITY_ENABLE 1
+#define CONFIG_BT_NIMBLE_SM_LEGACY 1
+#define CONFIG_BT_NIMBLE_SM_SC 1
+#define CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION 1
+#define CONFIG_BT_NIMBLE_SVC_GAP_DEVICE_NAME "nimble"
+#define CONFIG_BT_NIMBLE_GAP_DEVICE_NAME_MAX_LEN 31
+#define CONFIG_BT_NIMBLE_ATT_PREFERRED_MTU 256
+#define CONFIG_BT_NIMBLE_SVC_GAP_APPEARANCE 0x0
+#define CONFIG_BT_NIMBLE_MSYS_1_BLOCK_COUNT 12
+#define CONFIG_BT_NIMBLE_MSYS_1_BLOCK_SIZE 256
+#define CONFIG_BT_NIMBLE_MSYS_2_BLOCK_COUNT 24
+#define CONFIG_BT_NIMBLE_MSYS_2_BLOCK_SIZE 320
+#define CONFIG_BT_NIMBLE_ACL_BUF_COUNT 24
+#define CONFIG_BT_NIMBLE_ACL_BUF_SIZE 255
+#define CONFIG_BT_NIMBLE_HCI_EVT_BUF_SIZE 70
+#define CONFIG_BT_NIMBLE_HCI_EVT_HI_BUF_COUNT 30
+#define CONFIG_BT_NIMBLE_HCI_EVT_LO_BUF_COUNT 8
+#define CONFIG_BT_NIMBLE_GATT_MAX_PROCS 4
+#define CONFIG_BT_NIMBLE_RPA_TIMEOUT 900
+#define CONFIG_BT_NIMBLE_CRYPTO_STACK_MBEDTLS 1
+#define CONFIG_BT_NIMBLE_HS_STOP_TIMEOUT_MS 2000
+#define CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT 1
+#define CONFIG_BT_NIMBLE_MAX_CONN_REATTEMPT 3
+#define CONFIG_BT_NIMBLE_50_FEATURE_SUPPORT 1
+#define CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_2M_PHY 1
+#define CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_CODED_PHY 1
+#define CONFIG_BT_NIMBLE_MAX_PERIODIC_SYNCS 0
+#define CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_DIS 1
+#define CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_EFF 0
+#define CONFIG_BT_NIMBLE_WHITELIST_SIZE 12
+#define CONFIG_BT_NIMBLE_USE_ESP_TIMER 1
+#define CONFIG_BT_NIMBLE_LEGACY_VHCI_ENABLE 1
+#define CONFIG_BT_CTRL_MODE_EFF 1
+#define CONFIG_BT_CTRL_BLE_MAX_ACT 10
+#define CONFIG_BT_CTRL_BLE_MAX_ACT_EFF 10
+#define CONFIG_BT_CTRL_BLE_STATIC_ACL_TX_BUF_NB 0
+#define CONFIG_BT_CTRL_PINNED_TO_CORE 0
+#define CONFIG_BT_CTRL_HCI_MODE_VHCI 1
+#define CONFIG_BT_CTRL_HCI_TL 1
+#define CONFIG_BT_CTRL_ADV_DUP_FILT_MAX 30
+#define CONFIG_BT_CTRL_HW_CCA_VAL 20
+#define CONFIG_BT_CTRL_HW_CCA_EFF 0
+#define CONFIG_BT_CTRL_CE_LENGTH_TYPE_ORIG 1
+#define CONFIG_BT_CTRL_CE_LENGTH_TYPE_EFF 0
+#define CONFIG_BT_CTRL_TX_ANTENNA_INDEX_0 1
+#define CONFIG_BT_CTRL_TX_ANTENNA_INDEX_EFF 0
+#define CONFIG_BT_CTRL_RX_ANTENNA_INDEX_0 1
+#define CONFIG_BT_CTRL_RX_ANTENNA_INDEX_EFF 0
+#define CONFIG_BT_CTRL_DFT_TX_POWER_LEVEL_P3 1
+#define CONFIG_BT_CTRL_DFT_TX_POWER_LEVEL_EFF 9
+#define CONFIG_BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_SUPP 1
+#define CONFIG_BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_NUM 100
+#define CONFIG_BT_CTRL_BLE_ADV_REPORT_DISCARD_THRSHOLD 20
+#define CONFIG_BT_CTRL_BLE_SCAN_DUPL 1
+#define CONFIG_BT_CTRL_SCAN_DUPL_TYPE_DEVICE 1
+#define CONFIG_BT_CTRL_SCAN_DUPL_TYPE 0
+#define CONFIG_BT_CTRL_SCAN_DUPL_CACHE_SIZE 100
+#define CONFIG_BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM_DIS 1
+#define CONFIG_BT_CTRL_COEX_PHY_CODED_TX_RX_TLIM_EFF 0
+#define CONFIG_BT_CTRL_SLEEP_MODE_EFF 0
+#define CONFIG_BT_CTRL_SLEEP_CLOCK_EFF 0
+#define CONFIG_BT_CTRL_HCI_TL_EFF 1
+#endif
#define CONFIG_SPI_MASTER_ISR_IN_IRAM 1
#define CONFIG_SPI_SLAVE_ISR_IN_IRAM 1
#define CONFIG_EFUSE_MAX_BLK_LEN 256
+#if defined(BSP_USING_WIFI) || defined(BSP_USING_BLE)
+#define CONFIG_ESP_TLS_USING_MBEDTLS 1
+#define CONFIG_ESP_TLS_USE_DS_PERIPHERAL 1
+#endif
#define CONFIG_ESP_ERR_TO_NAME_LOOKUP 1
+#if defined(BSP_USING_WIFI) || defined(BSP_USING_BLE)
+#define CONFIG_ETH_ENABLED 1
+#define CONFIG_ETH_USE_SPI_ETHERNET 1
+#define CONFIG_ESP_EVENT_POST_FROM_ISR 1
+#define CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR 1
+#define CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS 1
+#define CONFIG_HTTPD_MAX_REQ_HDR_LEN 512
+#define CONFIG_HTTPD_MAX_URI_LEN 512
+#define CONFIG_HTTPD_ERR_RESP_NO_DELAY 1
+#define CONFIG_HTTPD_PURGE_BUF_LEN 32
+#endif
#define CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA 1
#define CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP 1
#define CONFIG_ESP_MAC_ADDR_UNIVERSE_BT 1
#define CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH 1
#define CONFIG_ESP32C3_UNIVERSAL_MAC_ADDRESSES_FOUR 1
#define CONFIG_ESP32C3_UNIVERSAL_MAC_ADDRESSES 4
-#define CONFIG_ESP_SLEEP_POWER_DOWN_FLASH 1
#define CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND 1
+#define CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND 1
#define CONFIG_RTC_CLK_SRC_INT_RC 1
#define CONFIG_RTC_CLK_CAL_CYCLES 1024
#define CONFIG_RTC_CLOCK_BBPLL_POWER_ON_WITH_USB 1
@@ -285,13 +393,30 @@
#define CONFIG_ESP32C3_REV_MIN 3
#define CONFIG_XTAL_FREQ_40 1
#define CONFIG_XTAL_FREQ 40
+#if defined(BSP_USING_WIFI) || defined(BSP_USING_BLE)
+#define CONFIG_LCD_PANEL_IO_FORMAT_BUF_SIZE 32
+#define CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL 120
+#define CONFIG_ESP_NETIF_TCPIP_LWIP 1
+#define CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE 1
+#define CONFIG_ESP_PHY_MAX_WIFI_TX_POWER 20
+#define CONFIG_ESP_PHY_MAX_TX_POWER 20
+#define CONFIG_ESP_PHY_REDUCE_TX_POWER 1
+#define CONFIG_ESP_PHY_ENABLE_USB 1
+#endif
#define CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP 1
#define CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160 1
#define CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ 160
+#ifdef BSP_ENABLE_GDBSTUB
+#define CONFIG_ESP_SYSTEM_PANIC_GDBSTUB 1
+#else
#define CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT 1
+#endif
#define CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE 1
#define CONFIG_ESP_SYSTEM_RTC_FAST_MEM_AS_HEAP_DEPCHECK 1
#define CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP 1
+#if defined(BSP_USING_WIFI) || defined(BSP_USING_BLE)
+#define CONFIG_ESP_SYSTEM_USE_EH_FRAME 1
+#endif
#define CONFIG_ESP_SYSTEM_MEMPROT_FEATURE 1
#define CONFIG_ESP_SYSTEM_MEMPROT_FEATURE_LOCK 1
#define CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE 32
@@ -310,14 +435,47 @@
#define CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7 1
#define CONFIG_ESP_BROWNOUT_DET_LVL 7
#define CONFIG_ESP_SYSTEM_BROWNOUT_INTR 1
-#define CONFIG_ESP_IPC_TASK_STACK_SIZE 1536
+#if defined(BSP_USING_WIFI) || defined(BSP_USING_BLE)
+#define CONFIG_ESP_IPC_TASK_STACK_SIZE 1024
+#endif
#define CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER 1
#define CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER 1
#define CONFIG_ESP_TIMER_TASK_STACK_SIZE 3584
#define CONFIG_ESP_TIMER_INTERRUPT_LEVEL 1
#define CONFIG_ESP_TIMER_IMPL_SYSTIMER 1
+#if defined(BSP_USING_WIFI) || defined(BSP_USING_BLE)
+#define CONFIG_ESP32_WIFI_ENABLED 1
+#define CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM 10
+#define CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM 32
+#define CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER 1
+#define CONFIG_ESP32_WIFI_TX_BUFFER_TYPE 1
+#define CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM 32
+#define CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED 1
+#define CONFIG_ESP32_WIFI_TX_BA_WIN 6
+#define CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED 1
+#define CONFIG_ESP32_WIFI_RX_BA_WIN 6
+#define CONFIG_ESP32_WIFI_NVS_ENABLED 1
+#define CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN 752
+#define CONFIG_ESP32_WIFI_MGMT_SBUF_NUM 32
+#define CONFIG_ESP32_WIFI_IRAM_OPT 1
+#define CONFIG_ESP32_WIFI_RX_IRAM_OPT 1
+#define CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE 1
+#define CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA 1
+#define CONFIG_ESP_WIFI_SOFTAP_SUPPORT 1
+#define CONFIG_ESP_COREDUMP_ENABLE_TO_NONE 1
+#define CONFIG_FATFS_VOLUME_COUNT 2
+#define CONFIG_FATFS_SECTOR_4096 1
+#define CONFIG_FATFS_SECTORS_PER_CLUSTER_1 1
+#define CONFIG_FATFS_CODEPAGE_437 1
+#define CONFIG_FATFS_AUTO_TYPE 1
+#define CONFIG_FATFS_CODEPAGE 437
+#define CONFIG_FATFS_LFN_NONE 1
+#define CONFIG_FATFS_FS_LOCK 0
+#define CONFIG_FATFS_TIMEOUT_MS 10000
+#define CONFIG_FATFS_PER_FILE_CACHE 1
+#endif
#define CONFIG_FREERTOS_UNICORE 1
-#define CONFIG_FREERTOS_HZ 1000
+#define CONFIG_FREERTOS_HZ 100
#define CONFIG_FREERTOS_OPTIMIZED_SCHEDULER 1
#define CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE 1
#define CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS 1
@@ -347,14 +505,74 @@
#define CONFIG_LOG_MAXIMUM_LEVEL 3
#define CONFIG_LOG_COLORS 1
#define CONFIG_LOG_TIMESTAMP_SOURCE_RTOS 1
+#if defined(BSP_USING_WIFI) || defined(BSP_USING_BLE)
+#define CONFIG_LWIP_LOCAL_HOSTNAME "espressif"
+#define CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES 1
+#define CONFIG_LWIP_TIMERS_ONDEMAND 1
+#define CONFIG_LWIP_MAX_SOCKETS 10
+#define CONFIG_LWIP_SO_REUSE 1
+#define CONFIG_LWIP_SO_REUSE_RXTOALL 1
+#define CONFIG_LWIP_IP4_FRAG 1
+#define CONFIG_LWIP_IP6_FRAG 1
+#define CONFIG_LWIP_ESP_GRATUITOUS_ARP 1
+#define CONFIG_LWIP_GARP_TMR_INTERVAL 60
+#define CONFIG_LWIP_TCPIP_RECVMBOX_SIZE 32
+#define CONFIG_LWIP_DHCP_DOES_ARP_CHECK 1
+#define CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID 1
+#define CONFIG_LWIP_DHCP_OPTIONS_LEN 68
+#define CONFIG_LWIP_NUM_NETIF_CLIENT_DATA 0
+#define CONFIG_LWIP_DHCPS 1
+#define CONFIG_LWIP_DHCPS_LEASE_UNIT 60
+#define CONFIG_LWIP_DHCPS_MAX_STATION_NUM 8
+#define CONFIG_LWIP_IPV6 1
+#define CONFIG_LWIP_IPV6_NUM_ADDRESSES 3
+#define CONFIG_LWIP_NETIF_LOOPBACK 1
+#define CONFIG_LWIP_LOOPBACK_MAX_PBUFS 8
+#define CONFIG_LWIP_MAX_ACTIVE_TCP 16
+#define CONFIG_LWIP_MAX_LISTENING_TCP 16
+#define CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION 1
+#define CONFIG_LWIP_TCP_MAXRTX 12
+#define CONFIG_LWIP_TCP_SYNMAXRTX 12
+#define CONFIG_LWIP_TCP_MSS 1440
+#define CONFIG_LWIP_TCP_TMR_INTERVAL 250
+#define CONFIG_LWIP_TCP_MSL 60000
+#define CONFIG_LWIP_TCP_SND_BUF_DEFAULT 5744
+#define CONFIG_LWIP_TCP_WND_DEFAULT 5744
+#define CONFIG_LWIP_TCP_RECVMBOX_SIZE 6
+#define CONFIG_LWIP_TCP_QUEUE_OOSEQ 1
+#define CONFIG_LWIP_TCP_OVERSIZE_MSS 1
+#define CONFIG_LWIP_TCP_RTO_TIME 1500
+#define CONFIG_LWIP_MAX_UDP_PCBS 16
+#define CONFIG_LWIP_UDP_RECVMBOX_SIZE 6
+#define CONFIG_LWIP_CHECKSUM_CHECK_ICMP 1
+#define CONFIG_LWIP_TCPIP_TASK_STACK_SIZE 3072
+#define CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY 1
+#define CONFIG_LWIP_TCPIP_TASK_AFFINITY 0x7FFFFFFF
+#define CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE 3
+#define CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS 5
+#define CONFIG_LWIP_ICMP 1
+#define CONFIG_LWIP_MAX_RAW_PCBS 16
+#define CONFIG_LWIP_SNTP_MAX_SERVERS 1
+#define CONFIG_LWIP_SNTP_UPDATE_DELAY 3600000
+#define CONFIG_LWIP_BRIDGEIF_MAX_PORTS 7
+#define CONFIG_LWIP_ESP_LWIP_ASSERT 1
+#define CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT 1
+#define CONFIG_LWIP_HOOK_IP6_ROUTE_NONE 1
+#define CONFIG_LWIP_HOOK_ND6_GET_GW_NONE 1
+#define CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE 1
+#define CONFIG_LWIP_HOOK_IP6_INPUT_NONE 1
+#endif
#define CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC 1
#define CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN 1
#define CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN 16384
#define CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN 4096
+#define CONFIG_MBEDTLS_ECDH_LEGACY_CONTEXT 1
#define CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE 1
#define CONFIG_MBEDTLS_CERTIFICATE_BUNDLE 1
#define CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL 1
#define CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS 200
+#define CONFIG_MBEDTLS_ECP_RESTARTABLE 1
+#define CONFIG_MBEDTLS_CMAC_C 1
#define CONFIG_MBEDTLS_HARDWARE_AES 1
#define CONFIG_MBEDTLS_AES_USE_INTERRUPT 1
#define CONFIG_MBEDTLS_HARDWARE_MPI 1
@@ -406,6 +624,10 @@
#define CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF 1
#define CONFIG_NEWLIB_STDIN_LINE_ENDING_CR 1
#define CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT 1
+#if defined(BSP_USING_WIFI) || defined(BSP_USING_BLE)
+#define CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_0 1
+#define CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1 1
+#endif
#define CONFIG_PTHREAD_TASK_PRIO_DEFAULT 5
#define CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT 3072
#define CONFIG_PTHREAD_STACK_MIN 768
@@ -427,11 +649,47 @@
#define CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP 1
#define CONFIG_SPI_FLASH_SUPPORT_TH_CHIP 1
#define CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE 1
-
+#if defined(BSP_USING_WIFI) || defined(BSP_USING_BLE)
+#define CONFIG_SPIFFS_MAX_PARTITIONS 3
+#define CONFIG_SPIFFS_CACHE 1
+#define CONFIG_SPIFFS_CACHE_WR 1
+#define CONFIG_SPIFFS_PAGE_CHECK 1
+#define CONFIG_SPIFFS_GC_MAX_RUNS 10
+#define CONFIG_SPIFFS_PAGE_SIZE 256
+#define CONFIG_SPIFFS_OBJ_NAME_LEN 32
+#define CONFIG_SPIFFS_USE_MAGIC 1
+#define CONFIG_SPIFFS_USE_MAGIC_LENGTH 1
+#define CONFIG_SPIFFS_META_LENGTH 4
+#define CONFIG_SPIFFS_USE_MTIME 1
+#define CONFIG_WS_TRANSPORT 1
+#define CONFIG_WS_BUFFER_SIZE 1024
+#define CONFIG_UNITY_ENABLE_FLOAT 1
+#define CONFIG_UNITY_ENABLE_DOUBLE 1
+#define CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER 1
+#ifdef BSP_USING_BLE
+#define CONFIG_VFS_SUPPORT_IO 1
+#define CONFIG_VFS_SUPPORT_DIR 1
+#define CONFIG_VFS_SUPPORT_SELECT 1
+#define CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT 1
+#define CONFIG_VFS_SUPPORT_TERMIOS 1
+#define CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS 1
+#endif
+#define CONFIG_WL_SECTOR_SIZE_4096 1
+#define CONFIG_WL_SECTOR_SIZE 4096
+#define CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES 16
+#define CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT 30
+#define CONFIG_WIFI_PROV_BLE_FORCE_ENCRYPTION 1
+#define CONFIG_WPA_MBEDTLS_CRYPTO 1
+#define CONFIG_WPA_MBEDTLS_TLS_CLIENT 1
+#endif
/* List of deprecated options */
#define CONFIG_BROWNOUT_DET CONFIG_ESP_BROWNOUT_DET
#define CONFIG_BROWNOUT_DET_LVL CONFIG_ESP_BROWNOUT_DET_LVL
#define CONFIG_BROWNOUT_DET_LVL_SEL_7 CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7
+#if defined(BSP_USING_WIFI) || defined(BSP_USING_BLE)
+#define CONFIG_BT_NIMBLE_MSYS1_BLOCK_COUNT CONFIG_BT_NIMBLE_MSYS_1_BLOCK_COUNT
+#define CONFIG_BT_NIMBLE_TASK_STACK_SIZE CONFIG_BT_NIMBLE_HOST_TASK_STACK_SIZE
+#endif
#define CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG CONFIG_COMPILER_OPTIMIZATION_DEFAULT
#define CONFIG_CONSOLE_UART CONFIG_ESP_CONSOLE_UART
#define CONFIG_CONSOLE_UART_BAUDRATE CONFIG_ESP_CONSOLE_UART_BAUDRATE
@@ -440,6 +698,7 @@
#define CONFIG_ESP32C3_BROWNOUT_DET CONFIG_ESP_BROWNOUT_DET
#define CONFIG_ESP32C3_BROWNOUT_DET_LVL CONFIG_ESP_BROWNOUT_DET_LVL
#define CONFIG_ESP32C3_BROWNOUT_DET_LVL_SEL_7 CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7
+#define CONFIG_ESP32C3_DEBUG_OCDAWARE CONFIG_ESP_DEBUG_OCDAWARE
#define CONFIG_ESP32C3_DEFAULT_CPU_FREQ_160 CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160
#define CONFIG_ESP32C3_DEFAULT_CPU_FREQ_MHZ CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ
#define CONFIG_ESP32C3_LIGHTSLEEP_GPIO_RESET_WORKAROUND CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND
@@ -448,27 +707,94 @@
#define CONFIG_ESP32C3_RTC_CLK_CAL_CYCLES CONFIG_RTC_CLK_CAL_CYCLES
#define CONFIG_ESP32C3_RTC_CLK_SRC_INT_RC CONFIG_RTC_CLK_SRC_INT_RC
#define CONFIG_ESP32C3_TIME_SYSCALL_USE_RTC_SYSTIMER CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT
+#if defined(BSP_USING_WIFI) || defined(BSP_USING_BLE)
+#define CONFIG_ESP32_APPTRACE_DEST_NONE CONFIG_APPTRACE_DEST_NONE
+#define CONFIG_ESP32_APPTRACE_LOCK_ENABLE CONFIG_APPTRACE_LOCK_ENABLE
+#define CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE CONFIG_ESP_COREDUMP_ENABLE_TO_NONE
+#define CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE
+#define CONFIG_ESP32_PHY_MAX_TX_POWER CONFIG_ESP_PHY_MAX_TX_POWER
+#define CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER CONFIG_ESP_PHY_MAX_WIFI_TX_POWER
+#endif
#define CONFIG_ESP32_PTHREAD_STACK_MIN CONFIG_PTHREAD_STACK_MIN
#define CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT CONFIG_PTHREAD_TASK_CORE_DEFAULT
#define CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT CONFIG_PTHREAD_TASK_NAME_DEFAULT
#define CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT CONFIG_PTHREAD_TASK_PRIO_DEFAULT
#define CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT
-#define CONFIG_ESP_SYSTEM_PD_FLASH CONFIG_ESP_SLEEP_POWER_DOWN_FLASH
+#define CONFIG_ESP32_REDUCE_PHY_TX_POWER CONFIG_ESP_PHY_REDUCE_TX_POWER
+#define CONFIG_ESP_GRATUITOUS_ARP CONFIG_LWIP_ESP_GRATUITOUS_ARP
#define CONFIG_ESP_SYSTEM_PM_POWER_DOWN_CPU CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP
#define CONFIG_FLASHMODE_DIO CONFIG_ESPTOOLPY_FLASHMODE_DIO
+#define CONFIG_GARP_TMR_INTERVAL CONFIG_LWIP_GARP_TMR_INTERVAL
+#define CONFIG_INT_WDT CONFIG_ESP_INT_WDT
+#define CONFIG_INT_WDT_TIMEOUT_MS CONFIG_ESP_INT_WDT_TIMEOUT_MS
#define CONFIG_IPC_TASK_STACK_SIZE CONFIG_ESP_IPC_TASK_STACK_SIZE
#define CONFIG_LOG_BOOTLOADER_LEVEL CONFIG_BOOTLOADER_LOG_LEVEL
#define CONFIG_LOG_BOOTLOADER_LEVEL_INFO CONFIG_BOOTLOADER_LOG_LEVEL_INFO
#define CONFIG_MAIN_TASK_STACK_SIZE CONFIG_ESP_MAIN_TASK_STACK_SIZE
#define CONFIG_MONITOR_BAUD CONFIG_ESPTOOLPY_MONITOR_BAUD
+#ifdef BSP_USING_BLE
+#define CONFIG_NIMBLE_ACL_BUF_COUNT CONFIG_BT_NIMBLE_ACL_BUF_COUNT
+#define CONFIG_NIMBLE_ACL_BUF_SIZE CONFIG_BT_NIMBLE_ACL_BUF_SIZE
+#define CONFIG_NIMBLE_ATT_PREFERRED_MTU CONFIG_BT_NIMBLE_ATT_PREFERRED_MTU
+#define CONFIG_NIMBLE_CRYPTO_STACK_MBEDTLS CONFIG_BT_NIMBLE_CRYPTO_STACK_MBEDTLS
+#define CONFIG_NIMBLE_ENABLED CONFIG_BT_NIMBLE_ENABLED
+#define CONFIG_NIMBLE_GAP_DEVICE_NAME_MAX_LEN CONFIG_BT_NIMBLE_GAP_DEVICE_NAME_MAX_LEN
+#define CONFIG_NIMBLE_HCI_EVT_BUF_SIZE CONFIG_BT_NIMBLE_HCI_EVT_BUF_SIZE
+#define CONFIG_NIMBLE_HCI_EVT_HI_BUF_COUNT CONFIG_BT_NIMBLE_HCI_EVT_HI_BUF_COUNT
+#define CONFIG_NIMBLE_HCI_EVT_LO_BUF_COUNT CONFIG_BT_NIMBLE_HCI_EVT_LO_BUF_COUNT
+#define CONFIG_NIMBLE_L2CAP_COC_MAX_NUM CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM
+#define CONFIG_NIMBLE_MAX_BONDS CONFIG_BT_NIMBLE_MAX_BONDS
+#define CONFIG_NIMBLE_MAX_CCCDS CONFIG_BT_NIMBLE_MAX_CCCDS
+#define CONFIG_NIMBLE_MAX_CONNECTIONS CONFIG_BT_NIMBLE_MAX_CONNECTIONS
+#define CONFIG_NIMBLE_MEM_ALLOC_MODE_INTERNAL CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_INTERNAL
+#define CONFIG_NIMBLE_PINNED_TO_CORE CONFIG_BT_NIMBLE_PINNED_TO_CORE
+#define CONFIG_NIMBLE_ROLE_BROADCASTER CONFIG_BT_NIMBLE_ROLE_BROADCASTER
+#define CONFIG_NIMBLE_ROLE_CENTRAL CONFIG_BT_NIMBLE_ROLE_CENTRAL
+#define CONFIG_NIMBLE_ROLE_OBSERVER CONFIG_BT_NIMBLE_ROLE_OBSERVER
+#define CONFIG_NIMBLE_ROLE_PERIPHERAL CONFIG_BT_NIMBLE_ROLE_PERIPHERAL
+#define CONFIG_NIMBLE_RPA_TIMEOUT CONFIG_BT_NIMBLE_RPA_TIMEOUT
+#define CONFIG_NIMBLE_SM_LEGACY CONFIG_BT_NIMBLE_SM_LEGACY
+#define CONFIG_NIMBLE_SM_SC CONFIG_BT_NIMBLE_SM_SC
+#define CONFIG_NIMBLE_SVC_GAP_APPEARANCE CONFIG_BT_NIMBLE_SVC_GAP_APPEARANCE
+#define CONFIG_NIMBLE_SVC_GAP_DEVICE_NAME CONFIG_BT_NIMBLE_SVC_GAP_DEVICE_NAME
+#define CONFIG_NIMBLE_TASK_STACK_SIZE CONFIG_BT_NIMBLE_HOST_TASK_STACK_SIZE
+#endif
#define CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE
#define CONFIG_OPTIMIZATION_ASSERTION_LEVEL CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL
#define CONFIG_OPTIMIZATION_LEVEL_DEBUG CONFIG_COMPILER_OPTIMIZATION_DEFAULT
+#if defined(BSP_USING_WIFI) || defined(BSP_USING_BLE)
+#define CONFIG_POST_EVENTS_FROM_IRAM_ISR CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR
+#define CONFIG_POST_EVENTS_FROM_ISR CONFIG_ESP_EVENT_POST_FROM_ISR
+#define CONFIG_REDUCE_PHY_TX_POWER CONFIG_ESP_PHY_REDUCE_TX_POWER
+#define CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS
+#endif
#define CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS
#define CONFIG_STACK_CHECK_NONE CONFIG_COMPILER_STACK_CHECK_MODE_NONE
+#if defined(BSP_USING_WIFI) || defined(BSP_USING_BLE)
+#define CONFIG_SUPPORT_TERMIOS CONFIG_VFS_SUPPORT_TERMIOS
+#define CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT
+#endif
#define CONFIG_SYSTEM_EVENT_QUEUE_SIZE CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE
#define CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE
+#if defined(BSP_USING_WIFI) || defined(BSP_USING_BLE)
+#define CONFIG_TCPIP_RECVMBOX_SIZE CONFIG_LWIP_TCPIP_RECVMBOX_SIZE
+#define CONFIG_TCPIP_TASK_AFFINITY CONFIG_LWIP_TCPIP_TASK_AFFINITY
+#define CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY
+#define CONFIG_TCPIP_TASK_STACK_SIZE CONFIG_LWIP_TCPIP_TASK_STACK_SIZE
+#define CONFIG_TCP_MAXRTX CONFIG_LWIP_TCP_MAXRTX
+#define CONFIG_TCP_MSL CONFIG_LWIP_TCP_MSL
+#define CONFIG_TCP_MSS CONFIG_LWIP_TCP_MSS
+#define CONFIG_TCP_OVERSIZE_MSS CONFIG_LWIP_TCP_OVERSIZE_MSS
+#define CONFIG_TCP_QUEUE_OOSEQ CONFIG_LWIP_TCP_QUEUE_OOSEQ
+#define CONFIG_TCP_RECVMBOX_SIZE CONFIG_LWIP_TCP_RECVMBOX_SIZE
+#define CONFIG_TCP_SND_BUF_DEFAULT CONFIG_LWIP_TCP_SND_BUF_DEFAULT
+#define CONFIG_TCP_SYNMAXRTX CONFIG_LWIP_TCP_SYNMAXRTX
+#define CONFIG_TCP_WND_DEFAULT CONFIG_LWIP_TCP_WND_DEFAULT
+#endif
#define CONFIG_TIMER_QUEUE_LENGTH CONFIG_FREERTOS_TIMER_QUEUE_LENGTH
#define CONFIG_TIMER_TASK_PRIORITY CONFIG_FREERTOS_TIMER_TASK_PRIORITY
#define CONFIG_TIMER_TASK_STACK_DEPTH CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH
#define CONFIG_TIMER_TASK_STACK_SIZE CONFIG_ESP_TIMER_TASK_STACK_SIZE
+#if defined(BSP_USING_WIFI) || defined(BSP_USING_BLE)
+#define CONFIG_UDP_RECVMBOX_SIZE CONFIG_LWIP_UDP_RECVMBOX_SIZE
+#endif
diff --git a/bsp/ESP32_C3/esp32c3.gpb b/bsp/ESP32_C3/esp32c3.gpb
new file mode 100644
index 0000000000..3348872693
--- /dev/null
+++ b/bsp/ESP32_C3/esp32c3.gpb
@@ -0,0 +1,15 @@
+set remote hardware-breakpoint-limit 1
+set remote hardware-watchpoint-limit 1
+set remote interrupt-on-connect on
+set remote kill-packet off
+set remote symbol-lookup-packet off
+set remote verbose-resume-packet off
+mem 0x20000000 0x3fefffff ro cache
+mem 0x3ff00000 0x3fffffff rw
+mem 0x40000000 0x400fffff ro cache
+mem 0x40100000 0x4013ffff rw cache
+mem 0x40140000 0x5fffffff ro cache
+mem 0x60000000 0x60001fff rw
+set serial baud 115200
+file ./rtthread.elf
+target remote /dev/ttyACM0
diff --git a/bsp/ESP32_C3/idf_port/include/freertos/portmacro.h b/bsp/ESP32_C3/idf_port/include/freertos/portmacro.h
index e756a0b2db..875d4e9971 100644
--- a/bsp/ESP32_C3/idf_port/include/freertos/portmacro.h
+++ b/bsp/ESP32_C3/idf_port/include/freertos/portmacro.h
@@ -51,6 +51,7 @@
#include "esp_heap_caps.h"
#include "esp_system.h" /* required by esp_get_...() functions in portable.h. [refactor-todo] Update portable.h */
#include "esp_newlib.h"
+#include "rtthread.h"
/* [refactor-todo] These includes are not directly used in this file. They are kept into to prevent a breaking change. Remove these. */
#include <limits.h>
@@ -325,12 +326,8 @@ FORCE_INLINE_ATTR BaseType_t xPortGetCoreID(void)
FORCE_INLINE_ATTR bool xPortCanYield(void)
{
- uint32_t threshold = REG_READ(INTERRUPT_CORE0_CPU_INT_THRESH_REG);
- /* when enter critical code, FreeRTOS will mask threshold to RVHAL_EXCM_LEVEL
- * and exit critical code, will recover threshold value (1). so threshold <= 1
- * means not in critical code
- */
- return (threshold <= 1);
+ rt_base_t level = rt_interrupt_get_nest();
+ return (level == 0);
}
#define FREERTOS_PRIORITY_TO_RTTHREAD(priority) ( configMAX_PRIORITIES - 1 - ( priority ) )
diff --git a/bsp/ESP32_C3/idf_port/include/freertos/task_snapshot.h b/bsp/ESP32_C3/idf_port/include/freertos/task_snapshot.h
index 07849a8cd1..9238b9f5e7 100644
--- a/bsp/ESP32_C3/idf_port/include/freertos/task_snapshot.h
+++ b/bsp/ESP32_C3/idf_port/include/freertos/task_snapshot.h
@@ -38,7 +38,7 @@ typedef struct xTASK_SNAPSHOT
* - This function is only available when CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT is set to 1.
*
* @note This function should only be called when FreeRTOS is no longer running (e.g., during a panic) as this function
- * does not acquire any locks.
+ * does not acquire any locks.
* @param pxTask Handle of the previous task (or NULL on the first call of this function)
* @return TaskHandle_t Handle of the next task (or NULL when all tasks have been iterated over)
*/
@@ -51,7 +51,7 @@ TaskHandle_t pxTaskGetNext( TaskHandle_t pxTask );
* - This function is only available when CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT is set to 1.
*
* @note This function should only be called when FreeRTOS is no longer running (e.g., during a panic) as this function
- * does not acquire any locks.
+ * does not acquire any locks.
* @param[in] pxTask Task's handle
* @param[out] pxTaskSnapshot Snapshot of the task
* @return pdTRUE if operation was successful else pdFALSE
@@ -65,7 +65,7 @@ BaseType_t vTaskGetSnapshot( TaskHandle_t pxTask, TaskSnapshot_t *pxTaskSnapshot
* - This function is only available when CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT is set to 1.
*
* @note This function should only be called when FreeRTOS is no longer running (e.g., during a panic) as this function
- * does not acquire any locks.
+ * does not acquire any locks.
* @param[out] pxTaskSnapshotArray Array of TaskSnapshot_t structures filled by this function
* @param[in] uxArrayLength Length of the provided array
* @param[out] pxTCBSize Size of the a task's TCB structure
diff --git a/bsp/ESP32_C3/idf_port/ld/memory.ld b/bsp/ESP32_C3/idf_port/ld/memory.ld
index 1a7860f0df..073b63d42a 100644
--- a/bsp/ESP32_C3/idf_port/ld/memory.ld
+++ b/bsp/ESP32_C3/idf_port/ld/memory.ld
@@ -82,3 +82,5 @@ REGION_ALIAS("rtc_data_location", rtc_iram_seg );
*/
ASSERT(_flash_rodata_dummy_start == ORIGIN(default_rodata_seg),
".flash_rodata_dummy section must be placed at the beginning of the rodata segment.")
+ ASSERT ((__eh_frame_end > __eh_frame), "Error: eh_frame size is null!");
+ ASSERT ((__eh_frame_hdr_end > __eh_frame_hdr), "Error: eh_frame_hdr size is null!");
diff --git a/bsp/ESP32_C3/idf_port/ld/sections.ld b/bsp/ESP32_C3/idf_port/ld/sections.ld
index d464a8257e..ddb6f7d4e8 100644
--- a/bsp/ESP32_C3/idf_port/ld/sections.ld
+++ b/bsp/ESP32_C3/idf_port/ld/sections.ld
@@ -1,6 +1,6 @@
/* Automatically generated file; DO NOT EDIT */
/* Espressif IoT Development Framework Linker Script */
-/* Generated from: /workspaces/rt-thread/bsp/ESP32_C3/packages/ESP-IDF-latest/components/esp_system/ld/esp32c3/sections.ld.in */
+/* Generated from: /home/wcx/rt-thread/bsp/ESP32_C3/packages/ESP-IDF-latest/components/esp_system/ld/esp32c3/sections.ld.in */
/*
* SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
@@ -44,6 +44,9 @@ SECTIONS
. = ALIGN(4);
_rtc_force_fast_start = ABSOLUTE(.);
+ _coredump_rtc_fast_start = ABSOLUTE(.);
+ *(.rtc.fast.coredump .rtc.fast.coredump.*)
+ _coredump_rtc_fast_end = ABSOLUTE(.);
*(.rtc.force_fast .rtc.force_fast.*)
. = ALIGN(4) ;
@@ -60,6 +63,9 @@ SECTIONS
{
_rtc_data_start = ABSOLUTE(.);
+ _coredump_rtc_start = ABSOLUTE(.);
+ *(.rtc.coredump .rtc.coredump.*)
+ _coredump_rtc_end = ABSOLUTE(.);
*(.rtc.data .rtc.data.*)
*(.rtc.rodata .rtc.rodata.*)
@@ -137,6 +143,11 @@ SECTIONS
_iram_text_start = ABSOLUTE(.);
*(.iram1 .iram1.*)
+ *app_trace/app_trace.*(.literal .literal.* .text .text.*)
+ *app_trace/app_trace_util.*(.literal .literal.* .text .text.*)
+ *app_trace/port_uart.*(.literal .literal.* .text .text.*)
+ *esp_event/default_event_loop.*(.literal.esp_event_isr_post .text.esp_event_isr_post)
+ *esp_event/esp_event.*(.literal.esp_event_isr_post_to .text.esp_event_isr_post_to)
*esp_hw_support/cpu.*(.literal.esp_cpu_compare_and_set .text.esp_cpu_compare_and_set)
*esp_hw_support/cpu.*(.literal.esp_cpu_reset .text.esp_cpu_reset)
*esp_hw_support/cpu.*(.literal.esp_cpu_stall .text.esp_cpu_stall)
@@ -149,7 +160,7 @@ SECTIONS
*esp_hw_support/rtc_sleep.*(.literal .literal.* .text .text.*)
*esp_hw_support/rtc_time.*(.literal .literal.* .text .text.*)
*esp_hw_support/systimer.*(.literal .literal.* .text .text.*)
- *ringbuf.o(.literal .literal.* .text .text.*)
+ *esp_ringbuf/(.literal .literal.* .text .text.*)
*esp_rom/esp_rom_regi2c.*(.literal .literal.* .text .text.*)
*esp_rom/esp_rom_spiflash.*(.literal .literal.* .text .text.*)
*esp_rom/esp_rom_systimer.*(.literal .literal.* .text .text.*)
@@ -159,7 +170,7 @@ SECTIONS
*gcc/_divsf3.*(.literal .literal.* .text .text.*)
*gcc/lib2funcs.*(.literal .literal.* .text .text.*)
*gcc/save-restore.*(.literal .literal.* .text .text.*)
- *gcov.o(.literal .literal.* .text .text.*)
+ *gcov/(.literal .literal.* .text .text.*)
*hal/cache_hal.*(.literal .literal.* .text .text.*)
*hal/i2c_hal_iram.*(.literal .literal.* .text .text.*)
*hal/ledc_hal_iram.*(.literal .literal.* .text .text.*)
@@ -179,12 +190,20 @@ SECTIONS
*log/log_freertos.*(.literal.esp_log_impl_lock_timeout .text.esp_log_impl_lock_timeout)
*log/log_freertos.*(.literal.esp_log_impl_unlock .text.esp_log_impl_unlock)
*log/log_freertos.*(.literal.esp_log_timestamp .text.esp_log_timestamp)
+ *libnet80211.a:(.wifi0iram .wifi0iram.*)
+ *libnet80211.a:(.wifirxiram .wifirxiram.*)
+ *libnet80211.a:(.wifislprxiram .wifislprxiram.*)
*newlib/abort.*(.literal .literal.* .text .text.*)
*newlib/assert.*(.literal .literal.* .text .text.*)
*newlib/heap.*(.literal .literal.* .text .text.*)
*newlib/stdatomic.*(.literal .literal.* .text .text.*)
+ *libpp.a:(.wifi0iram .wifi0iram.*)
+ *libpp.a:(.wifiorslpiram .wifiorslpiram.*)
+ *libpp.a:(.wifirxiram .wifirxiram.*)
+ *libpp.a:(.wifislprxiram .wifislprxiram.*)
*riscv/interrupt.*(.literal .literal.* .text .text.*)
*riscv/vectors.*(.literal .literal.* .text .text.*)
+ *librtc.a:(.literal .literal.* .text .text.*)
*soc/lldesc.*(.literal .literal.* .text .text.*)
*spi_flash/flash_brownout_hook.*(.literal .literal.* .text .text.*)
*spi_flash/memspi_host_driver.*(.literal .literal.* .text .text.*)
@@ -195,7 +214,8 @@ SECTIONS
*spi_flash/spi_flash_chip_mxic.*(.literal .literal.* .text .text.*)
*spi_flash/spi_flash_chip_th.*(.literal .literal.* .text .text.*)
*spi_flash/spi_flash_chip_winbond.*(.literal .literal.* .text .text.*)
-
+ *kernel/src/*.*(.literal .literal.* .text .text.*)
+ *kernel/libcpu/risc-v/common/context_gcc.*(.literal .literal.* .text .text.*)
} > iram0_0_seg
/**
@@ -219,8 +239,22 @@ SECTIONS
*(.gnu.linkonce.s2.*)
*(.jcr)
- *(.data .data.*)
+ *(EXCLUDE_FILE(*bt/* *libbtdm_app.a *libnimble.a) .data EXCLUDE_FILE(*bt/* *libbtdm_app.a *libnimble.a) .data.*)
*(.dram1 .dram1.*)
+ _coredump_dram_start = ABSOLUTE(.);
+ *(.dram2.coredump .dram2.coredump.*)
+ _coredump_dram_end = ABSOLUTE(.);
+ *app_trace/app_trace.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
+ *app_trace/app_trace_util.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
+ *app_trace/port_uart.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
+ _btdm_data_start = ABSOLUTE(.);
+ *libbtdm_app.a:(.data .data.*)
+ . = ALIGN(4);
+ _btdm_data_end = ABSOLUTE(.);
+ _bt_data_start = ABSOLUTE(.);
+ *bt/*(.data .data.*)
+ . = ALIGN(4);
+ _bt_data_end = ABSOLUTE(.);
*esp_hw_support/esp_memory_utils.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
*esp_hw_support/rtc_clk.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
*esp_hw_support/systimer.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
@@ -231,7 +265,7 @@ SECTIONS
*esp_system/ubsan.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
*gcc/_divsf3.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
*gcc/save-restore.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
- *gcov.o:(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
+ *gcov/(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
*hal/cache_hal.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
*hal/i2c_hal_iram.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
*hal/ledc_hal_iram.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
@@ -249,6 +283,11 @@ SECTIONS
*newlib/assert.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
*newlib/heap.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
*newlib/stdatomic.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
+ _nimble_data_start = ABSOLUTE(.);
+ *libnimble.a:(.data .data.*)
+ . = ALIGN(4);
+ _nimble_data_end = ABSOLUTE(.);
+ *libphy.a:(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
*soc/lldesc.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
*spi_flash/flash_brownout_hook.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
*spi_flash/memspi_host_driver.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
@@ -259,7 +298,8 @@ SECTIONS
*spi_flash/spi_flash_chip_mxic.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
*spi_flash/spi_flash_chip_th.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
*spi_flash/spi_flash_chip_winbond.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
-
+ *kernel/src/*.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
+ *kernel/libcpu/risc-v/common/context_gcc.*(.rodata .rodata.* .sdata2 .sdata2.* .srodata .srodata.*)
_data_end = ABSOLUTE(.);
. = ALIGN(4);
} > dram0_0_seg
@@ -282,7 +322,7 @@ SECTIONS
.stack :
{
. = ALIGN(8);
- __STACKSIZE__ = 40960;
+ __STACKSIZE__ = 51200;
__stack_start__ = .;
*(.stack*)
. += __STACKSIZE__;
@@ -294,7 +334,7 @@ SECTIONS
.heap :
{
. = ALIGN(8);
- __HEAPSIZE__ = 40960;
+ __HEAPSIZE__ = 76800;
__heap_start__ = .;
. += __HEAPSIZE__;
__heap_end__ = .;
@@ -310,6 +350,18 @@ SECTIONS
*(.dynbss .dynsbss .gnu.linkonce.b .gnu.linkonce.b.* .gnu.linkonce.sb .gnu.linkonce.sb.* .gnu.linkonce.sb2 .gnu.linkonce.sb2.* .sbss .sbss.* .sbss2 .sbss2.* .scommon .share.mem)
*(.ext_ram.bss .ext_ram.bss.*)
*(COMMON)
+ _bt_bss_start = ABSOLUTE(.);
+ *bt/*(.bss .bss.* COMMON)
+ . = ALIGN(4);
+ _bt_bss_end = ABSOLUTE(.);
+ _btdm_bss_start = ABSOLUTE(.);
+ *libbtdm_app.a:(.bss .bss.* COMMON)
+ . = ALIGN(4);
+ _btdm_bss_end = ABSOLUTE(.);
+ _nimble_bss_start = ABSOLUTE(.);
+ *libnimble.a:(.bss .bss.* COMMON)
+ . = ALIGN(4);
+ _nimble_bss_end = ABSOLUTE(.);
*(.dynsbss)
*(.sbss)
@@ -335,7 +387,14 @@ SECTIONS
_instruction_reserved_start = ABSOLUTE(.);
_text_start = ABSOLUTE(.);
- *(EXCLUDE_FILE(*libesp_ringbuf.a *gcov.o *esp_hw_support/cpu.* *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/rtc_init.* *esp_hw_support/rtc_pm.* *esp_hw_support/rtc_sleep.* *esp_hw_support/rtc_time.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/esp_system.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/lib2funcs.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *log/log.* *log/log_freertos.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *riscv/interrupt.* *riscv/vectors.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.*) .literal EXCLUDE_FILE(*libesp_ringbuf.a *gcov.o *esp_hw_support/cpu.* *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/rtc_init.* *esp_hw_support/rtc_pm.* *esp_hw_support/rtc_sleep.* *esp_hw_support/rtc_time.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/esp_system.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/lib2funcs.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *log/log.* *log/log_freertos.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *riscv/interrupt.* *riscv/vectors.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.*) .literal.* EXCLUDE_FILE(*libesp_ringbuf.a *gcov.o *esp_hw_support/cpu.* *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/rtc_init.* *esp_hw_support/rtc_pm.* *esp_hw_support/rtc_sleep.* *esp_hw_support/rtc_time.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/esp_system.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/lib2funcs.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *log/log.* *log/log_freertos.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *riscv/interrupt.* *riscv/vectors.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.*) .text EXCLUDE_FILE(*libesp_ringbuf.a *gcov.o *esp_hw_support/cpu.* *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/rtc_init.* *esp_hw_support/rtc_pm.* *esp_hw_support/rtc_sleep.* *esp_hw_support/rtc_time.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/esp_system.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/lib2funcs.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *log/log.* *log/log_freertos.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *riscv/interrupt.* *riscv/vectors.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.*) .text.*)
+ *(EXCLUDE_FILE(*esp_ringbuf/* *gcov/* *librtc.a *app_trace/app_trace.* *app_trace/app_trace_util.* *app_trace/port_uart.* *esp_event/default_event_loop.* *esp_event/esp_event.* *esp_hw_support/cpu.* *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/rtc_init.* *esp_hw_support/rtc_pm.* *esp_hw_support/rtc_sleep.* *esp_hw_support/rtc_time.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/esp_system.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/lib2funcs.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *log/log.* *log/log_freertos.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *riscv/interrupt.* *riscv/vectors.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.* *kernel/src/*.* *kernel/libcpu/risc-v/common/context_gcc.* ) .literal EXCLUDE_FILE(*esp_ringbuf/* *gcov/* *librtc.a *app_trace/app_trace.* *app_trace/app_trace_util.* *app_trace/port_uart.* *esp_event/default_event_loop.* *esp_event/esp_event.* *esp_hw_support/cpu.* *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/rtc_init.* *esp_hw_support/rtc_pm.* *esp_hw_support/rtc_sleep.* *esp_hw_support/rtc_time.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/esp_system.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/lib2funcs.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *log/log.* *log/log_freertos.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *riscv/interrupt.* *riscv/vectors.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.* *kernel/src/*.* *kernel/libcpu/risc-v/common/context_gcc.* ) .literal.* EXCLUDE_FILE(*esp_ringbuf/* *gcov/* *librtc.a *app_trace/app_trace.* *app_trace/app_trace_util.* *app_trace/port_uart.* *esp_event/default_event_loop.* *esp_event/esp_event.* *esp_hw_support/cpu.* *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/rtc_init.* *esp_hw_support/rtc_pm.* *esp_hw_support/rtc_sleep.* *esp_hw_support/rtc_time.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/esp_system.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/lib2funcs.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *log/log.* *log/log_freertos.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *riscv/interrupt.* *riscv/vectors.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.* *kernel/src/*.* *kernel/libcpu/risc-v/common/context_gcc.* ) .text EXCLUDE_FILE(*esp_ringbuf/* *gcov/* *librtc.a *app_trace/app_trace.* *app_trace/app_trace_util.* *app_trace/port_uart.* *esp_event/default_event_loop.* *esp_event/esp_event.* *esp_hw_support/cpu.* *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/rtc_init.* *esp_hw_support/rtc_pm.* *esp_hw_support/rtc_sleep.* *esp_hw_support/rtc_time.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/esp_system.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/lib2funcs.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *log/log.* *log/log_freertos.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *riscv/interrupt.* *riscv/vectors.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.* *kernel/src/*.* *kernel/libcpu/risc-v/common/context_gcc.* ) .text.*)
+ *(EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifi0iram EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifi0iram.*)
+ *(EXCLUDE_FILE(*libpp.a) .wifiorslpiram EXCLUDE_FILE(*libpp.a) .wifiorslpiram.*)
+ *(EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifirxiram EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifirxiram.*)
+ *(.wifislpiram .wifislpiram.*)
+ *(EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifislprxiram EXCLUDE_FILE(*libnet80211.a *libpp.a) .wifislprxiram.*)
+ *esp_event/default_event_loop.*(.text .text.esp_event_handler_instance_register .text.esp_event_handler_instance_unregister .text.esp_event_handler_register .text.esp_event_handler_unregister .text.esp_event_loop_create_default .text.esp_event_loop_delete_default .text.esp_event_post)
+ *esp_event/esp_event.*(.text .text.base_node_add_handler .text.base_node_remove_all_handler .text.base_node_remove_handler .text.esp_event_dump .text.esp_event_handler_instance_register_with .text.esp_event_handler_instance_unregister_with .text.esp_event_handler_register_with .text.esp_event_handler_register_with_internal .text.esp_event_handler_unregister_with .text.esp_event_handler_unregister_with_internal .text.esp_event_loop_create .text.esp_event_loop_delete .text.esp_event_loop_run .text.esp_event_loop_run_task .text.esp_event_post_to .text.handler_execute .text.handler_instances_add .text.handler_instances_remove .text.handler_instances_remove_all .text.loop_node_add_handler .text.loop_node_remove_all_handler .text.loop_node_remove_handler)
*esp_hw_support/cpu.*(.text .text.esp_cpu_clear_breakpoint .text.esp_cpu_clear_watchpoint .text.esp_cpu_configure_region_protection .text.esp_cpu_intr_get_desc .text.esp_cpu_set_breakpoint .text.esp_cpu_set_watchpoint .text.is_intr_num_resv)
*esp_hw_support/rtc_init.*(.text .text.calibrate_ocode .text.get_dig_dbias_by_efuse .text.get_rtc_dbias_by_efuse .text.rtc_init .text.rtc_vddsdio_get_config .text.set_ocode_by_efuse .text.set_rtc_dig_dbias)
*esp_system/esp_system.*(.text .text.esp_get_free_heap_size .text.esp_get_free_internal_heap_size .text.esp_get_idf_version .text.esp_get_minimum_free_heap_size .text.esp_register_shutdown_handler .text.esp_unregister_shutdown_handler)
@@ -412,7 +471,10 @@ SECTIONS
{
_flash_rodata_start = ABSOLUTE(.);
- *(EXCLUDE_FILE(*gcov.o *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.*) .rodata EXCLUDE_FILE(*gcov.o *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.*) .rodata.* EXCLUDE_FILE(*gcov.o *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.*) .sdata2 EXCLUDE_FILE(*gcov.o *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.*) .sdata2.* EXCLUDE_FILE(*gcov.o *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.*) .srodata EXCLUDE_FILE(*gcov.o *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.*) .srodata.*)
+ *(EXCLUDE_FILE(*gcov/* *libphy.a *app_trace/app_trace.* *app_trace/app_trace_util.* *app_trace/port_uart.* *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.* *kernel/src/*.* *kernel/libcpu/risc-v/common/context_gcc.* ) .rodata EXCLUDE_FILE(*gcov/* *libphy.a *app_trace/app_trace.* *app_trace/app_trace_util.* *app_trace/port_uart.* *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.* *kernel/src/*.* *kernel/libcpu/risc-v/common/context_gcc.* ) .rodata.* EXCLUDE_FILE(*gcov/* *libphy.a *app_trace/app_trace.* *app_trace/app_trace_util.* *app_trace/port_uart.* *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.* *kernel/src/*.* *kernel/libcpu/risc-v/common/context_gcc.* ) .sdata2 EXCLUDE_FILE(*gcov/* *libphy.a *app_trace/app_trace.* *app_trace/app_trace_util.* *app_trace/port_uart.* *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.* *kernel/src/*.* *kernel/libcpu/risc-v/common/context_gcc.* ) .sdata2.* EXCLUDE_FILE(*gcov/* *libphy.a *app_trace/app_trace.* *app_trace/app_trace_util.* *app_trace/port_uart.* *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.* *kernel/src/*.* *kernel/libcpu/risc-v/common/context_gcc.* ) .srodata EXCLUDE_FILE(*gcov/* *libphy.a *app_trace/app_trace.* *app_trace/app_trace_util.* *app_trace/port_uart.* *esp_hw_support/esp_memory_utils.* *esp_hw_support/rtc_clk.* *esp_hw_support/systimer.* *esp_rom/esp_rom_regi2c.* *esp_rom/esp_rom_spiflash.* *esp_rom/esp_rom_systimer.* *esp_system/esp_err.* *esp_system/ubsan.* *gcc/_divsf3.* *gcc/save-restore.* *hal/cache_hal.* *hal/i2c_hal_iram.* *hal/ledc_hal_iram.* *hal/mmu_hal.* *hal/spi_flash_encrypt_hal_iram.* *hal/spi_flash_hal_gpspi.* *hal/spi_flash_hal_iram.* *hal/spi_hal_iram.* *hal/spi_slave_hal_iram.* *hal/systimer_hal.* *hal/wdt_hal_iram.* *heap/multi_heap.* *heap/tlsf.* *newlib/abort.* *newlib/assert.* *newlib/heap.* *newlib/stdatomic.* *soc/lldesc.* *spi_flash/flash_brownout_hook.* *spi_flash/memspi_host_driver.* *spi_flash/spi_flash_chip_boya.* *spi_flash/spi_flash_chip_gd.* *spi_flash/spi_flash_chip_generic.* *spi_flash/spi_flash_chip_issi.* *spi_flash/spi_flash_chip_mxic.* *spi_flash/spi_flash_chip_th.* *spi_flash/spi_flash_chip_winbond.* *kernel/src/*.* *kernel/libcpu/risc-v/common/context_gcc.* ) .srodata.*)
+ *(.rodata_wlog_error .rodata_wlog_error.*)
+ *(.rodata_wlog_info .rodata_wlog_info.*)
+ *(.rodata_wlog_warning .rodata_wlog_warning.*)
*(.irom1.text) /* catch stray ICACHE_RODATA_ATTR */
*(.gnu.linkonce.r.*)
@@ -506,6 +568,8 @@ SECTIONS
.flash.rodata_noload (NOLOAD) :
{
. = ALIGN (4);
+ *(.rodata_wlog_debug .rodata_wlog_debug.*)
+ *(.rodata_wlog_verbose .rodata_wlog_verbose.*)
} > default_rodata_seg
/* Marks the end of IRAM code segment */
@@ -525,6 +589,9 @@ SECTIONS
_iram_data_start = ABSOLUTE(.);
*(.iram.data .iram.data.*)
+ _coredump_iram_start = ABSOLUTE(.);
+ *(.iram2.coredump .iram2.coredump.*)
+ _coredump_iram_end = ABSOLUTE(.);
_iram_data_end = ABSOLUTE(.);
} > iram0_0_seg
diff --git a/bsp/ESP32_C3/idf_port/src/rt-thread_balance_stub.c b/bsp/ESP32_C3/idf_port/src/rt-thread_balance_stub.c
index c4e729618b..8721919477 100644
--- a/bsp/ESP32_C3/idf_port/src/rt-thread_balance_stub.c
+++ b/bsp/ESP32_C3/idf_port/src/rt-thread_balance_stub.c
@@ -1,4 +1,5 @@
#include <math.h>
+#include "rtconfig.h"
double ceil(double i)
{
i=i;
@@ -24,6 +25,7 @@ void _edata(void)
}
+#ifndef BSP_USING_BLE // 由于BLE组件使用了VFS组件,而VFS组件提供了这些函数导致了冲突
void opendir(void)
{
return;
@@ -46,3 +48,5 @@ void select(void)
{
return;
}
+
+#endif /* BSP_USING_BLE */
diff --git a/bsp/ESP32_C3/main/main.c b/bsp/ESP32_C3/main/main.c
index 4f352bacbe..6d1abff2b8 100644
--- a/bsp/ESP32_C3/main/main.c
+++ b/bsp/ESP32_C3/main/main.c
@@ -17,6 +17,19 @@ int main(void)
{
rt_kprintf("Hello!RT-THREAD!\r\n");
rt_pin_mode(RT_BSP_LED_PIN, PIN_MODE_OUTPUT);
+
+#ifdef BSP_USING_BLE
+ extern void app_main(void);
+ esp_timer_init();
+ app_main(); //该函数为esp-wifi样例程序入口
+#endif
+
+#ifdef RT_USING_WIFI
+ /* set wifi work mode */
+ rt_wlan_set_mode(RT_WLAN_DEVICE_STA_NAME, RT_WLAN_STATION);
+ rt_wlan_set_mode(RT_WLAN_DEVICE_AP_NAME, RT_WLAN_AP);
+#endif /* RT_USING_WIFI */
+
while (1)
{
rt_pin_write(RT_BSP_LED_PIN, PIN_HIGH);
diff --git a/bsp/ESP32_C3/rtconfig.h b/bsp/ESP32_C3/rtconfig.h
index 48aa7f07c4..93cb8126b4 100644
--- a/bsp/ESP32_C3/rtconfig.h
+++ b/bsp/ESP32_C3/rtconfig.h
@@ -73,6 +73,9 @@
#define RT_USING_DEVICE_IPC
#define RT_UNAMED_PIPE_NUMBER 64
+#define RT_USING_SYSTEM_WORKQUEUE
+#define RT_SYSTEM_WORKQUEUE_STACKSIZE 2048
+#define RT_SYSTEM_WORKQUEUE_PRIORITY 23
#define RT_USING_SERIAL
#define RT_USING_SERIAL_V1
#define RT_SERIAL_RB_BUFSZ 64
@@ -123,6 +126,9 @@
/* Wiced WiFi */
+/* CYW43012 WiFi */
+
+
/* IoT Cloud */
diff --git a/bsp/ESP32_C3/rtconfig.py b/bsp/ESP32_C3/rtconfig.py
index 19f778a57c..e6b2022c51 100644
--- a/bsp/ESP32_C3/rtconfig.py
+++ b/bsp/ESP32_C3/rtconfig.py
@@ -34,10 +34,10 @@ if PLATFORM == 'gcc':
OBJCPY = PREFIX + 'objcopy'
STRIP = PREFIX + 'strip'
- DEVICE = ' -nostartfiles -march=rv32imc --specs=nosys.specs '
- CFLAGS = DEVICE + '-gdwarf-4 -ggdb -Os '
+ DEVICE = ' -nostartfiles -march=rv32imc --specs=nosys.specs -fasynchronous-unwind-tables '
+ CFLAGS = DEVICE + '-gdwarf-4 -ggdb -Og '
AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp'
- LFLAGS = DEVICE + ' -Wl,--cref -Wl,--defsym=IDF_TARGET_ESP32C3=0 -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,_start -T idf_port/ld/memory.ld -T idf_port/ld/sections.ld -T packages/ESP-IDF-latest/components/esp_rom/esp32c3/ld/esp32c3.rom.ld -T packages/ESP-IDF-latest/components/esp_rom/esp32c3/ld/esp32c3.rom.api.ld -T packages/ESP-IDF-latest/components/esp_rom/esp32c3/ld/esp32c3.rom.libgcc.ld -T packages/ESP-IDF-latest/components/esp_rom/esp32c3/ld/esp32c3.rom.newlib.ld -T packages/ESP-IDF-latest/components/esp_rom/esp32c3/ld/esp32c3.rom.version.ld -T packages/ESP-IDF-latest/components/esp_rom/esp32c3/ld/esp32c3.rom.eco3.ld -T packages/ESP-IDF-latest/components/soc/esp32c3/ld/esp32c3.peripherals.ld -Wl,--wrap=_Unwind_SetEnableExceptionFdeSorting -Wl,--wrap=__register_frame_info_bases -Wl,--wrap=__register_frame_info -Wl,--wrap=__register_frame -Wl,--wrap=__register_frame_info_table_bases -Wl,--wrap=__register_frame_info_table -Wl,--wrap=__register_frame_table -Wl,--wrap=__deregister_frame_info_bases -Wl,--wrap=__deregister_frame_info -Wl,--wrap=_Unwind_Find_FDE -Wl,--wrap=_Unwind_GetGR -Wl,--wrap=_Unwind_GetCFA -Wl,--wrap=_Unwind_GetIP -Wl,--wrap=_Unwind_GetIPInfo -Wl,--wrap=_Unwind_GetRegionStart -Wl,--wrap=_Unwind_GetDataRelBase -Wl,--wrap=_Unwind_GetTextRelBase -Wl,--wrap=_Unwind_SetIP -Wl,--wrap=_Unwind_SetGR -Wl,--wrap=_Unwind_GetLanguageSpecificData -Wl,--wrap=_Unwind_FindEnclosingFunction -Wl,--wrap=_Unwind_Resume -Wl,--wrap=_Unwind_RaiseException -Wl,--wrap=_Unwind_DeleteException -Wl,--wrap=_Unwind_ForcedUnwind -Wl,--wrap=_Unwind_Resume_or_Rethrow -Wl,--wrap=_Unwind_Backtrace -Wl,--wrap=__cxa_call_unexpected -Wl,--wrap=__gxx_personality_v0 -Wl,--cref -Wl,--defsym=IDF_TARGET_ESP32C3=0'
+ LFLAGS = DEVICE + ' -Wl,--cref -Wl,--defsym=IDF_TARGET_ESP32C3=0 -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,_start -T idf_port/ld/memory.ld -T idf_port/ld/sections.ld -T packages/ESP-IDF-latest/components/esp_rom/esp32c3/ld/esp32c3.rom.ld -T packages/ESP-IDF-latest/components/esp_rom/esp32c3/ld/esp32c3.rom.api.ld -T packages/ESP-IDF-latest/components/esp_rom/esp32c3/ld/esp32c3.rom.libgcc.ld -T packages/ESP-IDF-latest/components/esp_rom/esp32c3/ld/esp32c3.rom.newlib.ld -T packages/ESP-IDF-latest/components/esp_rom/esp32c3/ld/esp32c3.rom.version.ld -T packages/ESP-IDF-latest/components/esp_rom/esp32c3/ld/esp32c3.rom.eco3.ld -T packages/ESP-IDF-latest/components/soc/esp32c3/ld/esp32c3.peripherals.ld -Wl,--wrap=_Unwind_SetEnableExceptionFdeSorting -Wl,--wrap=__register_frame_info_bases -Wl,--wrap=__register_frame_info -Wl,--wrap=__register_frame -Wl,--wrap=__register_frame_info_table_bases -Wl,--wrap=__register_frame_info_table -Wl,--wrap=__register_frame_table -Wl,--wrap=__deregister_frame_info_bases -Wl,--wrap=__deregister_frame_info -Wl,--wrap=_Unwind_Find_FDE -Wl,--wrap=_Unwind_GetGR -Wl,--wrap=_Unwind_GetCFA -Wl,--wrap=_Unwind_GetIP -Wl,--wrap=_Unwind_GetIPInfo -Wl,--wrap=_Unwind_GetRegionStart -Wl,--wrap=_Unwind_GetDataRelBase -Wl,--wrap=_Unwind_GetTextRelBase -Wl,--wrap=_Unwind_SetIP -Wl,--wrap=_Unwind_SetGR -Wl,--wrap=_Unwind_GetLanguageSpecificData -Wl,--wrap=_Unwind_FindEnclosingFunction -Wl,--wrap=_Unwind_Resume -Wl,--wrap=_Unwind_RaiseException -Wl,--wrap=_Unwind_DeleteException -Wl,--wrap=_Unwind_ForcedUnwind -Wl,--wrap=_Unwind_Resume_or_Rethrow -Wl,--wrap=_Unwind_Backtrace -Wl,--wrap=__cxa_call_unexpected -Wl,--eh-frame-hdr -Wl,--wrap=__gxx_personality_v0 -Wl,--cref -Wl,--defsym=IDF_TARGET_ESP32C3=0'
CXXFLAGS = CFLAGS
POST_ACTION = OBJCPY + ' -Oihex $TARGET rtthread.hex\n' + SIZE + ' $TARGET \n'