]> granicus.if.org Git - esp-idf/commitdiff
Merge branch 'feature/bss_seg_in_external_memory' into 'master'
authorAngus Gratton <angus@espressif.com>
Wed, 10 Oct 2018 06:40:21 +0000 (14:40 +0800)
committerAngus Gratton <angus@espressif.com>
Wed, 10 Oct 2018 06:40:21 +0000 (14:40 +0800)
memory:   support .bss segment can be in psram

See merge request idf/esp-idf!2236

1  2 
components/esp32/Kconfig
components/esp32/cpu_start.c
components/esp32/include/esp_attr.h
components/esp32/ld/esp32.common.ld
components/esp32/ld/esp32.ld
components/esp32/spiram.c
docs/en/api-guides/external-ram.rst

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 52704365db7732f9de1e9d2c71a1e0fbbe1aec20,5cd4b6ab22029247d097a5f9e7786563af6c1369..860bc4f3576dca445924722f7f99f77bfb08f275
@@@ -65,9 -68,13 +68,13 @@@ The use of external RAM has a few restr
     execution of code afterwards slower.
   * External RAM cannot be used as task stack memory; because of this, xTaskCreate and similar functions will always allocate internal memory
     for stack and task TCBs and xTaskCreateStatic-type functions will check if the buffers passed are internal. However, for tasks not calling
 -   on code in ROM in any way, directly or indirectly, the menuconfig option :envvar:`CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY` will eliminate
 +   on code in ROM in any way, directly or indirectly, the menuconfig option :ref:`CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY` will eliminate
     the check in xTaskCreateStatic, allowing task stack in external RAM. Using this is not advised, however.
+  * External RAM initialized failed can not be ignored if enabled :ref:`CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY`; because of this, some BSS segment
+    can not be placed into external memory if PSRAM can't work normally and can not be moved to internal memory at runtime because the address of 
+    them is defined by linkfile, the :ref:`CONFIG_SPIRAM_IGNORE_NOTFOUND` can't handle this situation,if you want to enable :ref:
+    `CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY` the :ref:`CONFIG_SPIRAM_IGNORE_NOTFOUND` will be disabled, and if initialize SPIRAM failed,the system 
+    will invoke abort.
  
  Because there are a fair few situations that have a specific need for internal memory, but it is also possible to use malloc() to exhaust
  internal memory, there is a pool reserved specifically for requests that cannot be resolved from external memory; allocating task