AVR Studio-podmíněny překlad, zkompilovat pouze využité fce

Ahoj,

v AVR studiu mam v projektu includovane soubory a to USART.C, ktery obsahuje funkce a include na USART.H. USART.H je tez v projektu jako hlavickovy soubor a obsahuje (extern) prototypy na funkce v USART.C.

Problem ale nastava, kdyz v hlavnim souboru projektu napisu prazdnou fci main, ale do HEX se zkompiluje i to, co se vubec nepouzilo. Je to tak spravne, nebo se da nastavit aby se prelozilo jen to, co se pouzilo?

Zkratka a jednoduse prazdny program (pouze return v main) mi sezere 2% pameti (na Atmega8) jen kvuli tomu, ze jsem neco includoval a potom to ani nepouzil.

Diky moc.

:arrow_right: administrator: přejmenováno z "AVR Studio - podmineny preklad"

A proč tam dáváš něco, co pak nepoužiješ?

WinAVR (o který se asi jedná) tak detailně neznám,ale třeba takový Codevision má možnost použít direktivu #if funcused která říká překladači, že se jí (funkcí z knihovny)má zabývat až tehdy, je- li od někud volána. Něco podobného bych ale čekal taky u WinAVR.

GCC opravdu přeloží do hexu všechno bez ohledu na to, zda je to použito. Jak to ovlivnit jsem nezjistil.

Mělo by to jít takto:

V Menu-Project-Configuration-Custom Options přidej řádek
-fdata-sections -ffunction-sections

Pak klikni na [Linker Options] a přidej řádek
-Wl,-gc-sections

Pak by měl do překladu zahrnout jenom použité funce.