|
ultimo aggiornamento 7 agosto 2010 |
|
LA PROGRAMMAZIONE
DEL PROPELLER
Per programmare un multicontrollore con un’architettura così particolare si deve
necessariamente utilizzare l’assembler. Solo così si riescono ad ottenere le
prestazioni indicate in termini di Mips. In realtà la Parallax ha realizzato lo
Spin un ambiente di sviluppo con un linguaggio ad hoc ad alto livello.
Lo Spin
Lo Spin è un linguaggio interpretato (nella ROM del Propeller c’è una copia
dell’interprete) simile al basic che però presenta alcune caratteristiche di
linguaggi più evoluti come la definizione di oggetti.
Non si tratta di un
linguaggio ad oggetti vero e proprio ma si possono realizzare dei moduli in cui
sono definite le strutture dati, le funzioni pubbliche e l’insieme delle
funzioni private scritte sia in linguaggio SPIN che in assembler.
Ogni oggetto
avrà la sua interfaccia pubblica e può a sua volta includere altri oggetti.
La
definizione degli oggetti è uno dei punti di forza dello Spin poiché è possibile
creare dei moduli per le funzioni base riutilizzabili facilmente in nuovi
progetti.
La stessa Parallax per incoraggiare la condivisione dei vari moduli ha
creato un’area apposita nel proprio sito: il Propeller Object Exchang.
Nell’IDE di sviluppo ci sono delle funzioni particolari per facilitare lo
scambio e la condivisione dei moduli.
Ad esempio, grazie ad un font true type,
appositamente sviluppato dalla Parallax, è possibile aggiungere al listato del
codice dei commenti con disegni e piccoli schemi hardware.
Esempio rappresentazione schema di utilizzo
dell'integrato HM55B Compass Module Serial
In questo modo si può
integrare la documentazione completa nel listato del codice.
Tramite un’opzione
dell’IDE è possibile generare un file zip che include tutto il progetto attuale
e una copia dell’IDE stesso evitando così eventuali problemi di compatibilità
tra versioni differenti del sistema di sviluppo.
LA PROCEDURA DI
STARTUP
Per utilizzare il multicontroller Propeller sono necessari pochi componenti
esterni: un quarzo, solo se non si vuole utilizzare l’oscillatore RC interno, e
una memoria eeprom da 32Kbyte con porta IIC per memorizzare il codice
applicativo
Il boot code del Propeller che si trova nella ROM dell’HUB carica il contenuto
della eeprom nella RAM dell’HUB, successivamente cede il controllo al COG0 che
esegue una copia dell’interprete Spin e inizia a leggere e ad eseguire il codice
applicativo. Durante la fase di sviluppo del codice è possibile sfruttare
un’altra funzione del boot loader.
All’avvio infatti il loader cerca di stabilire una connessione seriale con un
dispositivo remoto (Ad es. un PC).
Se viene stabilita la connessione il
Propeller carica il codice applicativo nella RAM direttamente dal dispositivo
remoto anziché dalla eeprom.
Questa funzione permette di aggiornare rapidamente
il codice durante la fase di sviluppo.
I TOOLS DI
SVILUPPO
Dalla descrizione della procedura di startup si può già intuire che per
utilizzare un Propeller si deve semplicemente collegare due porte del micro ad
una porta seriale e utilizzare l’IDE di sviluppo per la programmazione.
Pannello di controllo
All'apertura del
compilatore. Lo schermo sarà diviso in quattro parti:
1.Pannello oggetti - In questo pannello
vengono visualizzati tutti i componenti (oggetti) che fanno parte del progetto
corrente. Il linguaggio SPIN essendo di tipo 'object-oriented', in questa
finestra viene rappresentata graficamente la gerarchia degli oggetti e come essi
sono collocati nel progetto.
2.Pannello di esplorazione cartelle -
Viene visualizzato il percorso (cartelle) del disco. Utilizzando questa finestre
è possibile esplorare le cartelle.
3.Pannello di esplorazione file -
Viene visualizzato il contenuto della cartella selezionata nel pannello
2. Utilizzando questa finestra è possibile selezionare il file e procedere alla
sua apertura.
4. Pannello Editor -
In questo pannello è possibile visualizzare e modificare i files aperti. Per
ciascun file aperto verrà visualizzato in alto un 'tab' che ricorda il nome del
file. In questo modo sarà semplice passare da un file all'altro facendo click
sul nome visualizzato nel 'tab'.
Elenco revisioni | |
07/08/2010 | Emissione preliminare |