avr-gcc erzeugt das precompile (*.i) und den Assembler (*.s) nur temporär und löscht diese Dateien wieder. Mit der Option -save-temps bleiben die Dateien erhalten.
An den Makros schein's nicht zu liegen.
Und der Assembler schaut auch ganz ok aus. Einfacher durchzusteigen ist vielleicht mit einem Debugger (auf asm-Ebene) durchzusteppen und zu schauen, ob die Adressen stimmen.
Die Speicher-Verbrauche kommen mir recht hoch vor, nur für LCD Ausgabe. Andererseits sind die *printf* als Speicherfresser bekannt...
Zur Compile-Zeit (bzw Link-Zeit) kann nur der statische Speicherplatzbedarf bestimmt werden. Da kommt noch hinzu, was der Compiler nicht sehen kann, also Platz für die Frames von Funktionen, Funktionsaufrufe und dynamischer Speicher via malloc, etc
Assembler zu können ist nicht notwendig, aber manche Fehler lassen sich fix finden, wenn man nen Blick ins asm wirft und es einem wie Schuppen von den Augen fällt...
Lesezeichen