Jak przenieść projekt ze środowiska IAR Embedded Workbench do Atollic TrueSTUDIO – poradnik migracyjny

 

Tab. 18. Parametry wywołania

Parametr IAR Parametr GNU Rozdział dokumentacji GCC Komentarz
–only_stdout brak Włącza wykorzystywanie tylko standardowego wyjścia – możliwe jest to przy wywoływaniu kompilatora z wiersza poleceń.
–output -o 3.2 Ustawia nazwę pliku obiektowego.
–predef_macros -E –dM 3.11 Wypisuje symbole predefiniowane.
–preinclude -include 3.11 Wymusza włączenie do kodu pliku, którego nazwa występuje po tym parametrze przed wczytywaniem pliku z kodem źródłowym.
–preprocess -E 3.11 Generuje wyjście preprocesora.
–public_equ –defsym 2.1, dokumentacja linkera ld Opcja IAR definiuję etykietę asemblera o globalnej nazwie. W GCC tworzy symbol globalny o podanym adresie w pliku wyjściowym.
-r -g* 3.9 Generuje informacje dla debugera.
–remarks brak Włącza uwagi/komentarze.
–require_prototypes -Wmissing-prototype 3.8 Sprawdza czy funkcje są zadeklarowane zanim zostaną zdefiniowane.
–section –unique 2.1, dokumntacja linkera ld Zmienia nazwę sekcji.

–separate_cluser_for…

_initialized_variables

brak Oddziela zmienne zainicjalizowane i niezainicjalizowane.
–silent brak Włącza tryb pracy “cichej”.
–strict_ansi

-ansi

-pedantic

3.4 I 3.8 Sprawdza dokładnie zgodność ze standardem ISO/ANSI C.
–thumb -mthumb 3.17.2 Ustawia Thumb jako domyślny typ instrukcji.
–use_unix_directory_
separators
brak Używa znaku “/” jako separatora w ścieżkach. Jest to domyślne zachowanie GCC.
–warnings_affect_exit_code brak Ostrzeżenia wpływają na kod wynikowy. Jest to domyślne zachowanie GCC.
–warnings_are_errors -Werror 3.8 Ostrzeżenia są traktowane jak błędy.

 

Zarządzenie konsolidacją

Wszystkie współczesne zestawy narzędzi do kompilacji zawierają konsolidator (linker), używany do łączenia plików wyjściowych kompilatora, asemblera i bibliotek w plik wykonywalny. Konsolidator może więc mieć pliki wejściowe trzech typów:

  • wymagane w aplikacji pliki relokowalne obiektów,
  • pliki bibliotek zawierające moduły biblioteczne konieczne w aplikacji,
  • pliki sterujące pracą konsolidatora.

W niniejszym podrozdziale omówione zostało wykorzystanie i format pliku sterującego konsolidacją, lecz przed wejściem w szczegóły warto zrozumieć, jak konsolidator można wywoływać. Jako że aplikacja GCC pozwala na automatyczne wywoływanie narzędzi, z których się składa, można konsolidator wywoływać bezpośrednio lub pośrednio.

jest równoważne z:

Obie powyższe komendy spowodują pobranie pliku plik.o, konsolidację go z plikiem libc.a z biblioteki standardowej i wygenerują plik w formacie wykonywalnym ELF nazywający się plik.elf.

Opcja „-lc” to zapis skrótowy, w którym „-l” każe linkerowi włączyć do wyniku bibliotekę, którą znajdzie przeszukując ścieżkę domyślną, środowisko oraz inne miejsca wskazane w linii poleceń, natomiast „c” oznacza nazwę tej biblioteki – libc.a lub libc.so (odpowiednio, wersję statyczną lub dynamiczną). Wiele systemów wbudowanych pracuje bez wykorzystania systemu Linux, więc dostępne dla nich są tylko wersje statyczne.

O autorze