Come configurare MQX di ColdFire

Come configurare MQX di ColdFire, una guida semplice ed intuitiva per la suita RTOS MQX per ColdFire, naturalmente da Freescale. Freescale offre MQX RTOS per il suo microcontrollore ColdFire con i relativi codici sorgenti.

Sebbene il software è stato distribuito con il codice sorgente, è altamente raccomandato non modificare tale codice in tutti i suoi componenti. Freescale suggerisce all'utente di usare il file user di configurazione per configurare l'operazione del sistema in tempo di compilazione. Naturalmente, gli utenti esperti possono modificare il codice sorgente per aggiungere più caratteristiche per i loro bisogni.

Comunque dovete seguire la distribuzione (rilascio) da Freescale. I sistemi incorporati sono fatti su misura su richieste specifiche. In più casi, i modelli personalizzati usano configurazioni in un tempo di compilazione con definizioni macro per abilitare alcune caratteristiche. Io ho una terribile esperienza nel lavorare sui progetti personalizzati con il codice sorgente. Al fine di offrire più caratteristiche nello stesso codice base, l'architettura del sistema introduce centinaia di macro definizioni nel software. Potrebbe funzionare se il codice sorgente fosse interamente disponibile per gli sviluppatori.

Comunque alcune persone (amministratori) potrebbero decidere di proteggere il cosiddetto software IP ed evitare di codificare il software da parte dei clienti. Di conseguenza il codice sorgente è codificato prima ancora di essere consegnato ai clienti. Durante la costruzione del progetto in client PC, il codice è decriptato e compilato nella libreria di un utente in base al file di configurazione. Al fine di raggiungere tale scopo, il codice sorgente è suddiviso in più file di piccole dimensioni. Essi addirittura convincono i venditori per offrire una speciale versione per questo. L'intero processo è estremamente lento a causa della decrittazione e costruzione dei piccoli files. Un piccolo cambiamento in testa di un file avviene in circa 45 minuti su un 2G Pentium IV. Al contrario, il semplice originale progetto richiede solo 5 minuti per costruire da zero. Il nostro gruppo di sviluppatori potrebbero essere in grado di sviluppare 50 progetti in un anno. Dopo aver usato questo stupido metodo di crittografia, noi potremmo finire solo 3 progetti in un anno, con una grossa manutenzione nel tempo e correzioni degli errori.

Freescale offre la suite MQX con il suo codice sorgente, che è un Vangelo per gli sviluppatori. Ti ringrazio, Freescale. Tuttavia, Freescale raccomanda ancora di non toccare il sorgente MQX. Invece è fortemente raccomandato di usare il file user_config.h per configurare tutte le librerie MQX. Io credo che gli utenti esperti possano toccare il codice, aggiungendo le proprie librerie. Comunque se si modificassero le librerie MQX, è necessario che riparaste gli errori da soli, senza il supporto ufficiale della Freescale, e dovete anche aggiornare il tutto con gli ufficiali aggiornamenti della Freescale.

Configurazione del file

Per costruire tutte le librerie MQX in una sola volta, può essere usato lo speciale progetto principale . Il progetto si trova insieme ai file user_config.h nella cartella: /config//build_libs.mcp
Nella mia cartella di installazione c'è C:\Program Files\Freescale\Freescale MQX 3.1\config\m52259demo.
Ci sono due file in questa cartella, uno è build_libs.mcp file di progetto e l'altro è user_config.h
Aprite il file di progetto nel CodeWarrior e puoi vedere 7 sotto-progetti: PSP, BSP, MFS, RTCS, USB_HDK, USB_DDK e Shell. Non è possibile visualizzare il file user_config.h fino a quando non viene aperto ogni sotto-progetto, i quali sono inclusi nella cartella configurazioni utenti M52259DEMO (M52259DEMO User Config ).

Per essere onesti, ero molto deluso quando ho visto le opzioni configurabili nel file: ci sono così poche opzioni da manipolare. Anche se questo file principale include altri due file principali nella stessa cartella, la paggior parte delle configurazioni sono di solito usate per eseguire i debug del kernel MQX e per le configurazione del livello applicativo come passare ICMP, con il quale non si possono soddisfare i diversi requisiti da tutti i tipi di sistemi incorporati. Comunque noi non possiamo biasimare Freescale, la diversità è sempre un bel casino, con il quale non possiamo essere completamente in grado di risolvere in una risorsa limitata del sistema incorporato. Perché se mettiamo troppe configurazioni dello stesso file, il progetto sarà molto difficile da mantenerlo efficente.

