Hello all,
I am working on an application that was using around 350KB of program memory. I have changed it in order to add some more features and now the keil compiler complains there is no enough ROM area.
I am using the LPC2387 with 512KB on-chip ROM and I think my current application uses less than 400KB ROM.
Here is the compiler log message:
smv2.axf: Warning: L6914W: option ro-base ignored when using --scatter. smv2.axf: Error: L6406W: No space in execution regions with .ANY selector matching Section .data(at_ip.o). smv2.axf: Error: L6406W: No space in execution regions with .ANY selector matching Section .data(at_ppp_pap.o). smv2.axf: Error: L6406W: No space in execution regions with .ANY selector matching Section .data(at_mem.o). smv2.axf: Error: L6406W: No space in execution regions with .ANY selector matching Section .data(usbuser.o). smv2.axf: Error: L6406W: No space in execution regions with .ANY selector matching Section .data(rt_time.o). smv2.axf: Error: L6406W: No space in execution regions with .ANY selector matching Section .data(at_udp.o). smv2.axf: Error: L6406W: No space in execution regions with .ANY selector matching Section .data(sockettcpclient.o). smv2.axf: Error: L6406W: No space in execution regions with .ANY selector matching Section .data(dtlibspi.o). smv2.axf: Error: L6407W: Sections of aggregate size 0x20 bytes could not fit into .ANY selector(s).
And here is the scatter file configuration:
LR_IROM1 0x00003000 0x0007D000 { ; load region size_region ER_IROM1 0x00003000 0x0007D000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_IRAM1 0x40000040 0xFFC0 { ; RW data .ANY (+RW +ZI) } RW_IRAM2 0x7FE00000 0x00004000 { .ANY (+RW +ZI) } RW_IRAM3 0x7FD00000 0x00004000 { .ANY (+RW +ZI) } }
I have reserved a bootloader area of 0x3000 size.
Does anyone know why I cannot use more than 350K ROM if the ARM has 512KB ROM??
Thank you,
André Moutinho