Background Image
Table of Contents Table of Contents
Previous Page  64 / 104 Next Page
Basic version Information
Show Menu
Previous Page 64 / 104 Next Page
Page Background

EDA/SW/T&M

IoT

64

- ELETTRONICA OGGI 441 - NOVEMBRE/DICEMBRE 2014

l‘accesso a basso livello a un

dispositivo hardware specifico

attraverso una periferica o un

altro driver. La differenza tra

un driver e una periferica è ben

delineata. Quest‘ultima defini-

sce le informazioni base relati-

ve all‘hardware ma non rende

disponibili ulteriori funziona-

lità. Informazioni di questo tipo

possono essere utilizzate da un

driver posto al di sopra della

periferica. I driver, come pure

le relative interfacce, sono spe-

cifici di un determinato dispo-

sitivo hardware. Ne consegue

che se l‘applicazione contiene

codice che permette di acce-

dere all‘interfaccia API del dri-

ver, essa risulterà dipendente

dall‘hardware. I driver operano

a un livello basso di astrazione

e l‘utilizzo di un dispositivo a

livello di driver richiede la co-

noscenza di quella particolare

interfaccia del driver.

Alcuni driver sono disponibili

sotto forma di wrapper inclusi

in una libreria (library wrap-

per): essi mettono a disposizi-

one solamente una routine di

inizializzazione che viene rich-

iamata da un‘applicazione al

fine di configurare pin, clock e

registri. Dopo l‘inizializzazione è

possibile utilizzare le librerie dei driver delle periferiche del

fornitore di silicio.

Servizi dello stack

Questi servizi (rappresentati con il colore blue in Fig. 1) sono

i livelli più astratti di funzionalità. Essi forniscono un accesso

standardizzato e indipendente dall‘hardware ai dispositivi. I

servizi dello stack assicurano la portabilità di un applicazi-

one. Per esempio, se l‘applicazione utilizza in servizio TCP/

IP generico, esso resta inalterato nel caso una connessio-

ne Ethernet sia sostituita da un collegamento PPP o seriale.

Un’applicazione TCP/IP portatile opera esattamente allo stes-

so modo, sia che sia connessa a un UART o a una periferica

EMAC, poiché la piattaforma software gestisce i dettagli di

più basso livello.

Servizi software

Alcuni servizi sono statici e non

occorre che siano istanziati.

Essi non hanno una relazione

(diretta) come le periferiche

o altri servizi e semplificano il

supporto di funzionalità comuni

come il multithreading POSIX,

CMSIS, gestione degli interrupt

o del timer software. Questi

servizi software (Fig. 2) posso-

no essere aggiunti automatica-

mente nel caso fossero richiesti

da altri servizi.

Integrazione della

piattaforma software

Per integrare la piattaforma

software in un progetto con tool

TASKING per core Cortex ARM

basato su Eclipse è richiesto un

numero molto ridotto di opera-

zioni. In primo luogo è neces-

sario aggiungere al progetto il

documento della piattaforma

software.

I servizi software e gli stack dei

dispositivi richiesti sono ag-

giunti mediante il menu „Add“

abilitando il relative box di ve-

rifica (Fig. 3).

Una volta scelto uno stack del

dispositivo nel documento della

piattaforma software è possibi-

le selezionare gli stack disponi-

bili per quel dispositivo, mediante l‘opzione Grow stack up

oppure Grow stack down. Nella figura 4 sono riportati i bloc-

chi dello stack relativi a un‘interfaccia USART.

Gli stack del dispositivo possono essere configurati modifi-

cando le opzioni nella finestra „Proprietà“. Nella figura 5, ad

esempio, sono riportate le opzioni di configurazione relative

a un driver per un MAC Ethernet.

Una volta configurata la piattaforma software, tutti i file C e

i file di intestazione appartenenti ai dispositivi utilizzati sono

aggiunti (copiati) al progetto Eclipse. In caso di modifica dei

parametri del dispositivo, i file di progetto possono essere

aggiornati mediante il tasto „Generate Code“.

Dal codice sorgente del progetto embedded le funzioni della

piattaforma software sono richiamate come le altre funzioni

del linguaggio C. L‘assegnazione delle funzioni, i loro para-

Fig. 6 – Funzioni HTTP