Missing bit of logic:
Speaking of the linker, is there a way to use a combination of the linker script and __attribute__ incantations in the code to detect automatically the size that g_sram4_reserve should be and entirely eliminate the need for the user to specify the start and end of each region in Kconfig?Are you thinking of something like this in the linker script: .sram4_reserve : { _sram4_reserve_begin = ABSOLUTE(.); *(.sram4) _sram4_reserve_end = ABSOLUTE(.); } And in the C code:
We need to lie to C and tell it what to think those symbols are: EXTERN const uint32_t _sram4_reserve_begin EXTERN const uint32_t _sram4_reserve_begin
You can see this same kind of thing in, for example, arch/arm/src/common/arm_internal.h#define SRAM4_RESERVE_BEGIN &_sram4_reserve_begin #define SRAM4_RESERVE_END &_sram4_reserve_endThe implied size depends on the size of all .sram4 sections. I assume this would be positioned at the beginning of SRAM4 and the size of the region that could be added to the heap would be SRAM4_RESERVE_END through SRAM_END.
