SOFTWARE
|
PORTING
76
EMBEDDED
55 • FEBBRAIO • 2015
re al meglio que-
ste potenzialità è
bene prendere in
c on s i d e r a z i one
l’opportunità di
rivedere l’architet-
tura di alcune por-
zioni di codice o
del codice nel suo
complesso. Poiché
è più semplice
implementare la
c ommu t a z i o n e
dei task con una
CPU a 32 bit, è
senza dubbio utile
modificare l’archi-
tettura del codice
in modo da avere
task separati da
utilizzare con un
sistema operativo
real-time (RTOS).
Aziende
come
Segger e Micrium
sono specializzate
nello sviluppo di
RTOS per sistemi
a 32 bit.
Realizzazione e debug incrementali
Quando si progetta il nuovo codice, la miglior
procedura da seguire è aggiungere, collaudare ed
effettuare il debug del codice in modo incremen-
tale (ovvero in passi successivi). In questo modo
è più semplice individuare e correggere eventuali
difetti. Una modalità identica deve essere segui-
ta durante il porting: quindi è necessario esegui-
re il porting del codice, il collaudo e il debug del
codice sulla nuova CPU in passi successivi.
CPU e MCU: un esempio pratico
Per meglio comprendere il processo di porting, è
utile esaminare in maniera più dettagliata tale
processo prendendo come esempio il core Cortex-
M0 e i dispositivi della serie PsoC 4000. Il pro-
cessore Cortex-M0 è il più piccolo core ARM al
momento disponibile e si propone quindi come
una piattaforma naturale ed economica per la
migrazione di CPU a 8 e 16 bit. L’architettura
dei registri (Fig. 4) e il set di istruzioni ne fanno
un engine C particolarmente efficiente.
Poiché tutti i registri sono a 32 bit, è possibile
effettuare un indirizzamento a 32 bit mentre lo
spazio di indirizzamento è di 4 Gbyte. In parec-
chie CPU a 8 bit lo spazio di indirizzamento è
limitato a 64 kbyte.
Vi sono 12 registri di tipo general purpose: i re-
gistri inferiori (R0 – R7) hanno più supporto nel
set di istruzione. Facendo riferimento alla figura
4, i registri speciali comprendono:
•
puntatori dual stack (R13) che rappresenta un
ausilio per implementare un sistema operativo
real time (RTOS);
•
registro di link (R14) per un veloce ritorno dalle
chiamate di funzioni;
•
program counter (R15);
•
registro dello stato del programma (PSR - Pro-
Fig. 6 – Schema a blocchi di PSoC 4000




