This workaround makes sure that all ringbuf functions that may be called from an ISR are placed in IRAM. See https://github.com/espressif/esp-idf/issues/13378 Note that this means that all esp32-og builds get non-ISR ringbuf functions placed in flash now, whereas previously it was just the spiram variant. This might be a good thing (e.g. free up some IRAM for native/viper). Fixes issue #14005. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
19 lines
756 B
Plaintext
19 lines
756 B
Plaintext
# MicroPython on ESP32, ESP IDF configuration with SPIRAM support
|
|
|
|
CONFIG_SPIRAM=y
|
|
CONFIG_SPIRAM_CACHE_WORKAROUND=y
|
|
CONFIG_SPIRAM_IGNORE_NOTFOUND=y
|
|
CONFIG_SPIRAM_USE_MALLOC=y
|
|
|
|
# This is the threshold for preferring small allocations from internal memory
|
|
# first, before failing over to PSRAM.
|
|
CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=8192
|
|
|
|
# SPIRAM increases the size of the firmware and overflows iram0_0_seg, due
|
|
# to PSRAM bug workarounds. Apply some options to reduce the firmware size.
|
|
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
|
|
CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT=y
|
|
# CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH=y # Workaround required: see main_esp32/linker.lf
|
|
CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH=y
|
|
CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y
|