Linker, Loader und ausführbare Formate
Welche Verarbeitung führt der Startcode bei einem Mikrocontroller ohne Betriebssystem unmittelbar nach dem Einschalten aus, bevor er main aufruft?
- ADen gesamten Maschinencode von .text aus dem RAM in den Flash zurückschreiben
- BDen Inhalt des RAM auslesen und die Variablenwerte vom letzten Abschalten wiederherstellen
- CDie Initialwerte von .data aus dem Flash in das RAM kopieren und den Bereich .bss mit 0 füllen
Antwort und Erläuterung anzeigen
Antwort: C. Die Initialwerte von .data aus dem Flash in das RAM kopieren und den Bereich .bss mit 0 füllen
Beim Ausschalten geht der RAM-Inhalt verloren; die Werte von Variablen mit Initialwert werden daher im nicht überschreibbaren Flash gespeichert, und der Startcode kopiert sie an die Stellen der Variablen im RAM. Der Bereich der Variablen ohne Initialwert (.bss) wird mit 0 gefüllt. Im Linker-Skript werden für .data getrennt die „Adresse im Flash“ und die „zur Laufzeit im RAM verwendete Adresse“ angegeben. Erst danach kann main in dem von C zugesicherten Zustand beginnen.