Linker, Loader und ausführbare Formate

Welche Aufgabe hat ein in der Embedded-Entwicklung verwendetes Linker-Skript?

  1. AEs weist den Linker an, an welchen Adressen, z. B. in Flash oder RAM, die einzelnen Sections abgelegt werden
  2. BEs beschreibt die Schritte zur automatischen Ausführung von Programmtests
  3. CEs legt Regeln für die Schreibweise von Quellcode fest und meldet Verstöße
Antwort und Erläuterung anzeigen

Antwort: A. Es weist den Linker an, an welchen Adressen, z. B. in Flash oder RAM, die einzelnen Sections abgelegt werden

Bei PC-Betriebssystemen bestimmt der Loader die Adressen; bei Mikrocontrollern werden die Adressen beim Einschalten unverändert verwendet. Im Linker-Skript werden Startadresse und Größe von Flash und RAM angegeben und die Anordnung festgelegt, etwa .text und Konstanten in den Flash sowie .data, .bss und Stack in das RAM. Auch Elemente, die an festen Adressen liegen müssen, wie der Interrupt-Vektor, werden hier angegeben.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Linker, Loader und ausführbare Formate

  1. Welche Verarbeitung führt der Startcode bei einem Mikrocontroller ohne Betriebssystem unmittelbar nach dem Einschalten aus, bevor er main aufruft?
  2. Was ist der Unterschied zwischen „Section“ und „Segment“ in ELF-Dateien?
  3. Welcher Angriff lässt sich leichter verhindern, wenn Speicherseiten nicht gleichzeitig „beschreibbar“ und „ausführbar“ sein dürfen (W^X, Trennung von Schreiben und Ausführen)?
  4. Wann wird bei Shared Libraries unter Linux die Versionsnummer des soname, wie das „.1“ in libfoo.so.1, im Allgemeinen erhöht?
  5. Was lässt sich unter Linux erkennen, wenn der Befehl ldd auf eine ausführbare Datei angewendet wird?

Vergleiche zu diesem Thema