Unisciti agli oltre 155.000 follower di IMP

elettronica.live
Mouser News

Uno sguardo all’evoluzione del settore embedded

Lo scopo di questo articolo è fornire una visione olistica e ad ampio spettro del processo di sviluppo dei sistemi embedded e delle modalità secondo le quali continua a evolversi e adattarsi ai cambiamenti.

Uno sguardo all’evoluzione del settore embedded

Nel corso degli ultimi 30 anni, questo processo di sviluppo ha subito profonde e radicali trasformazioni. Il processo evolutivo interessa anche la toolchain software utilizzata per la codifica, la compilazione e il debug. Le funzionalità hardware, sempre più sofisticate e integrate, e le principali tendenze del mondo industriale nel suo complesso, che privilegiano aspetti quali bassi consumi, connettività estesa e un elevato grado di sicurezza, richiedono l’integrazione di nuovi elementi nella toolchain quali BSP (Board Support Package), driver e librerie.

L’evoluzione dello sviluppo embedded
Fino a non molto tempo fa, la maggior parte dei sistemi embedded non prevedeva alcun tipo di connettività. Anche la sicurezza era un aspetto che non veniva preso in considerazione. L’obiettivo di tali sistemi era il controllo di appliance di varia natura, come a esempio una caldaia industriale o una lavatrice domestica.

Molti programmatori di sistemi embedded hanno imparato a programmare i microcontrollori in modalità “bare-metal”, una prassi che richiede l’uso della programmazione in codice macchina. La programmazione che prevedeva l’uso di opcode (codici operativi) era onerosa in termini di tempo, difficile e tediosa. Fortunatamente il passo successivo, che contemplava l’utilizzo del linguaggio assemby, ha contribuito a semplificare il lavoro dei primi sviluppatori e ha aperto la strada verso l’adozione di linguaggi ad alto livello come il linguaggio C.

Quest’ultimo era stato inizialmente sviluppato per la scrittura del sistema operativo Unix, del quale è diventato sinonimo all’inizio degli anni ’80. Progettato per fornire un accesso efficiente a basso livello alle risorse di memoria e mappare le istruzioni del codice macchina del processore, il linguaggio C nel corso degli anni è divenuto la scelta naturale per i sistemi embedded.

Per incoraggiare l’adozione dei loro microcontrollori (MCU) e microprocessori (MPU), i costruttori di silicio hanno iniziato a investire nello sviluppo di toolchain IDE (Integrated Development Environment). Poiché il concetto di ecosistemi aperti non esisteva, la maggior parte degli sviluppatori ha realizzato e mantenuto i propri set di librerie e funzioni. Senza dimenticare che anche l’architettura del set di istruzioni era unica, ovvero specifica per ogni costruttore. Per questo motivo i dispositivi veniva venduti corredati da driver, librerie e altri blocchi IP di tipo proprietario. Ma lo scenario, ora, è completamente mutato!

Lo sviluppo embedded oggi: le principali tappe dell'evoluzione
Uno sviluppatore embedded che sta muovendo i suoi primi passi entra in un mondo completamente diverso. Quello dello sviluppo embedded è oggigiorno un settore non più proprietario, bensì aperto. La disponibilità di un’architettura basata su una licenza Arm è giunta in un momento in cui i fornitori di silicio si sono trovati a dover affrontare oneri sempre maggiori per lo sviluppo, la promozione e il supporto delle loro architetture proprietarie in uno scenario sempre più competitivo. Nel corso degli anni numerosi tra i principali produttori di MCU e MPU hanno progressivamente ridotto la loro offerta di prodotti realizzati con architetture proprietarie a favore di dispositivi basati sull’architettura Arm. Grazie all’approccio che privilegia i core Arm, i produttori hanno potuto beneficiare della adozione su scala sempre più ampia dell’architettura Arm e degli investimenti in R&S della società. Questi produttori sono ora in grado di differenziare la loro offerta rispetto a quella di altri licenziatari della stessa architettura Arm mediante l’aggiunta di blocchi di connettività per le periferiche, transceiver wireless, circuiti per la gestione della potenza e funzionalità analogiche.

Il passaggio ad Arm ha anche segnato una svolta per quanto concerne gli ambienti IDE specifici del singolo produttore grazie all’avvento di società indipendenti specializzate nello sviluppo software. In ogni caso sono ancora disponibili gli IDE proposti dai produttori i quali, in alcuni casi, per accelerare il processo di sviluppo hanno acquisito start-up attive nel campo degli ambienti di sviluppo integrati.

Per alleggerire il compito degli sviluppatori che devono affrontare le problematiche legate alla crescente complessità dei dispositivi hardware e delle funzionalità a essi associate, i produttori stanno ora investendo nella fornitura di BSP (Board Support Package) completi e di risorse software. Tra i numerosi esempi si possono citare le librerie open-source e il firmware che astrae (in altre parole nasconde i dettagli) le funzionalità hardware di basso livello in chiamate di funzioni semplici e intuitive.

L’introduzione di Arduino e di SBC (Single Board Computer) simili come BeagleBone e Raspberry Pi ha segnato l’inizio dell’era dello sviluppo open source. Queste schede hanno contribuito alla costituzione di community all’interno degli ecosistemi formati da società attive nei settori hardware e software e consentito l'accesso allo sviluppo basato su microcontrollori a una platea più ampia, formata da innovatori e studenti. Linux è diventato il sistema operativo più diffuso su parecchi SBC e il lancio di FreeRTOS ha garantito la disponibilità su larga scala di un sistema operativo real time.

