avr-gcc - optymalizacja



Masz problem? Zapytaj na forum elektroda.pl

Poprzedni Następny
Wiadomość
Spis treści
From: " jack" <lufcadio.SKASUJ_at_nospam_gazeta.pl>
Subject: avr-gcc - optymalizacja
Date: Wed, 26 Jan 2005 08:44:24 +0000 (UTC)


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

--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/

Poprzedni Następny
Wiadomość
Spis treści
From: Krzysztof Rudnik <rudnik_at_nospam_kki.net.pl>
Subject: Re: avr-gcc - optymalizacja
Date: Wed, 26 Jan 2005 10:02:44 +0100


jack wrote:

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


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


Poprzedni Następny
Wiadomość
Spis treści
From: Adam Dybkowski <adybkows123_at_nospam_amwaw.edu.pl>
Subject: Re: avr-gcc - optymalizacja
Date: Wed, 26 Jan 2005 10:25:06 +0100


jack wrote:

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.

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.

--
Adam Dybkowski
http://www.amwaw.edu.pl/~adybkows/

Uwaga: przed wysłaniem do mnie maila usuń "123" z adresu.