Was geht? Es wird compilert oder es läuft wie es soll?

Es wird vielleicht compilert. Aber es sollte nicht lauffähig sein...

Die Größe kann man auch aus dem Mapfile rauslesen lassen:
Code:
grep 'PROVIDE.*__heap_start' <MapFile>
, wobei für <MapFile> der Name des MapFiles einzutragen ist.

Das sollte dann so aussehen:
Code:
        0x0080814d                PROVIDE (__heap_start, .)
Die maximale Adresse darf
0x800060+RAMEND sein. Für einen ATmega8 also 0x80045f

Evtl. noch durch sed oder gawk pipen zum Automatisieren.