Um mehr zu erklären, was Firmware von innen ist.
Firmware ist Code, der auf sehr spezifischer Hardware ausgeführt wird. Dies bedeutet, dass die Operationscodes spezifisch für die Hardware sind, für die er geschrieben wurde. Es kann sich um eine Familie von Chips oder Schnittstellen handeln oder nur um einen Gegenstand.
Im Wesentlichen ist dies die Aufgabe der Firmware.
Hat ein bestimmter Prozessor festverdrahtete Anweisungen zum Ausführen und Ausführen, wird dies als "Bootstrap" bezeichnet. Welche der bootfähigsten Computer haben dies in ihrem BIOS.
Initialisieren Sie die Hardware über die Anweisung in der Firmware.
Laden Sie die Sprungtabelle.
Machen Sie den Zugriff auf Register auf einem bestimmten Gerät zugänglich.
Übergeben Sie die Steuerung an die Exit-Routine, sobald das BIOS nach einem Kaltstart (ausgeschalteter Zustand) oder Warmstart (normaler Neustart oder Reset-Pin) verwendet wurde.
Die meisten BIOSes (Firmware) sind für einen bestimmten Chipsatz konzipiert und rollen alle Funktionen dieser aus und konkretisieren alle Daten, die an eine bestimmte Busleitung in einem Computer oder einem eingebetteten Gerät angeschlossen werden könnten.
Festplatten sind ein gutes Beispiel für eine Speicherlösung, die an und für sich ein eingebettetes Gerät ist, auf dem sich auch ein BIOS und eine Form von Firmware auf einem Chip befindet.
Im Wesentlichen besteht jede Firmware aus einer Reihe von Anweisungen, die ein anderer Prozessor ausführt, um die Funktionalität eines Geräts zu verbessern. Es ist eine Software, die auf ein physisches Gerät geladen wird. Wenn die Stromversorgung unterbrochen wird, ist sie verfügbar, sobald das Gerät wieder mit Strom versorgt wird.
Technisch gesehen können Sie jede Programmiersprache oder Skriptsprache verwenden, um Binärdateien zu erstellen. Sie müssen nur wissen, wie der Prozessor, auf den Sie abzielen, funktioniert, wie die tatsächlichen Operationscodes aussehen, wie das interne Register (geschweige denn, wofür sie bestimmt sind), wie man binäre und hexadezimale Zahlensysteme lernt und wie man einen Assembler erstellt, der sich sparen lässt Ihr Code in Assemblersprache. Nachdem dies abgeschlossen ist, können Sie ein anderes Programm damit beauftragen, es in eine Binärdatei zu konvertieren, und es dann als .bin- oder .hex-Datei speichern.
Wenn Sie wissen möchten, wie Ada, C, C ++, D und andere Programmiersprachen ihre "Token", dh ihren nativen Code, der in Pseudo-Op-Codes zerlegt wird, in Maschinensprache umwandeln. Es gibt mehrere Bücher, von denen ich Ihnen empfehle, dass Sie sie lesen. Einige sind recht elementar und konzentrieren sich auf sehr spezifische Prozessoren, aber es ist gut zu lernen. Ich werde Ihnen vorerst ein Buch geben, weil ich Sie oder andere, die dies in Informationen lesen, nicht ertränken möchte.
- Erstellen eines Compilers mit "C" von Charles N. Fischer & Richard J. LeBlanc, Jr.
- Besuchen Sie diese Website, sie basiert auf dem x86-Chipsatz des IBM-PCs.
http://www.laynetworks.com/assembly%20tutorials.htm
Das ist die Einführung in die Assembler-Programmierung am PC. Es geht um die Behandlung von Interrupts (Hardware- und Software-Interrupts) und viele andere Themen. Es wird ausführlicher erläutert, was ein BIOS tatsächlich tut und wie man damit arbeitet.
Im Gegensatz zu Assemblersprache und Maschinensprache können Sie in Ada, C, C ++ und D viel mehr lernen, wenn Sie Ihre Hardwarespezifikationen nicht kennen. Wenn Sie in der Assembler- und Maschinensprache nicht wissen, was Sie tun, passiert entweder etwas Schlimmes oder der Code funktioniert nicht. Ich bevorzuge den letzteren Fall und arbeite nicht gegen etwas Schlechtes.
Hinweis: Über die Antwort oben, über Flash-RAM, gibt es keine solche Sache, es gibt Flash-ROMs, aber keine Flash-RAMs. In Flash-ROMs befindet sich die Firmware, in den RAMs befinden sich batterie- oder kondensatorgesicherte RAMs oder ein anderes Flash-ROM, das Parameter für die von Ihnen festgelegten BIOS-Optionen enthält.
Die Firmware enthält einen Code zum Speichern oder Löschen des Datenspeichers (im Gegensatz zum Programmspeicher / zur Firmware selbst), wenn es sich um ein Flash-ROM oder einen RAM-Chip handelt. Wenn auf einem PC das BIOS-Passwort verfälscht wird oder Sie sich nicht daran erinnern (oder jemand mit Ihnen herumspielt), können Sie das Gehäuse öffnen und die beiden Stifte mit der Bezeichnung "CMOS CLR / CMOS CLEAR / BIOS RESET / BIOS RST" finden. Wenn Sie diese beiden Pins kurzschließen, wird auch der Speicher gelöscht. Danach müssen Sie nur noch die Reset-Taste drücken, wenn die beiden Pins noch kurzgeschlossen sind. Dadurch wird das Kennwort gelöscht und Sie können uneingeschränkt auf Ihr PC-BIOS zugreifen (vorausgesetzt, Sie haben einen neueren Computer ab den 1990er Jahren).
Auf neuen PCs verfügen Sie über einen Flash-Speicher für die Firmware und haben ein batteriegepuffertes SRAM (muss nicht wie DRAM-Chips ständig aktualisiert werden, sondern basiert auf einer älteren Technologie).