Sorry to have missed this question. In fact the linker allocates for every section some space in FLASH to hold the initialization data for the RAM... The only sections that have no initializatio data in FLASH are:
- Sections marked a NOLOAD (as you did)
- Sections that load in the .bss region (which is NOLOAD by default)
What I don’t understand is why your heap is not placed in .bss by the default allocation done by FREErtos’ heap_4.c file, but is in an HEAP4 file, where it is not placed in .bss but some other section... Do you use configAPPLICATION_ALLOCATED_HEAP and allocate it explicitly?