Embedded Linux

Transcript

Embedded Linux
MobiLab
Embedded Linux
Introduzione
Progetto STRAGO su WSN, Fase 1
[email protected]
[email protected]
Napoli, 16 Gennaio 2006
www.mobilab.unina.it
[email protected]
MobiLab
Perché Embedded Linux?
• Perchè Linux?
• Codice sorgente disponibile;
• Robusto e affidabile;
• Modulare, configurabile e scalabile;
• Supporto avanzato per il networking;
• Non c’è bisogno di licenze;
• Vasto numero di sviluppatori esperti;
• Vasto numero di soluzioni preconfezionate.
• Perchè Embedded?
• Tutti i vantaggi di Linux, più:
• Piccolo footprint,
• Larga diffusione.
www.mobilab.unina.it
Market share di Embedded Linux
MobiLab
2005 e previsione per il 2007
Fonte: http://www.linuxdevices.com
www.mobilab.unina.it
MobiLab
CPU e applicazioni
• Target CPUs basate su:
• ARM, x86, PowerPC e MIPS
• Quali applicazioni?
• Monitoraggio e controllo;
• Controllori e microcontrollori industriali;
• Palmari, e dispositivi cellulari;
• On-board computer per automobili;
• Hardware per telecomunicazioni e networking;
• Set top Box per televisioni;
• … e chi più ne ha più ne metta.
www.mobilab.unina.it
Distribuzioni Open Source (1)
MobiLab
Embedded Debian Project -- this project aims to make Debian GNU/Linux a
mainstream choice for embedded projects.
Embedded Gentoo -- A project to create embedded versions of Gentoo Linux has
achieved preliminary releases on x86, MIPS, PPC, and ARM. The releases include
native core system binaries, cross-platform toolchains, and, for x86, an optional
hardened toolchain.
Qplus -- Qplus consists of a reconfigurable embedded Linux kernel, system
libraries, a graphic window system, a target builder, a library optimization tool, and
BSPs for x86 and ARM targets.
uClinux -- a derivative of Linux specifically for microprocessors which do not
provide Memory Management Units (MMUs). Supports a growing list of processors
including: Motorola DragonBall (M68EZ328), M68328, M68EN322, ColdFire, QUICC;
ARM7TDMI; MC68EN302; Axis ETRAX; Intel i960; PRISMA; Atari 68k; and more all
the time!
www.mobilab.unina.it
Distribuzioni Open Source (2)
MobiLab
µLinux (a.k.a. muLinux) -- a "full-configured, minimalistic, almost complete,
application-centric tiny distribution" of Linux, made in Italy. µLinux fits on a single
floppy.
ETLinux -- a complete Linux distribution designed to run on small industrial
computers.
… e molte altre, anche commerciali.
www.mobilab.unina.it
Vantaggi e svantaggi
MobiLab
• Vantaggi:
• Supporto per numerose piattaforme;
• Interfaccia utente standard;
• File system leggero ed efficiente;
• Fornisce il boot loader;
• Fornisce parecchi driver per diverse periferiche;
• Numerose librerie;
• Supporto completo per la rete;
• Bassi costi.
• Svantaggi:
• Occupa più spazio rispetto i suoi concorrenti;
• Lo scheduling non è completamente real-time;
• Non è completamente preemptive;
www.mobilab.unina.it
MobiLab
C o C++ per lo sviluppo?
• In generale C è una scelta migliore.
• La programmazione ad oggetti avanzata causa in genere
una crescita delle dimensioni del codice;
• I compilatori C++ possono generare diverse procedure
per una singola funzione;
• Metodi virtuali e polimorfismo rallentano i tempi di lancio
ed esecuzione.
• Le dimensioni del codice sono davvero importanti!
www.mobilab.unina.it
Set up per lo sviluppo
MobiLab
Seriale (RS232)
PC di sviluppo
NFS
HD del PC
Rete (Ethernet)
SO Linux
Minicom
Shell telnet
Toolchain di cross compilazione
www.mobilab.unina.it
Target Box
Fasi di sviluppo di una semplice applicazione
MobiLab
1. Ottenimento di una shell verso la target box (via minicom o telnet);
2. (opzionale) Creazione di una partizione sul PC di sviluppo e mapping
della partizione sulla target box, via NFS. La partizione può essere
creata via terminale remoto dalla target box verso il PC di sviluppo.
3. Implementazione dell’applicazione in C;
4. Cross-compilazione dell’applicazione dal PC di sviluppo con il tool chain
appropriato per il SO installato sulla target box;
5. L’eseguibile viene posizionato nella partizione precostituita sul PC di
sviluppo o va direttamente inviato alla target box;
6. L’eseguibile viene eseguito dalla target box via terminale remoto.
Più complessa (e pericolosa…) è la creazione di una nuova immagine del
kernel.
www.mobilab.unina.it
Creazione di una nuova immagine
MobiLab
• Una nuova immagine del kernel può essere installata per vari motivi:
• Aggiungere i driver per nuove periferiche;
• Aggiornare i driver di periferiche esistenti;
• Cambiare kernel;
• Agigungere librerie di software.
1. make menuconfig: per selezionare le librerie da aggiungere/eliminare,
un altro kernel, un diverso file system…;
2. make: compila i sorgenti del kernel secondo le direttive di cui al punto 1,
e crea un’immagine (fimage) da “flashare” sul dispositivo;
3. Il flash può avvenire secondo diverse modalità (al boot via rete, o via ftp,
via seriale… ) vendor specific;
4. Una volta riavviata, la board dovrebbe funzionare con la nuova
configurazione.
www.mobilab.unina.it
MobiLab
Il nostro caso: AXIS 83+
•
•
•
•
•
•
•
•
Sistema Operativo Embedded Linux AXIS;
Processore AXIS ETRAX 100LX;
32 MB RAM, 8 MB Flash (di cui 4.5 per programmi)
2 porte seriali RS232;
1 porta seriale programmabile;
1 porta USB;
2 connettori RJ45 per Ethernet.
Prezzo: 299 USD.
• Possibile obiettivo: usare una piattaforma come questa alternativamente alla Stargate.
• Problema: è possibile collegare tale piattaforma alle antenne per i
Motes? E’ possibile installare i driver per tali antenne?
www.mobilab.unina.it
Caso futuro: Xbow Stargate
MobiLab
• Sistema Operativo Embedded Linux open source
sviluppato come progetto sourceforge.
• Processore Intel PXA255, XScale, 400 MHz
• 64 MB RAM, 32 MB flash (di cui 22 per programmi)
• PCMCIA slot tipo II
• Compact Flash Slot tipo II
• MICA2 slot a 51 pin (UART, SSP via MICA2 slot)
• Sulla doughter card:
• 1 Porta seriale RS232;
• 1 connettore RJ45 per Ethernet;
• 1 porta USB;
• Prezzo: 700 euro.
• Il kit stargate comprende i sorgenti del SO e i manuali, su CD.
www.mobilab.unina.it
MobiLab
Riferimenti
Info generali su embedded linux: http://www.linuxdevices.com/
Fasi di sviluppo: http://www.linuxjournal.com/article/7911
http://www.linuxjournal.com/article/8001
Sorgenti Linux Stargate: http://platformx.sourceforge.net/home.html
Xbow: http://www.xbow.com/
Axis: http://developer.axis.com/
www.mobilab.unina.it

Documenti analoghi

Definizione di sistema embedded

Definizione di sistema embedded Numerosissime architetture supportate, tra cui anche quelle prive di MMU (μCLinux) Supporto di moltissimi protocolli di comunicazione standard Possibilità di utilizzare tool di sviluppo competament...

Dettagli

disparate

disparate per Minix3, l'installazione su un vecchio PC potrebbe non essere la vostra scelta migliore. Naturalmente, sarete costretti ad installare Minix3 sull'hardware se volete sviluppare un device driver, ...

Dettagli