From 711173b3d6d728d9e42bfd7b5202e62308120ca4 Mon Sep 17 00:00:00 2001 From: Liu Zhi Fu Date: Thu, 27 Dec 2018 20:53:45 +0800 Subject: [PATCH] esp32: make WiFi IRAM optimization configurable With this feature, the WiFi IRAM optimization can be disabled/enabled via menuconfig. --- components/esp32/Kconfig | 8 ++++++++ components/esp32/ld/esp32_fragments.lf | 9 +++++++++ components/esp32/lib | 2 +- components/esp32/linker.lf | 13 +++++++++++++ 4 files changed, 31 insertions(+), 1 deletion(-) diff --git a/components/esp32/Kconfig b/components/esp32/Kconfig index df8b31c73..eedd14607 100644 --- a/components/esp32/Kconfig +++ b/components/esp32/Kconfig @@ -1204,6 +1204,14 @@ menu Wi-Fi bool "WiFi Debug Log Submodule Scan" default n + config ESP32_WIFI_IRAM_OPT + bool "WiFi IRAM speed optimization" + default y + help + Select this option to place frequently called Wi-Fi library functions in IRAM. + When this option is disabled, more than 10Kbytes of IRAM memory will be saved + but Wi-Fi throughput will be reduced. + endmenu # Wi-Fi menu PHY diff --git a/components/esp32/ld/esp32_fragments.lf b/components/esp32/ld/esp32_fragments.lf index 0132a11aa..932197caf 100644 --- a/components/esp32/ld/esp32_fragments.lf +++ b/components/esp32/ld/esp32_fragments.lf @@ -44,6 +44,10 @@ entries: entries: .dram1+ +[sections:wifi_iram] +entries: + .wifi0iram+ + [scheme:default] entries: text -> flash_text @@ -57,6 +61,7 @@ entries: rtc_data -> rtc_data rtc_rodata -> rtc_data rtc_bss -> rtc_bss + wifi_iram -> flash_text [scheme:rtc] entries: @@ -78,3 +83,7 @@ entries: [scheme:noflash_text] entries: text -> iram0_text + +[scheme:wifi_iram] +entries: + wifi_iram -> iram0_text diff --git a/components/esp32/lib b/components/esp32/lib index 3cedb7f33..2d4976672 160000 --- a/components/esp32/lib +++ b/components/esp32/lib @@ -1 +1 @@ -Subproject commit 3cedb7f33e4f86d61427912cae6f6ffe598df2b9 +Subproject commit 2d497667233a118384a79aec9428a042fbebd366 diff --git a/components/esp32/linker.lf b/components/esp32/linker.lf index c9a1c275d..040e29336 100644 --- a/components/esp32/linker.lf +++ b/components/esp32/linker.lf @@ -27,3 +27,16 @@ entries: archive: libgcov.a entries: * (noflash) + +[mapping] +archive: libpp.a +entries: + : ESP32_WIFI_IRAM_OPT = y + * (wifi_iram) + +[mapping] +archive: libnet80211.a +entries: + : ESP32_WIFI_IRAM_OPT = y + * (wifi_iram) +