Witam, czy jest na tej grupie ktoś kto używa cross kompilatora dla motki 68000 ? Możecie mnie nakierować na jakiś zjadliwy opis korzystania z tego narzędzia ,konfiguracji itp. Jestem raczej lamą przy korzystaniu z kompilatorów. Po co jest plik crt0 ,dla innych zasobów na płytce trzeba go pisać od nowa? Co to są za sekcje .bss ,.text i do czego służą. Dziękuję serdecznie za pomoc i pozdrawiam.
Motorola 68k
Oct 15, 2003
1 Replies
m68k-elf-gcc
modul startowy - uruchomienie programu zaczyna sie od pierwszej (fizycznie) procedury programu. Zwykle linkuje sie program tak by modul crt0 zostal umieszczony na poczatku i tym samym od niego rozpoczyna sie uruchomienie programu. Zadaniem crt0 jest w ogolnosci uruchomienie funkcji main() z C, ale czesto trzeba wczesniej cos pokombinowac, ustawic jakies dziwne rejestry, a przede wszystkim przekazac stosownie parametry (argc, argv) z systemu do main'a.
Sekcje - .text - sekcja READ-ONLY zawierajaca kod programu i czesto wszystkie niemodyfikowalne dane ("stale napisowe", const itp)
.bss - sekcja niezainicjowanych zmiennych. Zmienne programu kompilator dzieli na te zainicjowane - dla tych musi wygenerowac ich postac poczatkowa - czyli w pliku wynikowym te zmienne zawarte sa jako "gotowe", i te niezainicjowane. Dla zmiennych niezainicjowanych standard mowi ze sa ustawiane na zero. Ale wystarczy policzyc ile miejsca na nie potrzeba, zawartosc jest z gory ustalona - zera. Czyli w pliku wynikowym wystarczy zapisac, ze potrzeba ilestam bajtow sekcji .bss - kod startowy (uruchamiany czesto przez crt0, troche to bywa roznie) wypelnie po prostu ta pamiec zerami przez memset. Rozne opcje umozliwia pozbycie sie sekcji .bss - jest dodawana do sekcji danych zainicjowanych (.data) jako zera.
Krzysiek Rudnik
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required