3.5.3 How Can I Reduce RAM Usage?

Consider using auto variables rather than global or static variables as there is the potential that these may share memory allocated to other auto variables that are not active at the same time. Memory allocation of auto variables is made on a stack, described in 10.3 Auto Variable Allocation and Access.

Rather than pass large objects to, or from, functions, pass pointers which reference these objects. This is particularly true when larger structures are being passed.

Objects that do not need to change throughout the program can be located in program memory using the const qualifier (see 10.4 Variables in Program Memory). This frees up precious RAM, but slows execution.