This is (not) Rocket Science (parte 3)

This is (not) Rocket Science (parte 3)

CTA Lead gen Sensori

Part 3: Embedded Xpress
di Lucio Di Jasio
Avviso: prima che vi affrettiate a scrivere una nota all’editore di questo, altrimenti, bel giornale riguardo i miei errori nei titoli, lasciate che vi sveli che “Xpress” è realmente (una parte) il nome di un nuovo “tool” che, per quando leggerete questo articolo  sarà già stato annunciate alla fiera  che preferisco in assoluto in Europa: “Embedded World 2016”! La fiera è davvero enorme ma è probabile che veniate travolti da una grande quantità di annunci di nuovi prodotti ed il rischo è che perdiate il passaggio critico della notizia, quindi eccola, in esclusiva per voi: “Microchip ha mandato l’IDE sul Cloud!”
Si chiama MPLAB Xpress (https://mplabxpress.microchip.com) ed è molto di più che solo un MPLAB X imbottigliato dentro un browser! (figura 1). Ora, scommetto che voi lettori là fuori starete già per dividervi in due gruppi.  Il primo sbadiglierà ed esclamerà Era ora! Il secondo gruppo  sarà perplesso e si chiederà  Perchè mai qualcuno dovrebbe avere bisogno di una cosa come quella.  Ebbene, ho la risposta per entrambi.  Datemi solo un paio di righe in più per spiegare, prima che voltiate pagina!
[iscritti]

Era ora!

Sto cercando di evitare gli stereotipi,  ma mi aspetto un bel gruppo di millennial che prenda per primi questa posizione.  Per loro, l’essere “connessi” è parte dell’ordine naturale delle cose. Viceversa, il non essere raggiungibili 24/7, ovunque e da qualsiasi piattaforma informatica è l’anomalia. Molti degli Integrated Development Environment in questi ultimi anni sono stati portati (o addirittura sono stati creati appositamente per questo, ex novo) su Cloud  ma, mentre questo era probabilmente naturale  per lo sviluppo delle applicazioni web (con javascript, HTML, CSS, PHP) e più tardi anche per l’informatica più in generale (Java, Python, Ruby…), la comunità di sviluppatori embedded su questo è andata a rilento. Dopo tutto, il sistema target delle applicazioni embedded è intrinsecamente più “fisico”.

Perchè mai?

L’altro gruppo, probabilmente più eterogeneo  per età e provenienza, si starà ora chiedendo quali tipi di benefici potrebbero mai derivare dal migrare l’ambiente di sviluppo su browser. Questi potrebbero realmente vedere molti più svantaggi che aspetti positivi, e hanno quindi bisogno di qualche e immediata rassicurazione e spiegazione.

IDE e Compiler sul Cloud

Prima i benefici. I moderni IDE sono cresciuti e divenuti davvero potenti ma sono anche dei bestioni che necessitano di frequenti update e manutenzione.  MPLAB X, che è basato sul progetto Netbeans (open source), copre (letteralmente) migliaia di diversi modelli di microcontroller e viene aggiornato con cadenza mensile (il che richiede un download di circa 350Mbyte). I compiler C inseriti (MPLAB XC compiler suite) necessitano una minore frequenza ma richiedono approssimativamente 100Mbyte, che vanno sommati.  Se aggiungiamo anche solo pochi altri plug-in (per esempio l’ MPLAB Code Configurator) raggiungiamo in fretta quota Mezzo GByte. Oltre a questo, dobbiamo tenere conto del tempo normalmente impiegato per eseguire le attuali installazioni e la manutenzione generale. Se fate girare anche solo un piccolo lab in un ambiente scolastico o universitario, sapete bene quanto  lavoro sia poi necessario per tenerlo aggiornato ed in buona forma. In questi ambienti  ci sono anche grandi preoccupazioni che riguardano le autorizzazioni (richieste per installare le applicazioni sui computer e apparecchiature condivise) e la loro gestione.

Dovete quindi immaginare quale sollievo sia quando tutto quel lavoro viene trasferito interamente in un semplice login online. Instantaneamente la revisione più aggiornata di ogni componente della toolchain (o un’altra archiviata a vostra scelta) vi si renderà disponibile! Ma l’essere online aggiunge anche dimensioni totalmente nuove all’esperienza di sviluppo embedded. Una volta che l’ IDE sia stato “virtualizzato” potrà  muoversi rapidamente da workstation a workstation ed il lavoro iniziato nell’ufficio (o classe) potrà muoversi con noi, seguendovi verso una nuova sede (o persino in camera da letto). Condivisione e comunicazione tra team vicini o remote e dislocati geograficamente diviene cosi più naturale oltre a rendere più facile il set up e la manutenzione. Finora i pochi esempi di Embedded IDE (e compiler) disponibili su cloud si sono limitati  a set di prodotti molto ristretti, solitamente le più recenti e aggiornate famiglie di prodotti  lanciati e/o orbitanti attorno ad una o poche specifiche schede di sviluppo. Il lancio del  MPLAB Xpress è incredibilmente differente in quel senso. Nell’abituale approccio orizzontale Microchip, il supporto viene fornito sull’intero portfolio di microcontroller. Ciò significa oltre 1.000 modelli di microcontroller  8-bit individuali, tra nuovi e obsoleti, dal primissimo PIC16C (in tecnologia OTP!) ai più recenti e più grandi PIC16F1 e PIC18!

Schede sul Cloud

Vogliamo parlare di hardware? Come potreste aspettarvi, l’ MPLAB Simulator è stato incluso nell’offerta di strumenti online, che offrono gli strumenti più semplici del debugging per applicazioni più semplici. Oltre a questo, ci sono due possibili percorsi per  l’esplorazione:

1) Utilizzare la MPLAB Xpress evaluation board (figura 4), la prima della nuova serie di schede di valutazione economiche,  basate sul più recente PIC16F18855,  un forte candidato alla successione nella ormai estremamente nota famiglia/tradizione di microcontroller general purpose PIC16F88x, caratterizzati dalla più vasta selezione di Core Independent peripheral (https://microchip.com/cip). Queste schede indurranno il vostro computer (PC, Mac o Linux) a vederlo come un hard drive (USB Mass Storage) e sarete in grado di eseguire un semplice drag and drop dei file eseguibili (.hex) della vostra applicazione direttamente  in questa per programmare il  target.  Ancora una volta, non è richiesto alcun driver, né è necessaria alcuna installazione. Faccio notare che la scheda verrà automaticamente registrata con il vostro computer come una porta seriale virtuale (USB-CDC) consentendo al programma finale di vostra scelta di connettersi direttamente  al microcontroller PIC target UART. (Gli utenti Windows dovranno caricare  un file .inf  per abilitarlo la prima volta, mentre per gli utenti Linux e Mac sarà automatico);
2) Collegarsi attraverso un USB bridge (un minuscolo plugin Java) (figura 2) a debugger hardware standard e programmer quali il PICKit3 o direttamente alla scheda Curiosity (https://microchip.com/curiosity) ed al suo programmer/debugger built in. Questo secondo metodo apre la porta ad un intero set di schede dimostrative sia Microchip che di terze parti ed ovviamente a qualsiasi scheda custom da voi realizzata.

MCC sul Cloud

Se la vastità della copertura in termini di modelli di microcontroller e schede/tool disponibili non fosse ancora sufficiente  per mettere l’ MPLAB Xpress in una differente categoria, la disponibilità del tool MPLAB Code Configurator vi convincerà. E’ la più recente incarnazione del MCC 3.0 (figura 3) (https://microchip.com/mcc) che è rimasta in beta negli ultimi 6 mesi ed è stata interamente riprogettata per essere integrata con compiler e IDE Cloud. Il risultato degli sforzi  per l’integrazione è maggiore della somma dei singoli componenti, secondo il mio parere. Gli IDE, preesistenti o concorrenti online, hanno semplicemente offerto accesso a librerie o integrato nuovi subset semplificati (come Arduino). L’ MPLAB Xpress è il tool di sviluppo più veloce in assoluto, pronto per configurare non solo le nostre periferiche ma anche per integrare e configurare per nostre specifiche esigenze interi moduli di libreria quali il rilevamento Tattile e di Prossimità, comunicazione LIN,  uno stack TCP/IP leggero, o un bootloader e molti altri che verranno aggiunti nei prossimi mesi.

Dubbi sulle Performance

Pensando ad un ambiente  di sviluppo che richieda la costante presenza online, molti di voi saranno immediatamente  preoccupati della velocità e costi della connessione.  Essendo stato inizialmente tra i dubbiosi, ho un occhio particolarmente critico verso questi aspetti dell’esperienza online.  Dopo tutto, nel mio lavoro viaggio molto e spesso mi ritrovo con connessioni lente, non così raramente anche attraverso il mio cellular 3/4G  e più spesso ancora in roaming. Dopo aver approfonditamente giocato con questo strumento per un paio di mesi (attraverso gli stadi alfa e beta) posso solo avere parole di grande apprezzamento per gli sviluppatori.  L’MPLAB Xpress è un eccellente pezzo di tecnologia AJAX. Il che significa che utilizza applieno tutte le abilità del vostro browser per eseguire codice localmente (in modo asincrono e utilizzando javascript, da qui le A e J nell’acronimo) cosi che l’applicazione (AX) è sempre molto pronta e reattiva  e non richiede l’invio di ogni singolo tasto battuto fino ad un server dall’altra parte del pianeta. Può ovviamente capitare di dover effettuare del file transfer, ma solo quando il file viene salvato o aperto per editarlo. Questi sono solitamente piccoli file di testo (.c, .h, .hex), facilmente superati per quantità e dimensione dalla media di immagini e ads caricate dal browser  nell’accedere ad un qualsiasi moderno sito web. Nel compilare il codice applicativo invece, il server lavora interamente sulle copie locali ed il procedimento è incredibilmente veloce. Infatti, nell’esperienza quotidiana è comune osservare come i compiler Cloud possano puntualmente superare in prestazioni il mio laptop, e la piccola scheda Xpress programmare più velocemente il target che nella mia abituale esperienza con un PICKit3.

Sicurezza

Le preoccupazioni in merito alla sicurezza delle applicazioni cloud sono un argomento molto delicato. Evidentemente, si stanno spendendo milioni di dollari in marketing e le grandi aziende per convincere tutti noi che i dati (o il codice, in questo caso)  sono perfettamente al sicuro una volta nel Cloud. Le principali discussioni tra le due opposte scuole di pensiero finora sono state più o meno queste:
Scettici: Se c’è un sufficiente valore o motivazione, gli aggressori alla fine troveranno il modo di entrarci. Questa è una regola che generalmente è vera per tutto, compresa ogni cassaforte aziendale protetta con codice.
Favorevoli: Le (grandi) aziende che offrono servizi cloud sono motivate, e nella miglior posizione,  per immettere in questo lavoro risorse specializzate  (umane e di apparecchiature)  al fine di tenere al sicuro i dati. Queste risorse sono probabilmente di molto superiori alle risorse che il dipartimento IT di una qualsiasi azienda anche di medie dimensioni possa affrontare.
In effetti, nei prossimi anni il dilemma tecnologico per ognuno di noi sarà decidere se i rischi sono più elevati dei vantaggi offerti da una moltitudine di nuovi servizi Cloud.

Conclusioni

Che voi siate tra gli scettici o i favorevoli  del Cloud, penso dobbiate fare una prova con MPLAB Xpress.  L’impressionante numero di dispositivi supportati e l’integrazione con rapidi strumenti di sviluppo quali il nuovo MCC pone  MPLAB Xpress su un livello a se stante. Sono emozionato all’idea di vedere come le nuove generazioni utilizzeranno questo nuovo strumento e come l’embedded control cambierà nell’era del Cloud!  Continua…

Biografia

Lucio Di Jasio è l’EMEA business development manager di Microchip Technology. Ha ricoperto vari ruoli tecnici e di marketing all’interno delle divisioni  8, 16 e 32bit dell’azienda negli ultimi 18 anni. Quale autore tecnico prolifico e stimato, Lucio ha pubblicato numerosi articoli e svariati libri sulla programmazione per applicazioni di Embedded Control. Inseguendo la sua passione per il volo ha ottenuto anche le certificazioni FAA e EASA per la licenza di pilota privato. Per saperne di più sui più recenti libri e progetti di Lucio, potete visitare il suo blog su:   https://blog.flyingpic24.com
[/iscritti]

GIOVANNI DI MARIA