Frage von Interceptor36, 14

Auf ROM kann nur lesend zugegriffen werden, aber das BIOS kann programmiert werden ?

Ich verstehe nicht ganz, warum das BIOS programmiert werden kann, obwohl das beim ROM eigentlich nicht möglich ist. Oder habe ich das falsch verstanden ?

Antwort
von Midgarden, 14

Das BIOS ist ein EPROM und kann mit normalen Mitteln nicht Programmiert werden.

Änderungen im BIOS werden in einen Flash-Speicher geschrieben - der ist einfach änderbar.

IM BIOS-Chip stehen meist nur die Grundroutinen, die Werte dafür liest das BIOS beim Systemstart aus einem weiteren, geschützten Speicher aus. Dieser Speicher wird bei einem BIOS-Update komplett neu geschrieben 

Kommentar von martin7812 ,

Noch eine Anmerkung zu Flashspeicher:

Dieser lässt sich zwar löschen und überschreiben, aber nicht so wie RAM, sondern recht kompliziert. Beispiel:

int variableImRam = 10;
const int variableImFlash = 10;

Das Ändern der Variable im RAM geht ganz normal:

variableImRam = 11;

Das Ändern der Variable im Flash hingegen ist recht kompliziert (hier am Beispiel eines MPC):

FlashCmd = 4;
FlashState = (-1);
*(int *)variableImFlash = 0;
FlashCmd = 5;
while(FlashCmd&32);
FlashCmd = 4;
FlashCmd = 16;
*(int *)variableImFlash = 11;
FlashCmd = 17;
while(FlashCmd&32);
FlashCmd = 16;
FlashCmd = 0;

Außerdem ist es im Flash nicht möglich, einzelne Bytes zu ändern, sondern nur größere "Blöcke". Ich kann also nicht eine einzelne Variable ändern, sondern muss einen größeren Bereich des Flashspeichers komplett neu beschreiben.

Daher gilt Flash als "read-only"-Speicher, obwohl man ihn (sehr kompliziert) überschreiben kann.

Echten EPROM (löschbar mit UV-Licht) hat man in Serienprodukten fast nie eingesetzt, da diese Chips in teure UV-durchlässige Gehäuse eingebaut werden mussten. Stattdessen hat man OTP-EPROM verwendet; das sind dieselben Chips in normalen Plastikgehäusen (und daher nicht löschbar).

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten