> [...]und das direkt von der Konsole aus compilieren[...]
Ja, anhand der Ausgabe von "make all" kann man nachvollziehen, mit
welchen Parametern avr-gcc zum Compilieren und Linken aufgerufen wird
und diese dann in die Einstellungen der IDE übernehmen (habe selbst das
Eclipse avr plugin nie benutzt).
Auf jeden Fall die Option -lm zu den Linker-Aufrufparametern hinzufügen.
Linker Option --relax ist in aktueller Fassung der Ports auch aktiviert
und hat ein paar freie Bytes zustätzlich gebracht. In älteren Versionen
der Toolchain kann --releax zu Verdruss führen, dann evtl. testweise
weglassen. Compiler-Optionen neben -Os derzeit:
1 | CFLAGS += -funsigned-char
|
2 | CFLAGS += -funsigned-bitfields
|
3 | CFLAGS += -fpack-struct
|
4 | CFLAGS += -fshort-enums
|
5 | CFLAGS += -fno-inline-small-functions
|
6 | CFLAGS += -fno-split-wide-types
|
7 | CFLAGS += -fno-tree-scev-cprop
|
"Linker garbage-collection" kann auch aktiviert werden und ist es auch
im Makefile und in den AVR-Studio Projekteinstellungen (CFLAGS:
-ffunction-sections, -fdata-sections, LDFLAGS: (-Wl)--gc-sections). Bin
aber grade nicht sicher, ob überhaupt noch "toter" Code im
Beispielquelltext enthalten ist. Es gibt allerdings Testroutinen, die
wohl zur Prüfung in der "Butterfly-Fabrik" genutzt werden aber ansonsten
nicht genötigt werden. Kann man also weglassen (Quellcode test.c nicht
compilieren/linken und Aufruf in main()/Test() auskommentieren).
Falls der vorinstallierte Bootloader weiter verwendet werden soll, darf
TEXT+DATA nicht größer als 14KiB sein, da die übrigen 2KiB vom
Bootloader beansprucht werden.