From: Angus Gratton Date: Fri, 22 Dec 2017 07:36:12 +0000 (+1100) Subject: esp32: Change 192KB runtime static limit workaround to a 176KB link time workaround X-Git-Tag: v3.1-beta1~509^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f8580ea98f76548f21cac1513628c305f41b34eb;p=esp-idf esp32: Change 192KB runtime static limit workaround to a 176KB link time workaround Turns out some app memory around 0x3ffdc000 is also used by APP CPU. This is a workaround until code to remove the 176KB limit is committed. --- diff --git a/components/esp32/cpu_start.c b/components/esp32/cpu_start.c index 01fba08a0c..671bbd525b 100644 --- a/components/esp32/cpu_start.c +++ b/components/esp32/cpu_start.c @@ -136,13 +136,6 @@ void IRAM_ATTR call_start_cpu0() esp_panic_wdt_stop(); } - // Temporary workaround for an ugly crash, until we allow > 192KB of static DRAM - if ((intptr_t)&_bss_end > 0x3FFE0000) { - // Can't use assert() or logging here because there's no .bss - ets_printf("ERROR: Static .bss section extends past 0x3FFE0000. IDF cannot boot.\n"); - abort(); - } - //Clear BSS. Please do not attempt to do any complex stuff (like early logging) before this. memset(&_bss_start, 0, (&_bss_end - &_bss_start) * sizeof(_bss_start)); diff --git a/components/esp32/ld/esp32.ld b/components/esp32/ld/esp32.ld index 2df1b3e891..ee41f74793 100644 --- a/components/esp32/ld/esp32.ld +++ b/components/esp32/ld/esp32.ld @@ -45,9 +45,13 @@ MEMORY Enabling Bluetooth & Trace Memory features in menuconfig will decrease the amount of RAM available. + + Note: Length of this section *should* be 0x50000, and this extra DRAM is available + in heap at runtime. However due to static ROM memory usage at this 176KB mark, the + additional static memory temporarily cannot be used. */ dram0_0_seg (RW) : org = 0x3FFB0000 + CONFIG_BT_RESERVE_DRAM, - len = 0x50000 - CONFIG_TRACEMEM_RESERVE_DRAM - CONFIG_BT_RESERVE_DRAM + len = 0x2c200 - CONFIG_BT_RESERVE_DRAM /* Flash mapped constant data */ drom0_0_seg (R) : org = 0x3F400018, len = 0x400000-0x18