From bd43b464cabdb89ba9ca17f5f0d8b542f45cea0f Mon Sep 17 00:00:00 2001 From: Chen Wu Date: Tue, 20 Aug 2024 17:02:37 +0800 Subject: [PATCH] feat: Supported to override default configurations --- CMakeLists.txt | 10 +- examples/at_override_module_config/README.md | 4 +- .../sdkconfig.defaults | 168 +----------------- 3 files changed, 9 insertions(+), 173 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8414565ed..033be2f7c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,16 +30,14 @@ endif() # set the sdkconfig default file if (${SILENCE} EQUAL 1) + set(SDKCONFIG_DEFAULTS ${ESP_AT_MODULE_CONFIG_DIR}/sdkconfig_silence.defaults) if(DEFINED ENV{AT_EXT_MODULE_CFG} AND EXISTS "$ENV{AT_EXT_MODULE_CFG}/sdkconfig_silence.defaults") - set(SDKCONFIG_DEFAULTS $ENV{AT_EXT_MODULE_CFG}/sdkconfig_silence.defaults) - else() - set(SDKCONFIG_DEFAULTS ${ESP_AT_MODULE_CONFIG_DIR}/sdkconfig_silence.defaults) + list(APPEND SDKCONFIG_DEFAULTS $ENV{AT_EXT_MODULE_CFG}/sdkconfig_silence.defaults) endif() else() + set(SDKCONFIG_DEFAULTS ${ESP_AT_MODULE_CONFIG_DIR}/sdkconfig.defaults) if(DEFINED ENV{AT_EXT_MODULE_CFG} AND EXISTS "$ENV{AT_EXT_MODULE_CFG}/sdkconfig.defaults") - set(SDKCONFIG_DEFAULTS $ENV{AT_EXT_MODULE_CFG}/sdkconfig.defaults) - else() - set(SDKCONFIG_DEFAULTS ${ESP_AT_MODULE_CONFIG_DIR}/sdkconfig.defaults) + list(APPEND SDKCONFIG_DEFAULTS $ENV{AT_EXT_MODULE_CFG}/sdkconfig.defaults) endif() endif() message(STATUS "silence:${SILENCE}, sdkconfig:${SDKCONFIG_DEFAULTS}") diff --git a/examples/at_override_module_config/README.md b/examples/at_override_module_config/README.md index 24ea817b6..6cc6b598e 100644 --- a/examples/at_override_module_config/README.md +++ b/examples/at_override_module_config/README.md @@ -9,7 +9,7 @@ Here are five optional configurations that you may want to override, and you can - You must use the same filename and directory name to override. #### 2.1 Override the system configuration -The native system configuration file is `esp-at/module_config//sdkconfig.defaults` (disable silence mode) or `esp-at/module_config//sdkconfig_silence.defaults` (enable silence mode). You may want to enable or disable some features, for example, to enable WebSocket functionality and disable mDNS functionality. You can copy the native system configuration file to `at_override_module_config` directory, and add the following lines to `at_override_module_config/sdkconfig.defaults` file: +The native system configuration file is `esp-at/module_config//sdkconfig.defaults` (disable silence mode) or `esp-at/module_config//sdkconfig_silence.defaults` (enable silence mode). You may want to enable or disable some features, for example, to enable WebSocket functionality and disable mDNS functionality. You can add a new system configuration file to `at_override_module_config` directory, and add the following lines to `at_override_module_config/sdkconfig.defaults` file: ``` # Enable WebSocket and disable mDNS @@ -17,7 +17,7 @@ CONFIG_AT_WS_COMMAND_SUPPORT=y CONFIG_AT_MDNS_COMMAND_SUPPORT=n ``` -The build system will use `at_override_module_config/sdkconfig.defaults` as your system configuration. +The build system will override `at_override_module_config/sdkconfig.defaults` as your system configuration. #### 2.2 Override the patch directory The native patch directory is `esp-at/module_config//patch`. You may want to add more patches, for example, to output one prompt message after esp-at is ready. You can copy the native patch directory to `at_override_module_config` directory, and add the `at_example.patch` file to `at_override_module_config/patch`, then specify this patch by adding the following lines to `at_override_module_config/patch/patch_list.ini` file: diff --git a/examples/at_override_module_config/sdkconfig.defaults b/examples/at_override_module_config/sdkconfig.defaults index 00821ee2a..6033e1706 100644 --- a/examples/at_override_module_config/sdkconfig.defaults +++ b/examples/at_override_module_config/sdkconfig.defaults @@ -1,173 +1,11 @@ -# The Optimized Configuration -# Do NOT edit unless you know exactly what you are doing +# Override default configurations -CONFIG_IDF_TARGET_ESP32C3=y - -# Serial flasher config -CONFIG_ESPTOOLPY_FLASHMODE_DIO=y -CONFIG_ESPTOOLPY_FLASHFREQ_40M=y -CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y - -# Bootloader config -CONFIG_BOOTLOADER_WDT_ENABLE=y - -# Partition Table -CONFIG_PARTITION_TABLE_CUSTOM=y +# Override System Partition Table CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions_at.csv" -CONFIG_PARTITION_TABLE_OFFSET=0x8000 CONFIG_PARTITION_TABLE_FILENAME="partitions_at.csv" -CONFIG_PARTITION_TABLE_MD5=n - -# PHY -CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION=n - -# Hardware Settings -CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80=y -CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=80 -CONFIG_XTAL_FREQ_40=y -CONFIG_XTAL_FREQ=40 - -# Power Save -CONFIG_PM_ENABLE=y -CONFIG_PM_USE_RTC_TIMER_REF=y -### Disable all GPIO at light sleep -CONFIG_PM_SLP_DISABLE_GPIO=y - -# Wi-Fi -CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE=y -CONFIG_ESP_WIFI_SLP_IRAM_OPT=y -CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y -CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=0 - -# Ethernet -CONFIG_DMA_RX_BUF_NUM=3 -CONFIG_DMA_TX_BUF_NUM=3 - -# Component config -CONFIG_BTDM_CTRL_MODE_BTDM=y -CONFIG_BT_ENABLED=y -CONFIG_BT_BLUEDROID_ENABLED=y -CONFIG_BT_DRAM_RELEASE=y -CONFIG_BT_SMP_ENABLE=y -CONFIG_BT_STACK_NO_LOG=y -CONFIG_BT_BLE_DYNAMIC_ENV_MEMORY=y -CONFIG_BTDM_SCAN_DUPL_CACHE_SIZE=200 -CONFIG_BT_BTU_TASK_STACK_SIZE=5120 -CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y -CONFIG_BT_BLE_BLUFI_ENABLE=y -CONFIG_BT_CTRL_MODEM_SLEEP=y -CONFIG_BT_CTRL_MODEM_SLEEP_MODE_1=y - -# Log output -CONFIG_LOG_DEFAULT_LEVEL_ERROR=y - -# Compiler -CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y - -# Bluetooth -CONFIG_BT_ENABLED=y -CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y - -# Bluetooth controller(ESP32C3 Bluetooth Low Energy) -CONFIG_BT_CTRL_SLEEP_CLOCK_EFF=2 - -# MODEM SLEEP Options -CONFIG_BT_CTRL_LPCLK_SEL_EXT_32K_XTAL=y - -# FreeRTOS -CONFIG_FREERTOS_UNICORE=y -CONFIG_FREERTOS_HZ=1000 -CONFIG_FREERTOS_USE_TICKLESS_IDLE=y -CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=n -CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH=y -CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y -# LWIP -CONFIG_LWIP_SO_REUSE=y -CONFIG_LWIP_SO_RCVBUF=y -CONFIG_LWIP_DHCP_MAX_NTP_SERVERS=3 -CONFIG_LWIP_SNTP_MAX_SERVERS=3 -CONFIG_LWIP_IP_FRAG=y -CONFIG_LWIP_IP_REASSEMBLY=y -CONFIG_LWIP_TCP_MAXRTX=6 -CONFIG_LWIP_TCP_SYNMAXRTX=3 -CONFIG_LWIP_SO_LINGER=y -CONFIG_LWIP_IPV6=y -CONFIG_LWIP_IPV6_AUTOCONFIG=y -CONFIG_LWIP_TCP_MSS=1440 -CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5760 -CONFIG_LWIP_TCP_WND_DEFAULT=5760 - -# mbedTLS -CONFIG_MBEDTLS_HAVE_TIME_DATE=y -CONFIG_MBEDTLS_HARDWARE_MPI=y -CONFIG_MBEDTLS_DHM_C=y -CONFIG_MBEDTLS_DYNAMIC_BUFFER=y -CONFIG_MBEDTLS_DYNAMIC_FREE_CONFIG_DATA=y -CONFIG_MBEDTLS_DYNAMIC_FREE_CA_CERT=y -CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=n - -# ESP-TLS -CONFIG_ESP_TLS_SERVER=y -CONFIG_ESP_TLS_PSK_VERIFICATION=y -CONFIG_ESP_TLS_INSECURE=y -CONFIG_ESP_TLS_SKIP_SERVER_CERT_VERIFY=y - -# Hardware Settings -CONFIG_RTC_CLK_SRC_EXT_CRYS=y -CONFIG_RTC_CLK_CAL_CYCLES=1024 - -# AT Customized Partitions +# Override User Partition Table CONFIG_AT_CUSTOMIZED_PARTITION_TABLE_FILE="at_customize.csv" -CONFIG_AT_CUSTOMIZED_PARTITION_TABLE_OFFSET=0x1e000 - -# AT -CONFIG_AT_ENABLE=y -CONFIG_AT_BASE_ON_UART=y -CONFIG_AT_MQTT_COMMAND_SUPPORT=y -CONFIG_AT_HTTP_COMMAND_SUPPORT=y -CONFIG_AT_PROCESS_TASK_STACK_SIZE=6144 -CONFIG_AT_OTA_SERVER_IP="iot.espressif.cn" -CONFIG_AT_OTA_SERVER_PORT=80 -CONFIG_AT_OTA_TOKEN_KEY="dd93253c287f725de50d4071a05dd28b72056ca7" -CONFIG_AT_OTA_SSL_TOKEN_KEY="dd93253c287f725de50d4071a05dd28b72056ca7" -CONFIG_AT_SOCKET_MAX_CONN_NUM=5 -CONFIG_ESP_AT_FW_VERSION="v3.4.0.0-dev" - -# Wear Levelling -CONFIG_WL_SECTOR_SIZE_512=y - -# VFS -CONFIG_FATFS_LFN_HEAP=y -CONFIG_VFS_SUPPORT_TERMIOS=n - -# Newlib -CONFIG_NEWLIB_NANO_FORMAT=y - -# Common ESP-related -CONFIG_ESP_TASK_WDT_TIMEOUT_S=60 -CONFIG_ESP_TASK_WDT_PANIC=y -CONFIG_ESP_ERR_TO_NAME_LOOKUP=n - -# Cache config -CONFIG_ESP_DEBUG_STUBS_ENABLE=n -CONFIG_ESP_DEBUG_OCDAWARE=n - -# SPI Flash driver -CONFIG_SPI_FLASH_USE_LEGACY_IMPL=y - -# HTTP Server -CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024 -CONFIG_HTTPD_MAX_URI_LEN=1024 - -# ESP System Settings -CONFIG_ESP_SYSTEM_RTC_EXT_XTAL=y -CONFIG_ESP_SYSTEM_RTC_EXT_XTAL_BOOTSTRAP_CYCLES=0 -CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG=n -CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG=n - -# ESP HTTPS OTA -CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP=y # Enable WebSocket and disable mDNS CONFIG_AT_WS_COMMAND_SUPPORT=y