Something to also have in mind is that globals (and statics inside functions) end up in ram: let's say that you have some initialized array, a key-map or something like that, if such things are not initialized using const they end up in flash and are copied in ram, the compiler doesn't know that you are not going to modify them (but lint probably does, some versions of it).
char some_array[16] = { 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8 };
This is better because it only lives in flash:
const char some_array[16] = { 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8 };