1. Bootloader: Questo è il primo pezzo di codice eseguito quando il dispositivo si alimenta. Le sue responsabilità primarie includono:
* Hardware di inizializzazione: Impostazione della CPU, della memoria e delle periferiche.
* Caricamento del firmware principale: Individuazione e caricamento del sistema operativo o del codice dell'applicazione da archiviazione (memoria flash, ROM, ecc.).
* Esecuzione di auto-test: Verifica dei guasti hardware.
* Gestione degli aggiornamenti: Fornire meccanismi per l'aggiornamento del firmware principale.
2. Sistema operativo (OS) o sistema operativo in tempo reale (RTOS): Molte implementazioni del firmware includono un sistema operativo o RTO leggeri per gestire risorse e attività. Questo è più comune in dispositivi complessi. I dispositivi più semplici potrebbero saltare del tutto questo componente. Il sistema operativo OS/RTOS:
* Pianificazione delle attività: Gestione dell'esecuzione di diversi moduli software.
* Gestione della memoria: Allocazione e liberazione della memoria per le attività.
* comunicazione inter-Process (IPC): Consentendo comunicare moduli software diversi.
* Gestione degli interrupt: Rispondendo agli interrupt hardware.
* Driver di dispositivo: Interfaccia con i componenti hardware.
3. Codice dell'applicazione: Questa è la funzionalità principale del dispositivo. Esegue le attività specifiche per cui il dispositivo è progettato. Esempi includono:
* Algoritmi di controllo: Nei sistemi incorporati, controllando motori, sensori o altri attuatori.
* Routine Interfaccia utente (UI): Gestire l'input dell'utente e la visualizzazione dell'output su una schermata o altra interfaccia.
* Protocolli di rete: Comunicare con altri dispositivi su una rete.
* Elaborazione e archiviazione dei dati: Raccolta, elaborazione e archiviazione di dati.
4. Driver di dispositivo: Questi sono moduli software che fungono da interfacce tra il firmware e i componenti hardware del dispositivo. Forniscono funzioni per accedere e controllare hardware specifico, come ad esempio:
* Controller di memoria: Accedere a diversi tipi di memoria.
* Driver periferici: Controllo delle periferiche come sensori, display e interfacce di comunicazione (UART, SPI, I2C, USB, ecc.).
* Controller di interfaccia di rete (NICS): Abilitare la comunicazione sulle reti.
5. Biblioteche e servizi pubblici: Questi sono moduli di codice pre-scritti che forniscono funzioni comuni, come:
* Funzioni matematiche: Eseguire calcoli.
* Manipolazione delle stringhe: Lavorare con stringhe di testo.
* Strutture di dati: Organizzare e gestire i dati.
In sostanza, il firmware è un sistema a strati. Il bootloader inizializza l'hardware e carica l'OS/RTOS (se presente), che quindi gestisce l'esecuzione del codice dell'applicazione e interagisce con l'hardware attraverso i driver di dispositivo. Le biblioteche e le utility offrono funzioni di supporto a tutti i livelli. I componenti specifici e la loro complessità dipendono fortemente dalla funzionalità e dalle capacità del dispositivo target.
software © www.354353.com