Portál AbcLinuxu, 10. května 2025 11:03

Dotaz: AVR-GCC: Jak pracuje s funkcemi ?

24.4.2007 15:28 Hrabosh | skóre: 26 | blog: HBlog | Brno
AVR-GCC: Jak pracuje s funkcemi ?
Přečteno: 1028×
Odpovědět | Admin

Zdravim vas.

Píšu program pro AT Tiny 2313. Zjistil jsem, že se mi program už nevejde do processoru, tak sem se začal zjišťovat, co má největší vliv na jeho velikost.

Zarazilo mě, že když měl program např. 2,1kB, a já jsem zakomentoval 4 volání nekteré funkce, zmenšil se na 1,6kB. Myslel jsem, že pokud volám nějakou funkci, tak se vloží assemblerovská instrukce, která skočí na začátek f-ce a na konci se skočí zase zpět. Ale podle velikosti té binárky bych čekl, že se tam ta funkce prostě celá vloží.

Nevíte někdo, jak to je ?

To jsem psal já ... to není bordel, to je modulární!
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

24.4.2007 15:55 finn | skóre: 43 | blog: finnlandia | 49° 44´/13° 22´
Rozbalit Rozbalit vše Re: AVR-GCC: Jak pracuje s funkcemi ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak se do toho assembleru podívej, gcc generuje asm výpis s přepínačem -S.
Užívej dne – možná je tvůj poslední.
24.4.2007 15:59 Milan Hejpetr | skóre: 25 | blog: poznamky | Plzen
Rozbalit Rozbalit vše Re: AVR-GCC: Jak pracuje s funkcemi ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejak se mne to nezda...
Samozrejme pri volani funkce se take museji predavat parametry - neni to jen skok a pak return. Zkousel jste se na ten kod podivat treba pomoci avr-gdb ?
Neni rozumejsi psat pro AT Tiny primo v assembleru ? Ty programky pro AT Tiny jsou malicke, takze to tolik casu nezabere a navic toho samozrejme do te pidipameti date o neco vice (myslim tim samozrejme algoritmy) - verte, ze i dnes za to stoji se assembler naucit - v pripade takto malych mikrokontroleru rozhodne.
15.8.2007 17:34 LordAli
Rozbalit Rozbalit vše Re: AVR-GCC: Jak pracuje s funkcemi ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zalezi na optimalizacich. U nekterych optimalizaci to funguje tak, ze volas 5x funkci, tak ji vezme a petkrat obsah funkce vlozi za sebou. ;) Chce si to pohrat s optimalizacema kodu.
15.8.2007 17:41 Radek Podgorny | skóre: 16
Rozbalit Rozbalit vše Re: AVR-GCC: Jak pracuje s funkcemi ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Prekladas to s -Os (optimalizace na velikost)? Nejspis to dela inlining funkci... ...jinak jsi toho moc nenapsal, ty funkce jsou tvoje nebo z nejake "knihovny"? Jde mi o to, ze pokud je nevolas vubec, nemusi se prilinkovat a usetri se...
http://podgorny.cz
26.8.2007 17:32 Dan
Rozbalit Rozbalit vše Re: AVR-GCC: Jak pracuje s funkcemi ?
Odpovědět | | Sbalit | Link | Blokovat | Admin
A ty si zakomentoval všechna volání té dané fce? Pokud ano, pak jí kompilátor v rámci optimalizace vůbec nepřeložil.

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.