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

77

EMBEDDED

55 • FEBBRAIO • 2015

PORTING |

SOFTWARE

gram Status Register) che contiene i risultati delle istruzioni

come flag di zero e flag di riporto oltre al numero di eccezioni

attuale;

registro di mascheramento degli interrupt;

registro che controlla quale puntatore dello stack è attivo.

Il set di istruzioni del core Cortex-M0, semplice ma estremamen-

te potente, mette a disposizione un gran numero di modalità di

indirizzamento e garantisce un elevato livello di densità del co-

dice [2] . Il porting del codice C da una CPU a 8 bit a una CPU

Cortex M si traduce molto spesso in un risparmio di memoria.

Le CPU della serie Cortex M di ARM hanno, come visibile in

figura 5, una pipeline delle istruzioni. Ciò contribuisce a incre-

mentare la velocità complessiva di esecuzione del codice perché

la CPU può eseguire un’istruzione mentre contemporaneamente

carica e decodifica l’istruzione successiva.

Le CPU della serie Cortex-M di ARM integrano il supporto per

gli interrupt direttamente nel core della CPU, utilizzando un

controllore NVIC (Nested Vectored Interrupt Controller). Tra le

caratteristiche di questo controllore si possono annoverare:

priorità dinamica e “annidamento” (nesting) con priorità auto-

matica degli interrupt in attesa;

bassa latenza – La CPU immagazzina e re-immagazzina auto-

maticamente il proprio stato senza nessun sovraccarico durante

l’esecuzione delle istruzione;

meccanismo di “Tail-chaining” – Elaborazione consecutiva de-

gli interrupt “annidati” senza il sovraccarico legato al salvatag-

gio degli stati e al ripristino tra gli interrupt;

arrivo in ritardo – un interrupt con una priorità più alta che

arriva durante l’operazione di push (inserimento di un valore)

nello stack di un interrupt a più bassa priorità viene servito per

primo.

L’insieme di queste caratteristiche consente una gestione degli

interrupt più veloce e deterministico. È pure previsto un timer

di sistema (“SysTick”) che semplifica l’utilizzo dell’RTOS è può

operare mentre la CPU è in modalità “sleep”. Grazie a questo

efficace supporto in termini di gestione degli interrupt, è possibi-

le realizzare un’architettura basata in modo più massiccio sugli

interrupt. Il processore Cortex-M di ARM integra caratteristi-

che di debug direttamente nel core della CPU, garantendo in tal

modo un miglior supporto in fase di debug per un gran numero

di ambienti IDE.

Il core Cortex-M0 fa parte di una più ampia famiglia di proces-

sori Cortex-M caratterizzati dalla medesima architettura di re-

gistri e in grado di eseguire l’intero set di istruzioni Thumb-2 (o

parte di esso). Ciò semplifica l’aggiornamento con una CPU più

potente, come ad esempio il processore Cortex M3 che equipag-

gia la famiglia PsoC 5LP di Cypress.