In questo articolo cercheremo di comprendere i termini “firmware” e “software”, in che modo questi due termini si relazionano al mondo dei computer e dei sistemi integrati e come confrontare firmware e software. Per fare questo, dobbiamo prima capire le distinzioni tra i due termini.
I termini “firmware” e “software” sono molto comuni nell’industria elettronica. Potresti aver usato questi termini in modo intercambiabile se lavori con sistemi o computer incorporati.
Ma cosa distingue un firmware da un software? Cosa significano quando applicati a un sistema embedded che utilizza un computer e un microcontrollore? Proviamo a comprendere questi termini in modo più dettagliato.
Che cos’è Software
Ogni sistema informatico è costituito principalmente da due componenti: hardware e software. I componenti fisici come processore, memoria, memoria, chiavi, touchscreen, ecc. sono noti come hardware. È necessario un programma affinché l’hardware funzioni correttamente. Detto semplicemente, il software è un insieme di istruzioni che l’hardware utilizza per elaborare i dati.
Supponiamo che tu abbia un PC nuovo di zecca con la RAM, la scheda grafica, il processore e così via più recenti. Questo computer può essere utilizzato solo se è installato il sistema operativo o il software necessario. Il programma fondamentale necessario per accendere il computer è questo. Se e quando ne hai bisogno, puoi aggiungere ulteriori applicazioni (come browser, editor di foto, lettori video, ecc.).
Software per il computer
È una raccolta di applicazioni cruciali necessarie per gestire le parti hardware di un computer. Un sistema operativo è un tipo di software di sistema che funge da canale tra l’utente e l’hardware di un computer.
Software per il computer
È un comando predeterminato che esegue un compito particolare. Il software di sistema entra qui in scena perché il software applicativo spesso non gestisce direttamente l’hardware. Il software di sistema, come il sistema operativo o il compilatore, riceve istruzioni dall’applicazione e le trasmette all’hardware.
Sono disponibili numerosi programmi software, inclusi browser Web (Chrome, Firefox), suite per ufficio (MS Office o Libre Office), lettori multimediali (VLC), editor di foto e video (Adobe Photo Shop e Adobe Premier Pro), programmi antivirus (Avast e Norton) e molti altri.
Che cos’è il firmware
Il software include anche il firmware. Tuttavia, il firmware viene utilizzato in un significato diverso. L’hardware è tipicamente controllato direttamente da un semplice programma. Di conseguenza, il software di basso livello è un altro nome per il firmware.
Un’ampia gamma di gadget, inclusi telecomandi TV, dischi rigidi di computer, tastiere, router, robot e molti altri, dispone di firmware. Il firmware nel disco rigido di un computer si comporta in modo molto diverso dal firmware di un telecomando TV, che interpreta l’input dai tasti premuti e illumina il LED a infrarossi secondo necessità.
Quando diciamo al nostro computer di salvare un file sul disco rigido, il sistema operativo riceve il comando e utilizza i driver per connettersi al disco rigido. Il firmware nel disco rigido attiva il suo meccanismo di controllo hardware (controllo della testina di lettura/scrittura, attivazione del motore del piatto, ecc.) quando riceve queste istruzioni e quindi memorizza i dati sul disco rigido.
È così evidente che il firmware di un dispositivo è il software che gestisce direttamente l’hardware e funge da ponte tra il sistema operativo e il dispositivo. Poiché il firmware è alloggiato all’interno dell’hardware, che spesso è una memoria flash, possiamo dire che è un componente dell’hardware. Ma gli strumenti utilizzati per creare software (come linguaggi di programmazione, compilatori, ecc.) vengono utilizzati anche per creare firmware. La stretta connessione del firmware con l’hardware è l’unica distinzione.
In genere, il firmware è un software non modificabile che risiede permanentemente nella ROM dell’hardware. Il BIOS nei nostri personal computer ne è la migliore illustrazione. Quando accendiamo un computer, il Basic Input/Output System, o BIOS, è in genere la prima parte del software in esecuzione. Le responsabilità del BIOS includono l’inizializzazione del resto del processo di avvio e la ricerca di guasti hardware.
Non è possibile accendere il computer se il BIOS è danneggiato o completamente rimosso dalla sua posizione (che in genere è una memoria non volatile). Anche altri firmware sono soggetti alle stesse critiche. L’hardware di un dispositivo (disco rigido, tastiera, ecc.) perde funzionalità e potrebbe anche essere necessario sostituirlo se il firmware viene perso per qualsiasi motivo.
Il ruolo del firmware rispetto al software nei sistemi integrati
Le frasi firmware e software sono spesso utilizzate in modo intercambiabile nel settore dei sistemi embedded. È possibile trovare anche annunci di lavoro con i titoli “Embedded Firmware Engineer” o “Embedded Software Engineer” e una descrizione del lavoro simile o identica. Questo perché sia il lato del sistema che il lato dell’applicazione di un sistema embedded vengono sviluppati simultaneamente.
Quando lavori con progetti barebone (senza alcun sistema operativo), tutto ciò che avrai sono alcuni driver di terze parti (per il display, TCP/IP, ecc.) e alcuni file specifici del fornitore del microcontrollore (la CPU supporta intestazioni e driver ). Questi documenti trattano la parte hardware del software. Creiamo il software applicativo utilizzando le intestazioni e le unità, quindi tutti i file vengono combinati in un unico file binario.
Il cambio di contesto e la gestione della memoria sono gestiti dall’RTOS se si utilizza un sistema operativo (come VxWorks o FreeRTOS), ma anche in tal caso è comunque necessario creare il software dell’applicazione con l’ausilio di driver specifici del microcontrollore, file RTOS e driver di terze parti.
Di conseguenza, nel contesto dei sistemi integrati, i termini firmware e software sono talvolta usati in modo intercambiabile.