(12-04-2012 21:45)JaHo napisał(a): Czy ktoś próbował avr gcc z "-Os -mcall-prologues"? Według "AVR Libc - FAQ - Which -O flag to use?"(...)
-Os -mcall-prologues to opcje, które zawsze mam włączone
-Os to "opcja ta włącza optymalizację pod względem rozmiaru kodu wynikowego. Włączane są wszystkie optymalizacje z poziomu -O2 za wyjątkiem tych, które mogą skutkować zwiększeniem rozmiaru kodu wynikowego (...)" Natomiast opcja
-mcall-prologues "powoduje użycie kodu prologu i epilogu wspólnego dla wszystkich funkcji, zamiast generowania go dla każdej z funkcji oddzielnie (...)" (cytaty za: Andrzej Witkowski - "Mikrokontrolery AVR programowanie w języku C")
Ta ostatnia funkcja daje duży zysk w ilości kodu, gdy mamy większą ilość funkcji, szczególnie krótkich. Wadą jest generowanie skoku do prologu i epilogu co wydłuża czas o wykonanie skoków.