Makefile: enable LTO

This rearranges Makefile a bit and enables Link Time Optimisation
which leads to a smaller code (77724 text with gcc 4.7.3).

Unconditionally adding -ggdb3 doesn't affect code size anyhow as all
the debugging info is stored in separate sections.

Build-tested only.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Makefile: link with -nostartfiles

This saves a bit more space and a reasonable thing to do since a
custom startup is used anyway.

Build-tested only.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Makefile: switch to newlib-nano

This makes the binary considerably smaller (73852 text with gcc
4.7.3, 71620 text with gcc 4.9.0 from TNT).

Build-tested only.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Merge pull request #140 from paulfertser/master

Flash size optimisations, LTO support. Tested with rev5 hw and 4.7.3 gcc-arm-embedded.
Make code warnings-free with -pedantic

This removes a function that's no longer used, and inline specifiers
from include file (where they're useless anyway). This makes the whole
default project warnings-free with -Wall -pedantic.

Signed-off-by: Paul Fertser <fercerpav@gmail.com>
making boxes[] in serial.c static const to move them to rodata and free ~200bytes RAM
Merge pull request #141 from paulfertser/master

Make code warnings-free with -pedantic, this should guard against more programming errors in the future