Background Image
Table of Contents Table of Contents
Previous Page  76 / 86 Next Page
Information
Show Menu
Previous Page 76 / 86 Next Page
Page Background

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