Al giorno d'oggi il settore dello sviluppo embedded è onnicomprensivo. Per accelerare ulteriormente la prototipazione e i cicli di sviluppo che devono soddisfare vincoli temporali sempre più severi, i produttori mettono a disposizione moduli di valutazione, schede di sviluppo, kit di sviluppo software e design di riferimento. Poiché le applicazioni attualmente più “gettonate”, come a esempio IIoT (Industrial IoT), richiedono sistemi connessi alimentati a batteria caratterizzati da bassi consumi, i produttori hanno implementato modalità di “sleep” aggiuntive per i core dei processori e i blocchi periferici. Un attento bilanciamento dei profili di consumo dei processori in modalità attiva e in stand-by e la rapidità di risposta agli interrupt dell'applicazione sono diventati elementi cruciali della fase di sviluppo.

Gli script (programmi o sequenze di istruzioni interpretati o portati a termine da altri programmi) low-code (che riducono la necessità di scrivere codice) pilotati dagli eventi (event-driven) e i linguaggi come Node-red, oltre agli stack di comunicazione “leggeri” come CoAPe MQTT hanno aggiunto elementi interessanti allo sviluppo embedded. Questi elementi sono particolarmente adatti allo sviluppo di applicazioni (IoT/IIoT) utilizzando microcontrollori a bassissima dissipazione con risorse limitate.


Uno sguardo all’evoluzione del settore embedded

Piattaforme per il deployment e IDE basati su cloud alla base dei progressi del settore embedded
Recentemente, nel settore embedded è stata introdotta una vasta gamma di soluzioni hardware e software integrate come Zerynth. Sistemi questo tipo mettono a disposizione una piattaforma hardware completa e un'infrastruttura basata su cloud in grado di assicurare accelerare il provisioning (ovvero la configurazione) e il deployment (installazione e messa in funzione) di applicazioni IoT/IIoT. Per un costruttore di macchinari per l'automazione industriale, a esempio, lo sviluppo di un sistema embedded personalizzato e l'allocazione di un'infrastruttura di elaborazione cloud sicura e affidabile sono compiti onerosi in quanto richiedono molto tempo, sono costosi e necessitano dell’intervento di personale con competenze qualificate nel settore embedded. L'utilizzo di hardware standard consente ai fornitori di applicazioni IIoT di differenziare la loro offerta mediante funzionalità software e di integrare le caratteristiche di cifratura e di protezione dei dati richieste.

Lo sviluppo embedded di tipo collaborativo è ora possibile grazie al fatto che un numero sempre maggiore di IDE, come Cloud Composer di TI e Arm mbed è disponibile online. Alcuni IDE basati su cloud supportano inoltre repository di codice GitHub pubblici e privati, un elemento essenziale per numerosi progetti open source. Piattaforme di sviluppo embedded multi-architettura e multi-piattaforma come PlatformIO si propongono come una valida alternativa di tipo collaborativo alle toolchain tradizionali che mettono a disposizione IDE, repository, debugger e tool per l'analisi statica del software in un unico ambiente online. Nel frattempo, i produttori di tool e gli sviluppatori di IDE indipendenti, come MikroE e Segger, stanno migliorando su base continuativa i loro tool per integrare sistemi operativi real time (RTOS) e supportare nuove architetture ISA (Instruction Set Architecture) come RISC-V.

Cosa riserva il futuro
Lo sviluppo online e l'utilizzo di piattaforme di collaborazione hanno sperimentato una significativa crescita durante la recente pandemia, a causa del fatto come molti team sono stati costretti a lavorare da remoto. Le prime indicazioni raccolte hanno comunque evidenziato che un approccio si questo tipo continuerà a essere adottato anche nel prossimo futuro. Nel momento in cui il settore dello sviluppo embedded si sposterà sempre più nel mondo virtuale, è verosimile che gli ambienti IDE e i tool di sviluppo collaborativi tenderanno a integrare un numero sempre maggiore di funzionalità e di caratteristiche innovative.

Nel settembre del 2020 MikroE, azienda specializzata nello sviluppo di tool embedded, ha introdotto il servizio Planet Debug. Basato sull'IDE Necto Studio, questo servizio ha consentito l'eliminazione della presenza fisica del dispositivo hardware target dal banco di lavoro dello sviluppatore. Grazie a Planet Debug, gli sviluppatori embedded possono effettuare la programmazione e il debug in remoto in ogni momento e in qualsiasi parte del mondo. Le piattaforme di sviluppo remoto di MikroE sono disponibili all'interno di Necto Studio e, grazie a una telecamera, è possibile visualizzare tutto ciò che sta succedendo sulla scheda in tempo reale. Si tratta del primo esempio di utilizzo di una piattaforma hardware virtuale, ma la spinta verso l'innovazione è la linfa vitale della community dedicata allo sviluppo embedded. Una spinta destinata a continuare a lungo.

www.mouser.com

  Richiedi maggiori informazioni…

LinkedIn
Pinterest

Unisciti agli oltre 155.000 follower di IMP