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

75

PORTING |

SOFTWARE

EMBEDDED

55 • FEBBRAIO • 2015

re in maniera sensibile il ciclo di progettazione.

La disponibilità di un’ampia gamma di schede di

sviluppo e di note applicative può rappresentare

un valido ausilio.

Porting del codice: alcuni suggerimenti utili

Nel caso si decida di eseguire il porting di un pro-

getto su una CPU a 32 bit è necessario prendere

in considerazione gli aspetti di seguito descritti.

Selezionare una CPU/MCU a 32 bit e il rela-

tivo IDE.

Nel caso si esegua per la prima volta

il porting su una piattaforma a 32 bit, è meglio

optare per un dispositivo semplice, riducendo

in tale modo i rischi di introdurre difetti nella

fase di in cui si sta acquisendo familiarità con

le differenze di un progetto che utilizza questo

tipo di piattaforma. Di conseguenza è meglio

scegliere un dispositivo di fascia bassa e un IDE

in grado di semplificare il processo di porting. Un

esempio è rappresentato dalla MCU PSoC4000

di Cypress Semiconductor supportata dall’am-

biente di sviluppo integrato PsoC Creator.

Scegliere un nuovo compilatore.

Quando

si effettua il porting del codice su una nuova

CPU è necessario scegliere un nuovo compila-

tore. Per le CPU a 32 bit è disponibile un’am-

pia gamma di compilatori, alcuni dei quali of-

ferti a titolo gratuito. GCC, ARM/Keil MDK

e IAR sono solo alcuni tra i numerosi esempi.

Accertarsi del corretto funzionamento dei

tool per la realizzazione e il debug.

In questo

caso è sufficiente generare un semplice program-

ma di test da utilizzare, ad esempio, a far lampeg-

giare un LED. In questo modo è possibile acquisi-

re esperienza preziosa, utile nelle fasi successive.

Riscrivere il codice assembler.

Il codice esi-

stente dovrebbe essere scritto in C (o in qualche

altro linguaggio ad alto livello). Qualsiasi porzio-

ne del codice scritto in linguaggio assembly per il

processore a 8 bit molto probabilmente non sarà

portatile. Quindi se nel progetto attuale è presen-

te del codice assembler, è buona norma eseguirne

la riscrittura in linguaggio C prima dell’inizio del

processo di porting.

Incapsulare il codice specifico della MCU.

Nel caso il codice sia di natura modulare (una

procedura consigliata di codifica), questo proces-

so potrebbe essere già stato eseguito. La porzione

di codice che interagisce direttamente con i regi-

stri della MCU, come ad esempio la lettura delle

porte di I/O, dovrebbe trovarsi in file separati ri-

spetto al resto del codice. È necessario incapsu-

lare il codice in questi file sotto forma di funzioni

con nomi generici come ad esempio UART_Recei-

ve(). A questo punto è possibile riscrivere queste

funzioni per la nuova MCU senza dover modifica-

re il resto del codice.

Altre modifiche architetturali

Una nuova CPU potrebbe consentire il trasfe-

rimento dell’esecuzione (offload) di determinate

funzioni dalla CPU alle periferiche. Un nuovo

ambiente di sviluppo potrebbe anche generare

in maniera automatica il codice. Per sfrutta-

Fig. 5 – Stadi di una pipeline del processore Cortex-M Processor (Fonte: ARM)