Porting (o cambio strategico) da un sistema embedded proprietario a un Linux Embedded

Nell’ambito dei sistemi embedded l’esperienza che vogliamo condividere è un percorso abbastanza comune. Il passaggio da un sistema embedded proprietario( o poco diffuso) ad una board che supporta linux embedded. La migrazione ha delle valide motivazioni e l’esperienza del porting, o più semplicemente del cambio strategico di sviluppo per i nuovi moduli, conferma quelli che sono i vantaggi ottenuti nel passaggio.
Uno degli ambiti da progettare e sviluppare bene è il porting di alcune librerie di base, in quanto la code-base sul sistema proprietario utilizzava elementi unici che necessitano di un adattamento. In questo caso l’uso della compilazione condizionata ci aiuta a non snaturare la struttura dei file, ma a ritagliare ed isolare gli elementi cross-platform.
Alcune tra le differenze tra il sistema proprietario e linux embedded risiedono nella possibilità di eseguire più processi e come sia trasparente o meno al programmatore il controllo del context-switching.
Una delle attività sul nuovo sistema Linux Embedded è stata la creazione di una macchina a stati. In questo caso il sistema Linux ci ha consentito di utilizzare le librerie Boost al fine di avere una definizione ad alto livello della struttura degli stati. Il framework è risultato molto maturo, ma porta con sé alcune caratteristiche poco idonee al contesto Embedded: struttura pesantemente basata sui template C++ con conseguente tempo di compilazione elevatissimo e struttura dell’eseguibile di debug oltre 40Mb (inaccettabile per un trasferimento sui device).
Chiudiamo questa esperienza confrontando i sistemi di sviluppo nei due contesti:
Caso Proprietario: Vs2008 con sistema di simulazione creato ad-hoc
Uso di CodeBlocks per cross-compilazione e rilascio sul device
Caso LinuxEmbedded: Prima tentativo con Eclipse (molta differenza con approccio VS)
Poi passaggio su CodeBlocks su Linux.
Possibilità di utilizzare tool di profiling e di individuazione dei memory-leaks come Valgrind e quindi aumentare la qualità del codice prodotto.

Edizione 2012 nella track Auditorium.

Video di presentazione

Download


Livello
beginner
Lingua
IT
Durata
30 minuti
Tag
RTOS Linux