lunedì 27 luglio 2015

Cyclone V SoC: Gli strumenti di sviluppo per ARM

La scheda DE1-SoC come dice il nome e come abbiamo già anticipato, include un SoC (System On Chip) composto da una logica programmabile FPGA ed un processore ARM in un unico chip.


Diamo ora uno sguardo a quali sono gli strumenti di sviluppo per questo nuovo SoC.

La FPGA è programmabile come di consueto tramite Quartus II, il processore ARM necessita invece dell'installazione della SoC Embedded Design Suite (SoC EDS), una suite di sviluppo disponibile anch'essa come Quartus nella versione gratuita Web Edition o nella versione a pagamento Subscription Edition.

La differenza principale è la possibilità nella versione a pagamento di sviluppare bare-metal, ovvero di programmare il processore al livello più basso, senza un sistema operativo, e di utilizzare il compilatore di casa ARM. Generalmente se si necessità di funzionalità avanzate come la comunicazione di rete si opta per un sistema dotato di un sistema operativo, lo sviluppo bare-metal è quasi sempre relegato ad applicazioni real-time dove è necessario un determinismo maggiore.

La versione gratuita limita lo sviluppo ad applicazioni Linux/Android tramite GCC ma in molti casi questo non rappresenta un grosso limite. Lo sviluppo bare-metal di processori complessi come l'ARM Cortex A9 non è "consigliato" nei progetti più comuni mentre può avere più senso sviluppare applicazioni e driver specifici per Linux.

Per un elenco completo delle differenze tra le due versioni rimando alla pagina ufficiale.

Vediamo adesso cosa include il SoC EDS:






- ARM DS-5: l'ambiente di sviluppo basato su Eclipse che include praticamente tutto quello di cui si ha bisogno per lo sviluppo di applicazioni basate su Linux.
 
- Hardware Libraries: librerie di basso livello denominate HWLIB che contengono API per l'utilizzo dei GPIO, I2C, SPI, etc.. per il solo sviluppo bare-metal
 
- Configuration Tools: tool come il Device Tree Generator utili per il solo sviluppo bare-metal
 
- Examples: esempi, quasi tutti per lo sviluppo bare-metal.
 
Come è possibile intuire utilizzeremo sostanzialmente il solo ARM DS-5 con il compilatore GCC incluso nell'installazione.

L'utilizzo del compilatore GCC in ambiente Windows non è consigliato da Altera e presenta problemi non presenti nella versione Linux. Ad esempio nella versione attuale (GCC 4 inclusa in DS-5) si hanno problemi di compilazione con programmi contenenti istruzioni NEON. E' quindi consigliabile innanzitutto installare SoC EDS su un sistema Linux in caso di problemi.

E' da notare che è possibile utilizzare il compilatore gratuito GCC per lo sviluppo bare-metal anche senza l'utilizzo di DS-5, tramite makefile per esempio, anche se vedremo solamente lo sviluppo di applicazioni Linux sul processore ARM, lasciando a chi volesse intraprendere lo sviluppo bare-metal alla corposa documentazione disponibile.

1 commento: