Add support for using noinit variables in SPIRAM (IDFGH-2654) #4728
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As per #4700, this pull request add support for placing non-initialized variables in SPIRAM.
This includes the following changes:
SPIRAM_ALLOW_NOINIT_EXTERNAL_MEMORY
which enables the feature.EXT_RAM_NOINIT_ATTR
can be used to place variables into a new non-initialized section in SPIRAM. IfSPIRAM_ALLOW_NOINIT_EXTERNAL_MEMORY
is disabled, it attempts to place it in regular internal RAM instead.I've tested this internally and I've found it works pretty well (with the caveat that it's important to flush the SPIRAM write-back cache before restarting to ensure everything has been written back) and I've added a simple unit test for it.
Caveats: