Online compliler memory map/management

11 Nov 2013

I've recently had problems with the Ethernet Interface library and its use of memory. I am developing for the LPC1768, and created a program using the online tools that included the EthernetInterface library, and it compiled and ran fine.

After exporting to code red for use in LPCXpresso, the build fails with an error saying "'.bss' will not fit in region 'RamLoc32'" and "region 'RamLoc32' overflowed by 8552 bytes".

I understand how the 64kB SRAM is laid out in the memory, as a 32kB block and two 16kB blocks, so what I believe to be the problem is the compiler is trying to fit the whole program in the first 32kB block.

I am assuming there is something going awry with the linker stage, as that is where the memory is organised and certain files are set to use certain memory locations.

So, what's the difference between the online compiler's linker stage and the exported LPCXpresso's linker stage? (assuming I'm in the right area).