Portál AbcLinuxu, 7. května 2025 19:55

Dotaz: Avr-gcc optimalizace

7.6.2010 21:47 rabJn
Avr-gcc optimalizace
Přečteno: 558×
Odpovědět | Admin
Jaké jsou vhodné optimalizace pro kompilování kódu pro mcu? Vyšťoural jsem toto:

avr-gcc -c -mmcu=atmega8 -I. -gdwarf-2 -DF_CPU=14745600UL -O1 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wextra -Wundef -Wsign-compare -std=gnu99 -MMD -MP -MF

A proč je program s -O1 menší než s -Os -O3 a -O2?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

vlk avatar 7.6.2010 22:07 vlk | skóre: 23 | blog: u_vlka
Rozbalit Rozbalit vše Re: Avr-gcc optimalizace
Odpovědět | | Sbalit | Link | Blokovat | Admin

neviem, ja som mal vzdy binar vacsi s 01 nez O2 alebo Os

osobne pouzivam takmer vzdy O2 a ked mi ide o kazdy bajt, tak Os

You don't exist, Go away !
8.6.2010 11:37 chrono
Rozbalit Rozbalit vše Re: Avr-gcc optimalizace
Odpovědět | | Sbalit | Link | Blokovat | Admin
-Os by malo byť najmenšie (takže ak nie je, je to zvláštne, možno tam máš nejaké inline funkcie, ale netuším, či sa vkladajú aj pri -Os)

Ostatné môžu byť väčšie napr. práve kvôli tým inline funkciám (pretože sa vkladajú na viac miest), prípadne sa nejaké veľmi malé funkcie môžu automaticky zmeniť na inline (a taktiež sa optimalizujú cykly...; v dokumentácii sa dá nájsť, aké optimalizácie sa pri -O2 používajú a z ich popisu sa dá odhadnúť, či výsledný program môžu zväčšiť).
9.6.2010 15:30 rabJn
Rozbalit Rozbalit vše Re: Avr-gcc optimalizace
No mám tam hromadu volání fcí jako několik sendmsg(1), které posílají na na sériovou linku nějaký text.
stativ avatar 8.6.2010 12:27 stativ | skóre: 54 | blog: SlaNé roury
Rozbalit Rozbalit vše Re: Avr-gcc optimalizace
Odpovědět | | Sbalit | Link | Blokovat | Admin
Proč tam máš debuggovací (-gdwarf-2) informace? To není zrovna dobrá optimalizace…
Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk
9.6.2010 15:31 rabJn
Rozbalit Rozbalit vše Re: Avr-gcc optimalizace
To nevím, i bez toho to má stejnou velikost, koukal jsem, že to má avr-gcc jako default.
10.6.2010 12:13 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Avr-gcc optimalizace
AFAIK se ty informace uloží jenom do přeložené binárky (elf), ale už ne do obrazu programu pro MCU, takže tohle je asi jedno.
Quando omni flunkus moritati
10.6.2010 12:12 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Avr-gcc optimalizace
Odpovědět | | Sbalit | Link | Blokovat | Admin
Důležitá otázka je, proč chceš optimalizovat. Obecně platí, že čím agresivnější optimalizace na rychlost, tím větší bude výsledná binárka (loop unroll, inline funkce atd...) A naopak optimalizace na velikost můžou program o něco zpomalit.

Proč je program s -O1 menší, než ostatní, těžko říct. Obecně mám tu zkušenost, že optimalizace v avr-gcc nefungují úplně nejlíp (i na -O2 generuje nesmysly, které by se nechaly zkrátit a zrychlit), takže to prostě může být chyba/vlastnost.
Quando omni flunkus moritati

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.