GCC pod arm'a (LPC2106) linkowanie mniejszego kodu

Witam uzywam arm-elf-gcc oraz arm-elf-ld (wersja 3.4.3 oraz 2.15). Procek armowy LPC2106 Philis'a.

Daze do zmniejszenia ilosci kodu chcac wyrzucic z pliku wynikowego (elf albo hex) funkcje ktore pomimo ze zdefiniowano w plikach *.c nie sa uzywane w programie.

Projekt sklada sie z 3 plikow main.c a.c b.c. Kompliluje z opcja "-ffunction-sections" aby kompilator w plikach *.o umiescil informacje o uzyciu poszczegolnych funkcji tzw garbage collection:

arm-elf-gcc $(DIRS) O2 -ffunction-sections -mcpu=arm7tdmi -Wall -c -fmessage-length=0 -o$@ $<

Linkuje z opcja linkera "--gc-sections" (garbage collection sections) aby zebral infomracje ktore funkcje sa nieuzywane:

arm-elf-ld $(DIRS) --gc-sections -Tlpc2106.ld -o $(UTPUTS) $(LINK_OBJS) $(LIBS)

Jeszcze zamieniam elf'a na hex'a :

arm-elf-objcopy -O ihex $(ELFOUTPUT) $(HEXOUTPUT) >> $(STROUTPUT)

Jednak wielkosc pliku hex wynosi 13 bajtow! pomimo ze powinno byc duzo wiecej - fukcja main wywoluje inne funckje i uzywam przerwan....

PS znalazlem informacje na:

formatting link
ale nie pomaga:(

Ktos moze pomoc? szukalem na google bez skutku. Dziekuje

Reply to
tp.net.pl
Loading thread data ...

Thus wrote tp.net.pl <wytnijto snipped-for-privacy@tlen.pl:

Zamiast tak cudować: - umieść każdą funkcję w osobnym pliku *.c - zrób z nich bibliotekę (*.a) - przy linkowaniu biblioteki włączane są tylko używane moduły

Paweł

Reply to
Paweł Więcek

dodaj do pliku linkera: KEEP(startup)

startup zamien na nazwe sekcji, w ktorej masz kod startowy

Jesli nie pomoze, to podeslij plik konfiguracyjny linkera.

Pozdr AK

Reply to
AK

In the darkest hour on Fri, 11 May 2007 08:59:30 +0200, tp.net.pl <wytnijto snipped-for-privacy@tlen.pl screamed:

Pliki .a to właśnie "biblioteki statyczne". I tak właśnie jest. A tworzenie ich to nie mordęga tylko dodanie dwóch prostych poleceń: ar i ranlib.

Reply to
Artur M. Piwko

Thus wrote Artur M. Piwko snipped-for-privacy@pu.kielce.pl>:

Jednego... Ranlib zbędny jest.

Paweł

Reply to
Paweł Więcek

Thus wrote tp.net.pl <wytnijto snipped-for-privacy@tlen.pl:

Obawiam się, że się źle orientujesz. A na pewno źle cytujesz.

Paweł

Reply to
Paweł Więcek

buke napisał(a):

Przecież to da się zautomatyzować. Jeżeli wszystkie funkcje nie są statyczne (czyli mają być dostępne z zewnątrz) i już posprzątałeś używanie zmiennych statycznych i deklarację globalnych, to bardzo ładnie automatycznie można wygenerować n plików, z których każdy zawiera początek pliku oryginalnego aż do pierwszej funkcji (komentarze, includy itp) oraz n-tą funkcję i ew. końcówkę pliku po ostatniej funkcji (komentarze).

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.