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 [timwcx@qq.com](mailto:timwcx@qq.com), 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 +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: +. +Find the GDB manual and other documentation resources online at: + . + +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驱动运行都有问题,如果可以解决联系我[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()`函数初始化时钟驱动。 + +一种运行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 +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: +. +Find the GDB manual and other documentation resources online at: + . + +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 Binary files a/bsp/ESP32_C3/builtin_imgs/partition-table.bin and b/bsp/ESP32_C3/builtin_imgs/partition-table.bin 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 +#include +#include + +#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 + +#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 @@ -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 +#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'