Il codice sorgente è tagliato in frazioni e difficile da leggere. Ho intuito che si debbano usare diverse cartelle per sostituire la macro definizione per soddisfare le diverse esigenze, mi chiedo ancora se un approccio alternativo fosse migliore della classica macro definizione. Forse è un altro incubo.

Costruire le librerie MQX

Dato che il progetto è dedicato alle librerie principale MQX , si possono costruire con facilità tutte le librerie che vogliamo. Ci vogliono parecchi minuti per costruirli tutti. Allora è possibile copiare le librerie e dirigere i files nella tua cartella del codice progetto. In realtà essi sono stati copiati nella cartella lib automaticamente. E possibile attivare e disattivare le opzioni nel user_config.h e costruirli ancora. Quindi è possibile ottenere le nuove librerie. Gli altri progetti user si riferiranno a queste librerie mediante aggiornamento file principale e collegando le librerie aggiornate nella cartella centrale lib. Quindi se si stanno sviluppando progetti diversi con caratteristiche distinte nelle librerie, dovete isolarli in differenti cartelle. Di conseguenza, dato che almeno uno di loro so sposta in un'altra cartella, bisogna crearsi la cartella da ex-novo a causa di tal problema.

Leggendo le documentazioni

E' sempre buona abitudine leggere le documentazioni prima di cambiare i codice. L'originale MQX della ARC e MQX della Freescale sono parecchio differenti. Alcune caratteristiche sono ancora nelle documentazioni, come ad esempio BOOTP, PPPoE e IPSec, ma purtroppo non sono più disponibili nella versione Freescale. Non è chiaro se queste caratteristiche rimosse saranno poi disponibili nelle versioni future e il motivo per cui non ci sono più. Queste documentazioni sono utili per gli sviluppatori che stanno per aggiungere caratteristiche che desiderano. Tutte le documentazioni sono posti nella cartella doc, tra qui la nota di rilascio, i manuali per ogni singolo componente.

Studiando i sorgenti libreria

Inoltre, oltre a leggere le documentazioni allegate(Release Notes and Manuals) per MQX, possiamo documentarci su MQX leggendo il suo codice sorgente. Io lavoro sempre su MEtrowerks CodeWarrior. Ho bisogno di alcuni giorni per acquisire familiarità con CW. Ricercando in tutto il progetto ho visto che è la caratteristica più importante per un IDE. Al fine di cercare una parola nelle librerie MQX, è necessario aprire i sotto progetti (o le librerie) prima di indagare. Altrimenti non si ottiene nulla.

Per esempio, io vorrei aggiungere due caratteristiche fondamentali per il progetto web HVAC, DHCP client e HTTP autenticazione base che possono ottenere assegnazioni IP da DHCP server del router e impedire l'abuso del controllore HVAC. Provo a cercare il codice nel web progetto HVAC, ma non ottengo nulla. Tuttavia posso vedere il codice durante il debug, che comprende le librerie sorgenti nella sessione debug. Così io apro il RTCS sotto-progetto nel progetto principale, poi cercando "authenticate" in RTCS sorgente libreria, trovo "httpd_processreq" nel httpd.c che ha già implementato l'autenticazione di base. E il "DHCP client" è anche già implementato in RTCS. Quindi il prossimo passo da fare è tornare al progetto web HVAC per scoprire il motivo di queste caratteristiche che non sono state attivate in questo progetto.

Dobbiamo studiare il codice di ogni libreria prima di cambiare qualsiasi codice. Alcuni componenti hanno esplicitamente detto che alcune caratteristiche non sono disponibili nella versione corrente. Dovete aspettare il prossimo rilascio o porting di altri modelli in piattaforma MQX. Ho intenzione di indagare se posso aggiungere i componenti mancanti per MQX da altri modelli, come ad esempio USB host CDC class driver, che è molto utile per interfaccia WiFi, Bluetooth e telefono cellulare. Speriamo che si possiamo fare di MQX una completa suite RTOS per ColdFire.

I prodotti Freescale sono disponibili da Farnell

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend