Systemy wbudowane
Poniższy rysunek przedstawia skrypt konsolidatora użyty do wygenerowania pliku użytego w powyższym przykładzie.
Określa rodzaioliku wynikowego - domyślnie elf32-littlearm ałe użytkownik za pomocą odpowiedniego parametru może określić który format z poniższe listy będzie użvtv
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
Określa rodzaj architektury sprzętowej na która Generowany będzie kod
OUT PUT_ARCH(arm)
Określa nazwę pierwszej funkcji prosramu
ENTRY(reset_handler)
Definicje sekcji występujących w pliku ELF
SECTIONS
{
Sekcja ,text w pliku wyjściowym będzie składała się z połączonych sekcji. text oraz .rodata pobranych ze wszystkich plików wejściowych. Dodatkowo adresy I 'MA początku oraz końca sekcji zostaną umieszczone »■ zmiennych stext oraz etest.
.text : {
_stext - .;
*(.text)
*(.rodata) /* read-only data (constants) */
*(.rodata*)
. = ALIGN(4);
_etext = . ;
Sekcja .data w pliku wyjściowym będzie składała się z połączonych sekcji .yectors oraz .data pobranych ze | |
wszystkich plików wejściowych. Dodatkowo adresy I MA początku orc |
iż końca sekcii zostano umieszczone w |
zmiennych sdata oraz edata. Adres LMA sekcii został ustawiony n |
a adres bezpośrednio po sekcii .text. |
.data : AT ( ADDR (.text) + SIZEOF (.text) ) {
_sdata = .;
*(.vectors)
*(.data)
Sekcja .bss w pliku wyjściowym będzie składała się z połączonych sekcji. bss pobranych ze wszystkich plików wejściowych. Dodatkowo adresy f MA początku oraz końca sekcji zostaną umieszczone »• zmiennych sbss oraz ebss.
.bss (NOLOAD) : {
. = ALIGN(4);
_sbss = .;
*(.bss)
Początkowy adres VMA sekcji .text oraz .data nie został}' bezpośrednio umieszczone w skrypcie konsolidatora. Ich wartości ustawiane są za pomocą parametrów przekazanych do wywołania konsolidatora (-Ttext 0x20000000 -Tdata 0x300000) znajdującym się w pliku makefile.
5