mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-10 04:43:33 +00:00
Merge branch 'bugfix/cmake_psram_fix_flag' into 'master'
cmake: Fix psram workaround compiler flag application See merge request idf/esp-idf!4335
This commit is contained in:
@@ -96,7 +96,10 @@ else()
|
||||
)
|
||||
|
||||
if(CONFIG_SPIRAM_CACHE_WORKAROUND)
|
||||
add_compile_options(-mfix-esp32-psram-cache-issue)
|
||||
# Note: Adding as a PUBLIC compile option here causes this option to propagate to all components that depend on esp32.
|
||||
#
|
||||
# To handle some corner cases, the same flag is set in project_include.cmake
|
||||
target_compile_options(${COMPONENT_TARGET} PUBLIC -mfix-esp32-psram-cache-issue)
|
||||
else()
|
||||
target_linker_script(${COMPONENT_TARGET} "ld/esp32.rom.spiram_incompatible_fns.ld")
|
||||
endif()
|
||||
|
@@ -132,7 +132,8 @@ menu "ESP32-specific"
|
||||
help
|
||||
Revision 1 of the ESP32 has a bug that can cause a write to PSRAM not to take place in some situations
|
||||
when the cache line needs to be fetched from external RAM and an interrupt occurs. This enables a
|
||||
fix in the compiler that makes sure the specific code that is vulnerable to this will not be emitted.
|
||||
fix in the compiler (-mfix-esp32-psram-cache-issue) that makes sure the specific code that is
|
||||
vulnerable to this will not be emitted.
|
||||
|
||||
This will also not use any bits of newlib that are located in ROM, opting for a version that is
|
||||
compiled with the workaround and located in flash instead.
|
||||
|
8
components/esp32/project_include.cmake
Normal file
8
components/esp32/project_include.cmake
Normal file
@@ -0,0 +1,8 @@
|
||||
if(CONFIG_SPIRAM_CACHE_WORKAROUND)
|
||||
# We do this here as well as in CMakeLists.txt, because targets that
|
||||
# are not part of the ESP-IDF build system (for cases where a generic
|
||||
# non-IDF CMakeLists.txt file is imported into a component) don't depend
|
||||
# on the esp32 component so don't get the extra flag. This handles that case.
|
||||
add_compile_options(-mfix-esp32-psram-cache-issue)
|
||||
endif()
|
||||
|
Reference in New Issue
Block a user