Software Embedded
La linea Embedded Software offre servizi che riguardano tutti gli aspetti del software lifecycle di un sistema embedded. Partendo dall’ Analisi dei Requisiti, noi selezioniamo standard, metodi e tool, progettiamo l’architettura del software, codifichiamo e verifichiamo l’applicazione ed alla fine integriamo le componenti hardware e validiamo l’intero sistema.
La nostra porposta si riferisce a 3 aree tecnologiche: Progettazione Firmware, Progettazione Software, Integration&Testing. Ogni area ha un valido punto di intersezione con i nostri Laboratori, dove valutiamo e sviluppiamo nuovi prodotti, scambiando conoscenze ed esperienze.
Progettazione Firmware
Nel nostro mondo, il Firmware si riferisce agli strati più bassi di un sistema software embedded, dove gli aspetti di real time sono la caratteristica più rilevante. L’Hardware – sia DSP che microprocessori – è strettamente legato ai nostri prodotti Firmware che comprendono BSP, PSP, castomizzazione di sistemi opertivi, middleware e specifiche applicazioni, di solito di dimensioni limitate.
Il sistema operativo ((VxWorks, Mqx, Psos, Linux R.T., etc..) può essere presento o meno; a volte ci si limita ad un semplice Scheduler. I linguaggi utilizzati sono Assembler (raramente), C e Ada; il C++ sta prendendo sempre più piede.
Molto spesso sono coinvolti Protocolli di comunicazione: bus di campo come CAN/CANopen, Modbus, Profibus, LON, o protocolli TLC come Ethernet, TCP/IP, SDH, SONET, TCP/IP family, SIP, SNMP.
A volte è richiesto il porting da una piattaforma HW ad un’altra.
L’uso di debugging remoto (JTAG e/o BDM) è ormai un aspetto mandatorio.
Progettazione Software
Il Software si riferisce agli strati alti dei sistemi embedded. Tipicamente esso implementa Core applications con uso di Interfacce Grafiche, Data Base, Stack di comunicazione, application frameworks, ecc.
Il sistema operativo è sempre presente (VxWorks, XP embedded, WinCE, Linux, ecc..), mentre i linguaggi di programmazione sono C++ , C# and Java. Il cross developing si basa su una vasta gamma di IDE e frameworks (Tornado, Microtask, Green Hills, gcc, ecc..).
A volte una parte del software è residente su PC: configuratori, monitor, simulatori ed altri pacchetti sono inclusi nell’offerta di Skytechnology. Visual Basic, Visual C++, C# e Java sono linguaggi tipici per tali prodotti, mentre IDE OpenSource, .net e J2EE sono i più comuni ambienti di sviluppo.
Integration & Testing
Integrazione e testing coinvolgono due differenti entità: il sofwtare ed il sistema. Ora, poiché i sistemi software embedded diventano sempre più complessi, è assolutamente necessario verificare e validare ogni componente in ciascuna fase del rispettivo ciclo di vita.
Suite, tool e protocolli possono cambiare in modo significativo in relazione ai tipi di applicazione, alle regole ed ai vincoli imposti al test e all’integrazione.
In aggiunta a metodi e tecniche consolidati, il testing dinamico (su unit and integration testing) si è rapidamente mostrato come un metodo altamente efficiente per la detezione di fault nelle fasi alte del ciclo di vita, minimizzando così i costi di bag fixing.
Skytechnology copre una vasta gamma di esperienze che vanno dallo sviluppo e testing di applicazioni safety-critical in ambito avionico o ferroviario, in cui ci si confronta con severi standard (ad es. Sil4 for Cenelec EN50128, Do178b), ad applicazioni in cui l’enfasi è più sulla complessità funzionale e quindi alla quantificazione dei test. Si utilizzano tool generici (SpLint, IPL Cantata++, SVN, Lauterbach Trace32) o specifici di settore (es. Omnitracker, Flexelint per gli ambienti Telco).