Motorola 68k

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.

Reply to
Noexist
Loading thread data ...

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

Reply to
Krzysztof Rudnik

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.