Corso su ARM: Processor Expert e MQX Lite

La scorsa puntata di questo nostro corso di programmazione su ARM abbiamo trattato la Suite CodeWarrior in ogni suo aspetto e raccontandovi delle diverse versioni disponibili. Abbiamo analizzato come funziona, che vantaggi offre, perchè sceglierlo. La programmazione però non si esaurisce qui e le possibilità che vediamo oggi sono almeno altrettanto interessanti. Oggi ci occupiamo, infatti, di MQX Lite e Processor Expert.

Processor Expert

Processor Expert, il primo dei software di cui trattiamo oggi, è un sistema di sviluppo creato allo scopo di lavorare direttamente sui processori Freescale con particolare riferimento a S08/RS08, S12(X), ColdFire, ColdFire+, Kinetis, DSC 56800/E, QorIQ ed altre ancora. Insomma, la compatibilità è garantita per diverse piattaforme. Sebbene faccia parte della suite CodeWarrior, esso può anche essere utilizzato come plug-in all'interno dell'ambiente Eclipse.

Gli Embedded Components sono moduli che è possibile installare all'interno del Processor Expert. Ciascuno di questi include una serie abbastanza numerosa di funzionalità progettate per permettere allo sviluppatore di portare a termine diversi obiettivi di progetto su tutti i componenti supportati.

Volete saperne di più? Bene, iniziamo col dirvi che sono divisi in 11 categorie:

e ciascuna di queste conta diversi moduli al suo interno. Considerando anche soltanto l'ultima, troverete al suo interno componenti che gestiscono RTC, con e senza data e PWM, anche per controllo motori. Ma questi sono solo alcuni esempi.

Quando viene utilizzato, genera il file di configurazione, gli header files ed anche il codice sorgente a seconda del tipo di componente. È importante specificare che quello che fino ad adesso abbiamo chiamato componente e che abbiamo pensato dovesse essere un elemento fisico potrebbe, in realtà, però, anche essere un livello di astrazione hardware oppure un driver di periferica oppure un algoritmo (per esempio per la crittografia). È anche possibile che si tratti di una serie di funzioni logiche.

Grazie ai link che vi abbiamo mostrato in precedenza potrete, direttamente dal sito Freescale, effettuare il download non soltanto degli Embedded Components ma anche di tutte le Suites associate a Program Expert. In particolare stiamo parlando di:

Se avete bisogno di più informazioni volete sapere in anticipo che tipo di documentazione troverete sul sito sappiate che sono disponibili diversi documenti tra cui:

Dove effettuare il download di Program Expert? Potete farlo direttamente da qui.

Parliamo di Processor Expert Software - Integrated with CodeWarrior Tools.
La tecnologia che sta dietro questo software, come dicevamo, permette di creare, configurare, ottimizzare il codice ed anche di effettuare la migrazione dello stesso. Questa soluzione si integra perfettamente all'interno del CodeWarrior garantendo supporto completo per i seguenti prodotti: S08/RS08, S12(X), Coldfire, Coldfire+, Kinetis, DSC 56800/E.
L'aspetto fondamentale di questa soluzione è che rappresenta il miglior metodo per lavorare a basso livello su qualunque genere di piattaforma hardware e senza dover accettare compromessi con driver "one-size-fits-all"; i driver verranno disegnati "su misura" e stagliati sulla specifiche esigenze. Tra le caratteristiche fondamentali abbiamo:

  • knowledgebase esteso e ben sviluppato per tutti i processori supportati;
  • creazione semplice di driver per periferiche;
  • integrazione semplice su sistemi RTOS con driver opportuni;
  • migrazione diretta verso il nuovo hardware (assistita da wizard);
  • soluzione perfettamente integrata all'interno di CodeWarrior for Microcontrollers.

Spendiamo due parole sulla seconda, ovvero la Microcontroller Driver Suite, che è ormai arrivata alla versione 10.2 e che risulta molto interessante per la gestione software del sistema per creare, configurare, ottimizzare, effettuare processi di migrazione oppure di "delivery" di componenti software al fine di rendere il tutto compatibile anche con i tool dei vari partner. Insomma, una soluzione versatile che garantirà la compatibilità con buona parte del resto delle soluzioni disponibili sul mercato.
Lavora con codice C e garantisce totale compatibilità con Kinetis e CodeFire+. La Suite di driver contiene al suo interno l'IDE Eclipse  versione 3.7 ed è anche disponibile come plugin di Eclipse.
Ciò che non include, viceversa, sono un compiler ed un linker. Sarà indispensabile effettuare il merging nel codice all'interno del sistema di compilazione, funzionalità che viene ampiamente integrata in tutti i tool CodeWarrior.

