Questo articolo presenta una breve carrellata di sistemi di sviluppo esistenti per il sistema operativo Linux, in modo da mettere in condizione il programmatore a scegliere il prodotto più adatto alle sue esigenze.
Un ambiente di sviluppo è uno strumento, oggi indispensabile, per progettare sistemi elettronici a microcontrollore. Essi, negli ultimi tempi, si sono molto evoluti, dando la possibilità di eseguire il debug e l’emulazione onchip, permettendo in tal modo una rapida produttività e una veloce prototipazione. Grandi passi sono stati fatti anche nelle dimensioni dei sistemi, tanto che oggi esistono sul mercato soluzioni che forniscono nel medesimo tempo la comodità delle ridotte dimensioni legate anche all’intrinseca affidabilità. Se l’hardware e il software sono strettamente legati e ben funzionanti, il successo è garantito.
Un sistema di sviluppo non è un semplice editor, ma un insieme di moltissimi preziosi strumenti per sviluppare le applicazioni basate su MCU. Saper padroneggiare tutti i tools di un ambiente di sviluppo è il risultato che ogni programmatore mira a raggiungere. Meglio utilizzare dunque un solo sistema, ma in maniera approfondita e professionale. È ovvio che nei primi tempi di utilizzo si potrebbero incontrare parecchie difficoltà ma, superato il periodo di “apprendistato” nella conoscenza di un sistema di sviluppo, si capirà che è proprio impossibile farne a meno.
In Linux
È noto a tutti gli utilizzatori di Linux che si possono utilizzare gli applicativi e i programmi che girano sotto Windows tramite piattaforma Wine. Con esso anche la gestione dell’hardware delle risorse viene brillantemente risolta. Tutti i compilatori e i sistemi di sviluppo che funzionano per Windows si possono utilizzare con Linux. Questo articolo comunque approfondisce ed elenca una serie di applicazioni, inerenti ai tools di sviluppo, nativi per il sistema operativo del pinguino. Non si tratta di un elenco completo in quanto i prodotti, seppur con molta fatica e abbastanza timidamente, cominciano ad affacciarsi sul mercato con un ritmo, seppur lento, sempre più crescente.
Pikdev
PiKdev (figura 1 e 2) è un IDE grafico per Linux per lo sviluppo delle applicazioni su microcontrollore PIC. Supporta i linguaggi di programmazione C ed Assembler. È realizzato interamente in C++ per Linux ed è basato su KDE. Dispone di un editor multi finestra che permette la numerazione del codice, la colorazione dello stesso per sintassi e la creazione di segnaposti. Inoltre, tramite un solo clic del mouse è possibile richiamare da quello l’assemblatore, il linker e anche il disassemblatore per permettere la visione del listato in Assembler. Il sistema gestisce ottimamente il progetto, con possibilità quindi di richiamare, salvare ed editare tutte le caratteristiche salienti di un progetto o di crearne uno nuovo. L’IDE può essere direttamente collegato al programmatore PIC (figura 3) attraverso la porta seriale o parallela del PC, con opportuna configurazione delle stesse.
Programmatori utilizzabili
Il PiKdev prevede alcune soluzioni circa il collegamento ai programmatori hardware. Nativamente esso supporta il classico JDM su porta seriale, in rete si trovano centinaia di schemi elettrici al riguardo. Esso gestisce ottimamente anche la programmazione via porta parallela, attraverso una semplice interfaccia che funge da buffer, permettendo il collegamento al microcontrollore. Infine, cosa molto importante, dalle ultime versioni il PiKdev (figura 4) prevede anche il programmatore USB PicKit2, dal momento che il collegamento seriale e parallelo è divenuto obsoleto. Questa soluzione è resa possibile grazie a una utility (pk2cmd) messa a disposizione da Microchip. Il sistema gestisce molti modelli di microcontrollori, appartenenti alle serie 10, 12, 16 e 18.
Piklab
Il Piklab (figura 5) è un ambiente di sviluppo integrato (IDE) per le applicazioni basate su microcontrollori Microchip PIC e dsPIC, molto simile all’ambiente MPLAB. Si integra con diversi compilatori (ad esempio gputils, SDCC, C18) e con il simulatore gpsim. Supporta i programmatori più comuni (seriale, parallelo, ICD2, PICkit2, PICSTART+), il debugger ICD2, o bootloader diversi (Tiny, PICkit2 e PICDEM). Allo stato attuale può compilare e linkare gli eseguibili con i seguenti compilatori: GNU PIC, MPLAB C30m, PICCLite, PICC, PICC-18, MPLAB C18, JAL ,JALV2, BoostC, BoostC++, BoostBasic, CCS, MPC, CC5X. Inoltre gestisce molte famiglie di microcontrollori PIC e dsPIC, tra i quali le serie 10F, 12C, 16C, 16F, 17C, 18C, 18F, 18J, 24F, 24H, 30F e 33F. L’IDE può programmare i microcontrollori (figura 6 e 7) utilizzando i seguenti programmatori: Serial direct programmers (JDM), Parallel direct programmers (Tait, Asix, Propic), ICD1, ICD2, Pickit1, Pickit2, Picstart+.
Yapide (Yet Another Pic Ide)
Questo prodotto gratuito (figura 8, 9, 10 e 11) , più che un sistema di sviluppo è un completo simulatore per microcontrollori PIC per il sistema operativo Linux e Unix. Il suo funzionamento si basa solo su interfaccia IDE e manca il supporto a console e riga di comando. Attualmente gestisce solo il microcontrollore PIC 16F628. Le particolarità di questo interessante simulatore possono essere così riassunte:
- editor di sorgente con colorazione contestuale del codice;
- visualizzatore stato della RAM;
- visualizzatore stato della ROM;
- visualizzatore stato della CPU e dei suoi registri speciali;
- gestione del Timer0;
- visualizzazione dello Stack;
- gestione dei breakpoints e tracepoints;
- watch delle variabili e dei registri;
- esecuzione passo
Il simulatore è stato testato con successo in molte implementazioni di Linux. Se il processore del PC lo permette, può essere utilizzato un quarzo virtuale di clock con frequenza superiore a 15 Mhz.
Mplab X Ide
È notizia che Microchip ha migrato MPLAB IDE su piattaforma Open Source, basata su Java, permettendo così di eseguirlo su Linux, Mac OS e Windows. Grazie a NetBeans IDE, un ottimo plug-in, si può adesso sviluppare un’applicazione per microcontrollori sul sistema operativo del pinguino. Si tratta dunque di un ambiente di sviluppo integrato (IDE) e gratuito (figura 12, 13 e 14). Esso gestisce più di 800 dispositivi e con trollori digitali, a 8, 16 e 32 bit. Include un potente editor di testo di tipo Rich, quindi il sorgente può anche essere formattato secondo le proprie esigenze. Dispone di un debugger con il quale testare e collaudare le proprie applicazioni, anche passo passo, e possiede inoltre un simulatore software. È basato sulla piattaforma NetBeans e gira su Windows, Mac e Linux. In più è interfacciabile a diverse utility di Microchip e a vari compilatori di terze parti. Allo stato attuale il download impiega un po’ di tempo, poiché il file di installazione da scaricare “pesa” più di 200 Mb.
Conclusioni
La carrellata appena esaminata degli ambienti di sviluppo rappresenta ovviamente solo una piccola parte di ciò che il mercato, ma soprattutto la Rete, offre ai programmatori. Essendo Linux un sistema operativo Open Source, aspettiamoci nell’immediato futuro un rapido e prolifico incremento delle soluzioni proposte e dei prodotti sviluppati.
Oltre ovviamente a MPLAB X, direi che YaPIDE è un ottimo prodotto per imparare a programmare il PIC, dato che si ha la possibilità di vedere passo-passo cosa succede ‘dentro’ al micro: Variabili, Memoria, CPU…forse è un vero Tutor per muovere i primi passi con la programmazione.
Communque avete pubblicato un bellissimo articolo di informazione su mondo Linux e su strumenti utili allo sviluppo elettronico. Attendo i prossimi vostri articoli informativi, grazie!
Ottimo spunto per chi non sapesse come orientarsi nell’ambito della programmazione dei microcontrollori. Segnalo a corredo anche il tool gratuito STM32CubeIDE di STMicroelectronics (https://www.st.com/en/development-tools/stm32cubeide.html) destinato alla programmazione dei microcontrollori della famiglia STM32.
Per quanto Linux sia orma un S.O. maturo, con una solida offerta di applicazioni, stenta ancora a diffondersi, soprattutto nelle soluzioni Home. E credo si continuerà così se la maggior parte dei sistemi in vendita hanno Windows preistallato.
Ciao Alessandro ,
io ho scaricato STM8Cube che e’ gratuito ed e’ per le CPU a 8 bit, mi sembra semplice da configurare e appena ho un po’ di tempo cerco di fare esperimenti.
Pero’ credo che anche questo , come STM32Cube serva solo per impostare i parametri della CPU, definizione degli I/O ecc.
Successivamente ci si deve agganciare ad un Tool vero e proprio per la scrittura del codice , ad esempio True Studio .
Comunque senza le giuste linee guida e’ facile perdersi
Ciao Maurizio.
Non so se interpreto male ma da quanto ho letto sulla pagina del prodotto (https://www.st.com/en/development-tools/stm32cubeide.html) l’STM32CubeIde ingloba anche il TrueStudio.
Anzi, è la combinazione di TrueStudio + STM32CubeMX, che è, quest’ultimo, il componente software a cui ti riferisci per la configurazione dei parametri della CPU e degli I/O.
Il sito di TrueStudio (https://atollic.com/truestudio/) poi, dove scrive “is now replaced by STM32CubeIde”, specifica appunto che STM32CubeIde sostituisce questi due singoli strumenti che per praticità sono stati combinati in un’unica soluzione, consentendo così uno sviluppo completo dalla A alla Z.
Articolo molto interessante per chi ha un sistema linux come me. Cercavo una applicazione per programmare i PIC con linux, oltre a MPLAB che ho usato finora, ma non riuscivo a trovarla. Il simulatore gpsim lo avevo installato, ma non capisco come si usa, potreste fare un tutorial su questa applicazione? E perché no! Anche su qualche applicazione per programmare i pic elencate sopra come PIKLAB. Il simulatore YaPIDE mi sembra ottimo, però visto che gestisce solo il PIC 16F628 mi sembra molto limitato per la sperimentazione per poi passare al circuito vero e proprio.