21.08.2012 Aufrufe

Computertechnik mit Mikrocontrollern

Computertechnik mit Mikrocontrollern

Computertechnik mit Mikrocontrollern

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

KAPITEL 13. AUFBAU DES SYSTEMS 165<br />

An dieser Stelle sei erwähnt, daß der Aufruf des gcc eigentlich<br />

mehrere Programme aktiviert:<br />

cpp Der C-Preprozessor bearbeitet alle Zeilen, die <strong>mit</strong> dem<br />

Zeichen # beginnen.<br />

cc Der C-Compiler übersetzt die Sprache C in Assembler.<br />

as Der Assembler übersetzt in relokativen Maschinencode.<br />

Relokativer Code kennt noch keine feste Adresse.<br />

ld Der Linker verbindet eine oder mehrere Objektdateien<br />

(Ausgaben des Assemblers) <strong>mit</strong> den Programmen des<br />

Runtimes zu einem fertigen Maschinenprogramm.<br />

Mit dem Disassembler kann man sehr gut die Erweiterungen<br />

des Programmes durch Teile des Runtime-Pakets erkennen.<br />

In diesem Fall entspricht das der Initialisierung der Interrupt-<br />

Vektoren und der Initalisierung des Arbeitsspeichers.<br />

Interessant sind auch die Optimierungsstufen des Compilers.<br />

Werden die drei Variablen der Funktion wait nicht als register<br />

bzw volatile deklariert, so werden die Schleifen in den<br />

Optimierungsstufen -O2 und -O3 wegoptimiert. Der Compiler<br />

erkennt, dass <strong>mit</strong> den Variablen nichts mehr passiert und<br />

die Schleifen nur Zeit verschwenden und entfernt diese! Aus<br />

diesem Grund sollte man Optimierung erst am Ende der Programmentwicklung<br />

einsetzen.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!