Linker, loader en uitvoerbare formaten
Wat is de juiste verwerking die de opstartcode direct na het inschakelen uitvoert voordat main wordt aangeroepen op een microcontroller zonder OS?
- AAlle machinecode van .text vanuit het RAM terugschrijven naar flash
- BDe inhoud van het RAM uitlezen en de waarden van variabelen bij de vorige uitschakeling herstellen
- CDe beginwaarden van .data van flash naar RAM kopiëren en het .bss-gebied met 0 vullen
Antwoord en toelichting tonen
Antwoord: C. De beginwaarden van .data van flash naar RAM kopiëren en het .bss-gebied met 0 vullen
Bij uitschakelen gaat de inhoud van het RAM verloren, dus worden de waarden van variabelen met een beginwaarde opgeslagen in het niet-herschrijfbare flash en kopieert de opstartcode ze naar de plaats van de variabelen in het RAM. Het gebied van variabelen zonder beginwaarde (.bss) wordt met 0 gevuld. In het linkerscript worden voor .data apart het adres waar het in flash staat en het adres dat tijdens uitvoering in RAM wordt gebruikt opgegeven. Pas daarna kan main beginnen in de toestand die de regels van C beloven.
Verder: nog 9 vragen over Linker, loader en uitvoerbare formaten