Merge branch 'feat/add_config_for_esp32c2_move_phylib_to_flash' into 'master'

feat(phy): add config for esp32c2 move iram func to flash

Closes IDF-11433

See merge request espressif/esp-idf!37917
This commit is contained in:
Jiang Jiang Jian
2025-05-07 21:34:27 +08:00
6 changed files with 41 additions and 2 deletions

View File

@@ -693,6 +693,7 @@ config BT_CTRL_RUN_IN_FLASH_ONLY
- For HCI_LE_Extended_Create_Connection command, only 1M phy's connection parameters will be applied.
Other phys' will be ignored.
- For extended scanning, we may be unable to receive the extended adv with 300us MAFS.
- To match performance, phy needs to be reduced, you need to disable ESP_PHY_IRAM_OPT.
config BT_LE_PLACE_CONN_RELATED_INTO_IRAM
bool "Place the connection-related code into IRAM"

View File

@@ -177,5 +177,14 @@ menu "PHY"
default n
help
Select to support record and query phy used time.
config ESP_PHY_IRAM_OPT
bool "PHY IRAM speed optimization"
default y
help
Select this option to place frequently called PHY library functions in IRAM.
When this option is disabled, more than 1.1Kbytes of IRAM memory will be saved,
but PHY performance will be reduced. This config only affect esp32c2 now.
endif
endmenu # PHY

View File

@@ -10,12 +10,32 @@ if IDF_TARGET_ESP32 = y:
entries:
.phyiram+
if IDF_TARGET_ESP32C2 = y:
[scheme:phy_iram]
entries:
if ESP_PHY_IRAM_OPT = y:
phy_iram -> iram0_text
else:
phy_iram -> flash_text
[sections:phy_iram]
entries:
.phyiram+
[mapping:btbb]
archive: libbtbb.a
entries:
if IDF_TARGET_ESP32C2 = y:
* (phy_iram)
[mapping:phy]
archive: libphy.a
entries:
* (noflash_data)
if IDF_TARGET_ESP32 = y:
* (phy_iram)
if IDF_TARGET_ESP32C2 = y:
* (phy_iram)
[mapping:rtc]
archive: librtc.a

View File

@@ -345,6 +345,7 @@ menu "Wi-Fi"
select PM_SLP_DEFAULT_PARAMS_OPT
select PM_SLEEP_FUNC_IN_IRAM
select ESP_PERIPH_CTRL_FUNC_IN_IRAM
select ESP_PHY_IRAM_OPT
default y if SOC_WIFI_HE_SUPPORT
help
Select this option to place called Wi-Fi library TBTT process and receive beacon functions in IRAM.

View File

@@ -60,7 +60,6 @@ CONFIG_LOG_IN_IRAM=n
CONFIG_ESP_ROM_PRINT_IN_IRAM=n
# Low power related options
CONFIG_ESP_WIFI_SLP_IRAM_OPT=n
CONFIG_PM_SLEEP_FUNC_IN_IRAM=n
CONFIG_PM_RTOS_IDLE_OPT=n
CONFIG_ESP_SLEEP_POWER_DOWN_FLASH=n
@@ -70,6 +69,15 @@ CONFIG_ESP_REGI2C_CTRL_FUNC_IN_IRAM=n
# System common
CONFIG_ESP_PERIPH_CTRL_FUNC_IN_IRAM=n
# Phy related options
CONFIG_ESP_PHY_IRAM_OPT=n
# WiFi related options
CONFIG_ESP_WIFI_SLP_IRAM_OPT=n
CONFIG_ESP_WIFI_IRAM_OPT=n
CONFIG_ESP_WIFI_EXTRA_IRAM_OPT=n
CONFIG_ESP_WIFI_RX_IRAM_OPT=n
#######################################################################################################################
# Options that will enable IRAM reduction option that are not necessarily safe for all use-cases
#######################################################################################################################