La nuova release di Microcontroller Driver Suite consente il supporto di tanti prodotti tra cui: Kinetis serie L (KL02Z, KL16Z, KL26Z, KL36Z, KL46Z) e Kinetis serie K (K11D, K12D, K21D, K22D, K61F).

I requisiti di sistema sono:

  • processore Pentium @ 1.8 GHz;
  • 1 GB RAM;
  • 1 GB su HD;
  • Acrobat Reader 5.0 o superiore;
  • Microsoft XML Core Services (MSXML) 3.0.

Processor Expert Software: QorIQ Configuration Suite è pensato per lavorare specificatamente su dispositivi molto performanti. La Suite di configurazione è costituita da un set di tool che servono a configurare i dispositivi QorIQ anche in applicazioni piuttosto complesse.
È implementato con una serie di componenti che gestiscono, per esempio, registri di controllo, configurazioni, muxing rules e tutti i vari range di valori necessari per il funzionamento.
Tutti gli utenti che la utilizzeranno avranno a disposizione un semplice wizard che sarà utilizzato per selezionare la configurazione base dei valori e definire i parametri di default.
La Component Inspector window  verrà utilizzata per modificare ciascuna di queste proprietà che può essere automaticamente valutata per garantire che i valori siano corretti anche all'interno del sistema, e quindi in relazione con gli altri.

Se parliamo, poi, di Processor Expert QorIQ Optimization Suite naturalmente ci riferiamo a tools separati che servono per l'ottimizzazione dell'applicazione QorIQ. Piuttosto che fornire un'unica soluzione software che provi ad ottimizzare tutto, ci sono una serie di tools specifici per task distinti. Sebbene siano differenti, il loro scopo è comune: migliorare le performance, diminuire il consumo di potenza e migliorare le prestazioni dell'intero sistema.
Per fare tutto questo, ci saranno, a disposizione:

  • DDR Validation Tool (DDRv);
  • Scenarios Tool;
  • DPAA Packet Tool.

Il primo di questi esegue testo sulla memoria DDR in maniera da verificare i tempi ed il funzionamento. Una volta fatto questo, verranno selezionate le impostazioni migliori per il funzionamento non soltanto come valori esatti ma anche come range di possibili valori sopportati.
Il secondo fornisce l'accesso ai contatori all'interno delle CPU e dei SoC per permettere il debug. Consente di analizzare il sistema dal punto di vista delle prestazioni su: DDR Traffic, DMA Performance, Cache hits/misses ed altre ancora.
Il DPAA Packet Tool è uno strumento di debug ed analisi che controlla il funzionamento dei dispositivi QorIQ selezionati; permette sostanzialmente di effettuare prove congrue al Processor Expert QorIQ Scenarios Tool 2.0: “measurement scenarios”.

Chiudiamo questa sezione parlando del Processor Expert Software - Component Development Environment. Va utilizzato per creare componenti embedded e grazie al suo utilizzo possibile incapsulare qualunque libreria o algoritmo software all'interno del componente in maniera tale che possa essere riutilizzato senza alcun tipo di problema su tutte le piattaforme che seguono: ColdFire, ColdFire+, Digital Signal Controllers, Kinetis, RS08 e S08 ed anche QorIQ.
Piuttosto che scrivere ex novo il codice per un'applicazione possiamo risparmiare tempo e denaro dedicati allo sviluppo utilizzando i componenti all'interno delle applicazioni definendo sviluppando i componenti proprio all'interno del CDE. Come realizzare delle librerie software.
CDE è completamente supportato da tutti gli ambienti di sviluppo Eclipse-based  e l'interfaccia renderà molto semplice creare, modificare e lavorare, più in generale, con il codice definendo proprietà, metodi ed eventi.

MQX Lite

Ed è venuto il momento di parlare di MQX Lite Real-Time Operating System (RTOS).

