Hi ;) . I am working on a someout big project with atmega 2560 and arduino(grafic lcd,gps,gsm,bluetooth,system control etc..) and i have run out of ram.I have done lots of optimizations(like PROGMEM and direct sprite drawing) but it seems that i cannot continue without adding at least another 8 kb of ram.The problem is that i need it for data and bss zones because my program is using a lot of global objects that need to be active continuously and i need access to external ram before the start of the sketch, so i need to change compiler options for the board and also change needed registers very early in program execution(before the sketck declarations starts). Is this doable, if so please give me some pointers. Thank you. :)
I already read that article but it is not useful for me on software side, it does not contain a procedure for realocation of data and bss segments in external memory.
Add startup code to one of the .init sections to initialize your external RAM hardware. Create a new linker script that moves .data and .bss into the address space occupied by external RAM. Perhaps only command-line options will be needed. See http://www.nongnu.org/avr-libc/user-manual/malloc.html
Ok, thanks for your help. ;)
Have you considered the mega1284p? It has less flash, 128K, but twice as much RAM, 16K.