Embedded_53 - page 65

EMBEDDED
53 • SETTEMBRE • 2014
65
SOFTWARE
IDE
un display testuale a una o due righe, i dialoghi erano di natura
modale e le informazioni potevano essere presentate e recuperate
in modo strutturato. Le odierne interfacce, ricche di oggetti gra-
fici, richiedono un approccio molto più dinamico, generalmente
basato su un ciclo di gestione degli eventi e richiede un approccio
di tipo multithreading per non bloccare l’interfaccia utente.
Gli aggiornamenti effettuati dall’utente possono avvenire prati-
camente in qualsiasi momento e possono provenire da diverse
fonti. Ad esempio, un sistema di tipo tattile può non solo accettare
semplici pressioni di tasti virtuali e scorrimenti, ma potrebbe
richiedere il riconoscimento di una varietà di azioni che assumo-
no significati differenti a seconda dell’applicazione attiva in quel
momento. Questi gesti possono essere analizzati dal software in
esecuzione sul processore principale o fornito da un dispositivo
dedicato e munito di interfaccia tattile. Indipendentemente dalla
fonte, le azioni o gli altri ingressi devono essere elaborati e inviati
immediatamente al processo corretto.
Per
i m p o s t a r e
da zero un
s i s t ema
funzio-
n a n -
t e
è necessario un certo numero di elementi: driver grafici al
processore di visualizzare i pixel su un display collegato, librerie
di immagini, video e audio, e tool per la progettazione dell’inter-
faccia, così che anche uno sviluppatore poco esperto in program-
mazione possa realizzare interfacce accattivanti. Questi requisiti
non sono sempre alla portata di un programmatore che lavora in
autonomia. Questi problemi vengono ulteriormente complicati
dalla necessità di avere un flusso di lavoro efficace e un ambiente
di cross-compilazione che possa fornire i file binari eseguibili al
target embedded. Ciascun ciclo completo di sviluppo, compila-
zione, linking, flashing e collaudo richiede un tempo significativo.
L’importanza della connettività
La connettività è un altro elemento importante nello sviluppo di
molti sistemi embedded odierni. Questi richiedono non solo la
capacità di trasferire dati in Internet, ma anche di memorizzare
e manipolare dati strutturati che devono essere sincronizzati
dai server basati su cloud. Sistemi di interrogazione su database
come SQL e le tecnologie web associate – XQuery e JSON, ad
esempio – garantiscono la connettività richiesta con le fonti di dati
online. Si tratta in ogni caso di moduli aggiuntivi che gli sviluppa-
tori di sistemi embedded devono realizzare nel target.
Realizzare tutto quanto esposto a partire da componenti di basso
livello, è un’operazione proibitiva per qualsiasi progetto embed-
ded. Pertanto, la scelta corretta di uno stack software contenente
tool e framework di più alto livello per la creazione dell’interfaccia
utente, l’installazione e il collegamento in rete del dispositivo, è
una delle decisioni più importanti da prendere in un nuovo proget-
to embedded. I requisiti dello stack software vengono poi utilizzati
come dato di partenza per la scelta dell’hardware.
L’importanza di Linux
Ambienti software realizzati sfruttando un framework Linux si
sono rivelate piattaforme efficaci per lo sviluppo di sistemi embed-
ded. Essi comprendono Android – originariamente sviluppato
da Google per telefonini e tablet, ma oggi sempre più utilizzato
anche negli impianti industriali – e distribuzioni Linux per sistemi
embedded come Yocto. Queste piattaforme supportano interfac-
ce grafiche tridimensionale come OpenGL – utilizzata nella mag-
gior parte dei giochi per computer e telefonini – nonché funzioni
di rete, come HTTP e TCP/IP. Esse devono comunque essere
assemblate e rese accessibili allo sviluppatore.
Un IDE efficace per agevolare
il flusso di lavoro
Gli ambienti di sviluppo integrati (IDE, Integrated Development
Environment) si sono evoluti per gestire in maniera efficace la
crescente complessità delle piattaforme e “nascondere” la com-
plessità agli sviluppatori di applicazioni. Negli ambienti desktop
e mobili sono state introdotte un numero di tecnologie tese a
facilitare lo sviluppo di interfacce utente ricche di animazioni che
possono essere utilizzate anche in ambiente embedded.
1...,55,56,57,58,59,60,61,62,63,64 66,67,68,69,70,71,72,73,74,75,...86
Powered by FlippingBook