Si tratta di un kernel MQX molto snello che si sa rendere molto utile dal momento che è ottimizzato per gestire le risorse dei micro al meglio, anche nel caso di micro economici.
Inizialmente questo pacchetto è stato sviluppato per la famiglia Kinetis serie L, con particolare riferimento alle applicazioni "costrette" ad essere eseguite girando su memorie RAM al di sotto dei 4 kB.
Si tratta, in realtà, di una versione "scalata" che fa parte della "famiglia" Freescale MQX Software e che risulta particolarmente utile anche per la migrazione di codice.
L'aspetto interessante è che lavora molto bene insieme con il software Processor Expert, ed è proprio per questo che oggi dedichiamo un articolo ad entrambe queste soluzioni.
Come vedremo, si tratta di un pacchetto molto facile da configurare e che risulta utile anche per aggiungere funzionalità nuove ad applicazioni già esistenti e che sono già state implementate. È anche possibile sfruttare tutti i driver che sono supportati da Processor Expert e questo ha un'utilità innegabile: diventa estremamente semplice effettuare un processo di "scaling", o meglio di "porting" tra una piattaforma ed un'altra.

I vantaggi fondamentali dell'utilizzare MQX Lite sono:

  • facilità di configurazione, dal momento che si propone come un componente di Processor Expert con opzioni configurabili;
  • semplicità nell'espandere applicazioni esistenti, dal momento che basta semplicemente effettuare un'operazione di "drop" del componente MQX Lite per essere pronti in pochi minuti;
  • peso estremamente contenuto, dal momento che stiamo parlando di un'applicazione minimale (hello task, idle task, interrupt stack) che sta in meno di 4 kB di RAM e che è ottimizzata per MCUs dalle risorse limitate;
  • I/O supportato da Processor Expert, perché si avvantaggia dei driver dei dispositivi logici ed ha accesso alle librerie dei componenti come, per esempio, USB Processor Expert;
  • Real-time, basato su priorità e con task switching preemptive, il che permette l'esecuzione di threads e task in maniera ordinata garantendo a quelli di priorità più elevata un'esecuzione rapida indipendentemente dal numero di threads che richiedono risorse alla CPU;
  • upward code migration, permesso grazie al modello di programmazione dal momento che MQX Lite RTOS è un subset di MQX RTOS (full).

Quest'ultima caratteristica, in particolare, ci indica che tutto il codice che dovessimo scrivere per la versione Lite potrebbe facilmente esser fatto migrare verso la versione full.

Per quanto riguarda la disponibilità della reperibilità del programma, come dicevamo, reso disponibile come un componente interno a diversi software. Non soltanto il Processor Expert, di cui abbiamo già detto, ma anche il CodeWarrior Development Studio for MCU v10.3.
È importante specificare che Processor Expert (MCU driver suite) sopporta diverse toolchain: sia lo IAR sia Keil sia GCC.

E dal momento che abbiamo nominato la versione full dell'MQX, vediamone un breve confronto con la versione Lite.
Prima di tutto, i driver I/O sono solo quelli di Program Expert nel caso Lite mentre per la versione full abbiamo tutti i driver compatibili con MQX POSIX con opzioni dedicate per utilizzare quelli di Program Expert.
La configurabilità è ridotta nel caso della versione Lite, anche per garantire la leggerezza della versione. I servizi necessari possono essere selezionati dall'utente, invece, nella versione full.

Se cercate altri dettagli, altre informazioni volete semplicemente approfondire, potrete consultare questo link che altro non è se non una User Guide, abbastanza completa ed esaustiva.

In conclusione

Bene, per oggi abbiamo finito. Con questa puntata, come vi avevamo annunciato, si chiude la seconda fase del nostro corso. Adesso quello che faremo sarà mettere alla prova la scheda, la FRDM-KL46Z, metterci le mani sopra, cominciare a farci esperimenti. Ora sappiamo come funziona, qual è la sua architettura, ne conosciamo i dettagli costruttivi e funzionali e abbiamo anche il modo per programmarla. Non ci resta che continuare ad addentrarci sempre più.

Alla prossima puntata.

 

                    

Per ulteriori informazioni potete scrivere a questa email: [email protected]

Scarica subito una copia gratis

2 Commenti

  1. Avatar photo Giorgio B. 31 Ottobre 2013
  2. Avatar photo Piero Boccadoro 3 Novembre 2013

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend