+32
-2
lines changedFilter options
+32
-2
lines changed Original file line number Diff line number Diff line change
@@ -72,6 +72,14 @@ else()
72
72
register_component()
73
73
74
74
target_link_libraries(esp32 "-L ${CMAKE_CURRENT_SOURCE_DIR}/lib")
75
+
76
+
# Add a different linker search path depending on WiFi optimisations
77
+
if (CONFIG_ESP32_WIFI_IRAM_OPT)
78
+
target_link_libraries(esp32 "-L ${CMAKE_CURRENT_SOURCE_DIR}/ld/wifi_iram_opt")
79
+
else()
80
+
target_link_libraries(esp32 "-L ${CMAKE_CURRENT_SOURCE_DIR}/ld/wifi_iram_noopt")
81
+
endif()
82
+
75
83
if(NOT CONFIG_NO_BLOBS)
76
84
target_link_libraries(esp32 coexist core espnow mesh net80211 phy pp rtc smartconfig wpa2 wpa wps)
77
85
endif()
Original file line number Diff line number Diff line change
@@ -1165,7 +1165,14 @@ config ESP32_WIFI_SOFTAP_BEACON_MAX_LEN
1165
1165
932 (752+36*5).
1166
1166
1167
1167
Setting a longer beacon length also assists with debugging as the conflicting root nodes can be identified more quickly.
1168
-
1168
+
1169
+
config ESP32_WIFI_IRAM_OPT
1170
+
bool "WiFi IRAM speed optimization"
1171
+
default y
1172
+
help
1173
+
Select this option to place frequently called Wi-Fi library functions in IRAM. When this option is disabled,
1174
+
more than 10Kbytes of IRAM memory will be saved but Wi-Fi throughput will be reduced.
1175
+
1169
1176
endmenu # Wi-Fi
1170
1177
1171
1178
menu PHY
Original file line number Diff line number Diff line change
@@ -18,6 +18,13 @@ endif
18
18
#specifies its own scripts.
19
19
LINKER_SCRIPTS += esp32.common.ld esp32.rom.ld esp32.peripherals.ld
20
20
21
+
# Add a different linker search path depending on WiFi optimisations
22
+
ifdef CONFIG_ESP32_WIFI_IRAM_OPT
23
+
COMPONENT_ADD_LDFLAGS += -L $(COMPONENT_PATH)/ld/wifi_iram_opt
24
+
else
25
+
COMPONENT_ADD_LDFLAGS += -L $(COMPONENT_PATH)/ld/wifi_iram_noopt
26
+
endif
27
+
21
28
#Force pure functions from libgcc.a to be linked from ROM
22
29
LINKER_SCRIPTS += esp32.rom.libgcc.ld
23
30
Original file line number Diff line number Diff line change
@@ -159,6 +159,7 @@ SECTIONS
159
159
*libheap.a:multi_heap_poisoning.*(.literal .text .literal.* .text.*)
160
160
*libesp32.a:panic.*(.literal .text .literal.* .text.*)
161
161
*libesp32.a:core_dump.*(.literal .text .literal.* .text.*)
162
+
INCLUDE wifi_iram.ld
162
163
*libapp_trace.a:(.literal .text .literal.* .text.*)
163
164
*libxtensa-debug-module.a:eri.*(.literal .text .literal.* .text.*)
164
165
*librtc.a:(.literal .text .literal.* .text.*)
@@ -326,6 +327,7 @@ SECTIONS
326
327
_text_start = ABSOLUTE(.);
327
328
*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
328
329
*(.irom0.text) /* catch stray ICACHE_RODATA_ATTR */
330
+
*(.wifi0iram .wifi0iram.*) /* catch stray WIFI_IRAM_ATTR */
329
331
*(.fini.literal)
330
332
*(.fini)
331
333
*(.gnu.version)
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
1
+
/* This snippet does nothing, if WiFi IRAM optimisations
2
+
are disabled. */
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
1
+
/* Link WiFi library .wifi0iram sections to IRAM
2
+
if this snippet is included */
3
+
*libnet80211.a:( .wifi0iram .wifi0iram.*)
4
+
*libpp.a:( .wifi0iram .wifi0iram.*)
You can’t perform that action at this time.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4