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
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...