avr-gcc - optymalizacja

W projekcie na AVR-a wykorzystuje tylko niektore funkcje z roznych modulow napisanych przeze mnie. Po kompilacji w kodzie wynikowym skompilowane sa wszystkie funkcje wystepujace w modulach, nawet te, ktorych nie wykorzystuje. Jakiej opcji kompilatora uzyc, aby kompilowane byly tylko funkcje uzywane przeze mnie. Przy duzej ilosci funkcji w modulach moze sie okazac, ze zabraknie miejsca w pamieci mikrokontrolera.

Pozdro, Jack

Reply to
jack
Loading thread data ...

Przed chwila napisalem - linker nie moze wybierac pojedynczych funkcji. Dla niego jednostka jest wynik kompilacji pojedynczego pliku .c, czyli normalnie plik .o (lub .obj). Taki plik albo wchodzi do wyniku caly albo wcale. Biblioteki standardowe napisane sa tak, ze najczesciej plik zawiera jedna funkcje (o ile to mozliwe).

Krzysiek Rudnik

Reply to
Krzysztof Rudnik

Nie wiem, co rozumiesz pod nazwą "moduły". Aby linker do programu dołączył tylko niezbędne funkcje, musisz je umieścić w oddzielnych plikach źródłowych (.c), z takich plików zrobić bibliotekę (.a) i dopiero jedną lub wiele takich bibliotek łączyć linkerem.

Podanie w wywołaniu linkera (lub makefile) explicite nazw plików obiektowych (.o) zawsze wciągnie je wszystkie. Dopiero podanie nazw plików bibliotek (.a) pozwoli linkerowi na wybranie podzbioru rzeczywiście niezbędnych plików obiektowych z biblioteki.

Reply to
Adam Dybkowski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.