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:
#define SRAM4_RESERVE_BEGIN &_sram4_reserve_begin
#define SRAM4_RESERVE_END &_sram4_reserve_end
The 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.