6837093802

6837093802



Systemy wbudowane

1.4. Skrypty konsolidatora

Konsolidator (ang. linker) to program który w trakcie procesu konsolidacji łączy podane pliki obiektowe i biblioteki statyczne tworząc plik wykonywalny. Pracą konsolidatora steruje plik konfiguracyjny zwany skiyptem konsolidatora. Określa on w których obszarach pamięci umieszczone mają być poszczególne fragment}' programy zwane sekcjami. W większości plików w formacie ELF znajdują się następujące sekcje: .tekst zawierająca binarny kod programu, .data zawierająca zainicjalizowane zmienne globalne oraz .bss zawierająca niezainicjalizowane zmienne lokalne. Informacje na temat sekcji występujących w danym pliku można uzyskać korzystając z narzędzia objdump pochodzącego z pakietu GNU Binutils. Znaczenie poszczególnych kolumn jest następujące: indeks, nazwa sekcji, rozmiar sekcji, Virtual Memory Address (adres w pamięci pod który sekcja musi zostać załadowana aby program działał poprawnie), Load Memory Address (adres w pamięci pod którym sekcja będzie załadowana do pamięci), położenie sekcji wyrażone jako przesunięcie od początku pliku ELF oraz wyrównanie danej sekcji w pamięci. Wyróżnienie adresów LMA oraz VMA pozwala miedzy innymi na umieszczenie sekcji .data w pamięci ROM znajdującej się pod adresem LMA i przeniesienie jej do pamięci VMA podczas startu systemu.

gdb-test@dmcs

labl:~/gdb-te.

t-example$

objdump

h wyni k.e

Lf

wynik.elf:

file format

elf32-little

Sections: Idx Name

Size

VMA

LMA

File off

Algn

0 .text

00000988

20000000

20000000

00000080

2**4

CONTENTS

ALLOC, LOAD, READONLY, CODĘ

1 .data

00000068

00300000

20000988

00000a08

2**2

CONTENTS

ALLOC, LOAD, DATA

2 .bss

000000a8

ALLOC

00300068

200009f0

00000a70

2**2

Powyższy przykład należy interpretować w następując}' sposób:

1.    sekcja .text o rozmiarze 2440 bajtów (988h) będzie załadowana do pamięci pod adres 20000000h (kolumna VMA). Jednocześnie sekcja ta będzie przechowywana w pamięci przed uruchomieniem programu pod adresem 20000000h (kolumna LMA).

2.    sekcja .data o rozmiarze 104 bajtów (68h) podczas uruchamiania programu musi zostać załadowana do pamięci pod adres 00300000h (kolumna VMA). Jednocześnie sekcja ta będzie przechowywana w pamięci przed uruchomieniem programu pod adresem 20000988h (kolumna LMA). Kopiowaniem danych spod adresów LMA do VMA zajmują się biblioteki startowe systemu.

3.    sekcja .bss o rozmiarze 168 bajtów (A8h) musi zostać załadowana do pamięci pod adres 00300068h (kolumna VMA). Jednocześnie sekcja ta będzie przechowywana w pamięci przed uruchomieniem programu pod adresem 200009f0h (kolumna LMA).



Wyszukiwarka

Podobne podstrony:
Procesory ARM w systemach wbudowanychDefinicje podstawowe (3)★ Pamięć komputerowa (ang. Computer
Procesory ARM w systemach wbudowanychDefinicje podstawowe (4)* Komputer SoC (ang. System-on-Chip) Uk
Systemy wbudowane Przetworniki magnetorezystancyjne GMR (ang. Giant Magnetoresistance) o Sensory GMR
System operacyjny System operacyjny - czyli inaczej OS (od ang. Operating System). Jest to program k
Image2 Packet-snifTer - jest to program, który jest uruchomiony na jakieś maszynie w sieci i "p
WAFEL.COM ^.eafnod ???5. Sniffing Packet-sniffcr - jest to program, który jest uruchomiony na jakieś
Kolejną wartą uwagi audycją skierniewickiego Radia RSC jest „Radiowy Raport”. Jest to program, który
3 SYSTEM ROTAMIX - SNCR Technologia ROFA ogranicza tworzenie się tlenków azotu w trakcie procesu spa
Systemy wbudowane Poniższy rysunek przedstawia skrypt konsolidatora użyty do wygenerowania pliku uży
Systemy wbudowaneRozdział 1PROCES KOMPILACJI I KONSOLIDACJI 1.1. Wstęp Przed wgraniem do pamięci

więcej podobnych podstron