Heap is defined in linkerscript for FLAT builds. #2277
Draft
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.
Summary
Currently the heap regions are hardcoded. The code makes assumptions on how the memory regions should be mapped, and calculates the boundaries according to the MCU's available memory.
This creates problems in many cases, where the uses needs a "non-standard" memory map. See issue #2002.
This PR is about refactoring the heap configuration, and have the user define the Heap in the linkerscript. That way anyone will be able to adapt the memory map to their actual needs. NuttX will be able to support any arbitrary memory configuration, and no assumptions will be made about the final application.
Impact
Linkerscripts need to be updated, so they define the new
.heap
region.Testing
None yet.
Note! This is a draft PR, just a proposition. Please review the concept behind the changes, and not the actual changes.
I am only working on STM32 for now, and I chose STM32F4Discovery board as the "reference board" for these changes.
Nxstyle errors are ignored for the moment.
Things to do:
PROTECTED
&KERNEL
builds.