]> granicus.if.org Git - esp-idf/commitdiff
esp32: Change 192KB runtime static limit workaround to a 176KB link time workaround
authorAngus Gratton <angus@espressif.com>
Fri, 22 Dec 2017 07:36:12 +0000 (18:36 +1100)
committerAngus Gratton <gus@projectgus.com>
Wed, 27 Dec 2017 00:59:54 +0000 (11:59 +1100)
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.

components/esp32/cpu_start.c
components/esp32/ld/esp32.ld

index 01fba08a0cfdd17c993f23bd0e1f27cc7a41f07b..671bbd525b3b80b2fd87ca0540c12094fbef9ea8 100644 (file)
@@ -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));
 
index 2df1b3e891f8a0c1a9f4cf21578ab5f0d13d2b54..ee41f7479316f0705a3a3620f918bd978f4eee82 100644 (file)
@@ -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