-
Notifications
You must be signed in to change notification settings - Fork 7.8k
Description
Answers checklist.
- I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
- I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
- I have searched the issue tracker for a similar issue and not found a similar issue.
IDF version.
v5.0.2
Operating System used.
Windows
How did you build your project?
Command line with Make
If you are using Windows, please specify command line type.
None
Development Kit.
Custom Board
Power Supply used.
USB
What is the expected behavior?
A 2nd stage bootloader built with single-core mode and PSRAM disabled should be able to boot into application firmware built with dual-core mode and PSRAM enabled.
What is the actual behavior?
The application firmware crashes on an IllegalInstruction.
Steps to reproduce.
- Build a bootloader and partition table with ESP-IDF v5.0.2 on an ESP32 with sdkconfig.txt below. The main configuration settings that are in question are
CONFIG_SPIRAM is not set
andCONFIG_FREERTOS_UNICORE=y
.
- Build application firmware with the sdkconfig modified as shown in sdkconfig-diff.txt below. The settings that were manually changed in menuconfig are
CONFIG_SPIRAM=y
andCONFIG_FREERTOS_UNICORE is not set
. The rest seem to be automatically updated based on those two.
-
Flash all three binaries and reset the ESP32.
-
Below is the output log from the serial port.
More Information.
Our project is using multiple components: Secure Boot v2, encrypted flash, encrypted NVS partition, FAT partition, PSRAM, Ethernet, WiFi, lwIP, MQTT, Modbus, and OTA firmware updates. The crash shown above seems to happen very early before it reaches any of our actual application code in app_main().
If the bootloader is rebuilt using the same sdkconfig as the application firmware, the crash does not occur. Incidentally, I noticed that CONFIG_ESP32_ECO3_CACHE_LOCK_FIX=y
is added automatically when CONFIG_SPIRAM=y
and CONFIG_FREERTOS_UNICORE is not set
are configured. Is this related to the issue?