Firmware -Komponenten variieren je nach Gerät, auf dem es ausgeführt wird, umfassen jedoch im Allgemeinen:
1. Bootloader: Dies ist der erste Code, der ausgeführt wird, wenn das Gerät eingeschaltet wird. Zu den Hauptaufgaben gehören:
* Hardware initialisieren: Einrichten der CPU, Speicher und Peripheriegeräte.
* Laden der Hauptfirmware: Auffinden und Laden des Betriebssystems oder des Anwendungscodes aus Speicher (Flash -Speicher, ROM usw.).
* Selbsttests durchführen: Überprüfen Sie Hardwarefehler.
* Aktualisierungen der Handhabung: Bereitstellung von Mechanismen zur Aktualisierung der Hauptfirmware.
2. Betriebssystem (Betriebssystem) oder Echtzeit-Betriebssystem (RTOs): Viele Firmware -Implementierungen umfassen ein leichtes Betriebssystem oder RTOs zur Verwaltung von Ressourcen und Aufgaben. Dies tritt häufiger in komplexen Geräten auf. Einfachere Geräte können diese Komponente insgesamt überspringen. Das OS/RTOS -Griff:
* Aufgabenplanung: Verwaltung der Ausführung verschiedener Softwaremodule.
* Speicherverwaltung: Zuordnung und Freigabe des Speichers für Aufgaben.
* Kommunikation zwischenprozess (IPC): Ermöglichen, dass verschiedene Softwaremodule kommunizieren.
* Interrupt -Handhabung: Reaktion auf Hardware -Interrupts.
* Geräte -Treiber: Schnittstelle mit den Hardwarekomponenten.
3. Anwendungscode: Dies ist die Kernfunktionalität des Geräts. Es führt die spezifischen Aufgaben aus, für die das Gerät ausgelegt ist. Beispiele sind:
* Kontrollalgorithmen: In eingebetteten Systemen steuern Motoren, Sensoren oder andere Aktuatoren.
* User Interface (UI) Routinen: Umgang mit Benutzereingaben und Anzeigen der Ausgabe auf einem Bildschirm oder einer anderen Schnittstelle.
* Netzwerkprotokolle: Kommunikation mit anderen Geräten über ein Netzwerk.
* Datenverarbeitung und Speicher: Daten sammeln, verarbeiten und speichern.
4. Gerätetreiber: Dies sind Softwaremodule, die als Schnittstellen zwischen der Firmware und den Hardwarekomponenten des Geräts fungieren. Sie bieten Funktionen, um auf spezifische Hardware zuzugreifen und zu steuern, z. B.:
* Speichercontroller: Zugriff auf verschiedene Arten von Speicher.
* Peripheriegeräte: Steuern Sie Peripheriegeräte wie Sensoren, Anzeigen und Kommunikationsschnittstellen (UART, SPI, I2C, USB usw.).
* Netzwerk -Schnittstellencontroller (NICs): Kommunikation über Netzwerke ermöglichen.
5. Bibliotheken und Dienstprogramme: Dies sind vorgeschriebene Codemodule, die gemeinsame Funktionen liefern, wie z. B.:
* Mathematische Funktionen: Berechnungen durchführen.
* String Manipulation: Arbeiten mit Textzeichenfolgen.
* Datenstrukturen: Daten organisieren und verwalten.
Im Wesentlichen ist die Firmware ein geschichteter System. Der Bootloader initialisiert die Hardware und lädt die OS/RTOs (falls vorhanden), die dann die Ausführung des Anwendungscodes verwaltet und mit der Hardware über Gerätefahrer interagiert. Bibliotheken und Dienstprogramme bieten Unterstützungsfunktionen für alle Ebenen. Die spezifischen Komponenten und ihre Komplexität hängen stark von der Funktionalität und Funktionen des Zielgeräts ab.