Hey Guys,
I faced a huge problem while exporting my projects from version 10.3.1 to version 11.0.0.
Importing went good but the Project would not build. Showcasing the error
PROGRAM_FLASH: 324296 B 472 KB 67.10%
SRAM_UPPER: 124092 B 65472 B 189.53%
SRAM_LOWER: 0 GB 65520 B 0.00%
c:/nxp/mcuxpressoide_11.0.0_2516/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.0.0.201905131304/tools/bin/../lib/gcc/arm-none-eabi/8.2.1/../../../../arm-none-eabi/bin/ld.exe: region `SRAM_UPPER' overflowed by 58620 bytes
The project is a FreeRTOS project using the HEAP 5 memory scheme which has different memory location we can assign.
Anyhow, the issue was that the auto-generated Linker File(*.ld file) was adding '.' at the end of the section names, you describe in the MCU settings as shown below
VERSION 11.
.noinit_RAM2 (NOLOAD) :
{
. = ALIGN(4) ;
*(.noinit.$RAM2)
*(.noinit.$SRAM_LOWER)
*(.noinit.$RAM2.*)
*(.noinit.$SRAM_LOWER.*)
. = ALIGN(4) ;
} > SRAM_LOWER
the same section in Version 10.3.1
.noinit_RAM2 (NOLOAD) : ALIGN(4)
{
*(.noinit.$RAM2*)
*(.noinit.$SRAM_LOWER*)
. = ALIGN(4) ;
} > SRAM_LOWER
The FreeRTOS heap5 file is where we mention the array size and name
static __attribute__ ((used,section(".noinit.$SRAM_LOWER_Heap5"))) uint8_t heap_sram_lower[60*1024]; /* placed in in no_init section inside SRAM_LOWER */
static __attribute__ ((used,section(".noinit_Heap5"))) uint8_t heap_sram_upper[20*1024]; /* placed in in no_init section inside SRAM_UPPER */
These arrays where not being recognized by the linker and hence producing the overflowed error.
Once I changed the name of the arrays to add '.' it fixed the problem.
changed Named
static __attribute__ ((used,section(".noinit.$SRAM_LOWER._Heap5"))) uint8_t heap_sram_lower[63*1024]; /* placed in in no_init section inside SRAM_LOWER */
static __attribute__ ((used,section(".noinit_Heap5."))) uint8_t heap_sram_upper[28*1024]; /* placed in in no_init section inside SRAM_UPPER */
I don't know why that addition of character "." was added to the linker scripts. Slightly annoying when you are exporting to an updated version.
Please give a way to remove that feature for backward compatibility. So we don't have to make this small change on all the projects and branches of them.