Karl schrieb:
> Stefan E. schrieb:
>> Karl schrieb:
>>> Das war einfach:
>>
>> Aber falsch. Das "naked" eliminiert auch Sachen, auf die du nicht
>> verzichten möchtest, wie z.B. einen Stack-Frame bei lokalen Daten. Nimm
>> lieber OS_main:
>>
>>
1 | __attribute__ ((OS_main)) int main(void)
|
>
> Der Code wird dadurch 6 Bytes länger.
>
Geht es darum, mit den knappen FLASH auszukommen?
Mit
-mcall-prologues
erzeugt der avr-gcc Aufrufe zur nur noch einer zentralen Push/Pop-Orgie,
was wenn mehrere Funktionen mit kräftigem Registerbedarf existieren,
deutlich FLASH einspart. Der dabei genutzte Code wird je nachdem wie
viele Register gesichert werden müssen mit unterschiedlichen
Einsprungadressen aufgerufen und sichert/restored jeweils nur die
gewünschten Register.
Diese Option hat schon mal einem Nachbauer des Transistortesters
geholfen von seiner 110% FLASH-Belegung weg zu kommen.