Eigentlich sollte das bisschen Code sogar ohne Optimierung in den ATmega32 passen... Trotzden ist von nichtoptimiertem Code abzuraten (auch was dessen Laufzeit und RAM-Verbrauch angeht)

Möglicherweise sind auch die Bibliotheken die Platzfresser, weil die auf *printf zugreifen? Oder wird vielleicht gegen eine Bibliothek gelinkt, die ohne -Os erzeugt wurde?