Software libero nei sistemi embedded

of 38 /38
Software libero nei sistemi embedded Linux Day 2012 – 29 ottobre 2012 Università degli Studi di Salerno Daniele Costarella

Embed Size (px)

description

 

Transcript of Software libero nei sistemi embedded

  • Software libero nei sistemi embedded Daniele Costarella Linux Day 2012 29 ottobre 2012 Universit degli Studi di Salerno
  • Introduzione
  • Che cos un sistema EmbeddedIn elettronica e informatica, con il termine sistema embedded siidentificano genericamente tutti quei sistemi elettronici di elaborazionea microprocessore progettati appositamente per una determinataapplicazione (special purpose) ovvero non riprogrammabili dallutenteper altri scopi, spesso con una piattaforma hardware ad hoc, integratinel sistema che controllano ed in grado di gestirne tutte o parte dellefunzionalit richieste. [Wikipedia] Non significa utilizzare un computer tradizionale, general purpose Utilizzo di un processore general purpose (tra I pi popolari: arm, x86, ppc) o un ancora pi semplice microcontrollore
  • Che cos un microcontrollore?In elettronica digitale il microcontrollore o microcontroller o MCU(MicroController Unit) un dispositivo elettronico integrato susingolo chip. Un microcontrollore include: I/O bit discreti per il controllo o rilevamento di stati logici I/O seriale (porte seriali, UARTs) Altre interfacce di comunicazioni seriali come I2C, SPI e CAN. Periferiche come timer, contatori di eventi, generatori di PWM Generatore di clock (spesso si tratta di un oscillatore, un risuonatore o un circuito RC) Convertitori A/D multicanali Programmazione e debugging In-circuit
  • Open Source HardwareHardware libero si riferisce ad hardware elettronici e di computerche sono stati progettati con la stessa politica del software liberoed open source (FOSS).Lhardware libero parte dellacultura dellopen source cheespande questideologia al di fuoridellambito software.
  • Open Source HardwareIl termine viene principalmente usato per esprimere la liberadivulgazione di informazioni riguardanti il progetto stessodellhardware comprendendente: Schemi Lista dei materiali Layout dei dati del circuito stampato FOSS per far girare lhardware Codice sorgente del firmware e tool chain. Modelli 3D per i casePer gli ormai diffusissimi dispositivi a logica programmabile,invece di condividere gli schemi si pu condividere la descrizionein HDL.
  • Open Source Hardware: licenzePiuttosto che creare una nuova licenza, alcuni progetti hardwareusano semplicemente le licenze sistenti per i software opensource. In pi sono state proposte diverse nuove licenze: TAPR Open Hardware License Balloon Open Hardware License CERN Open Hardware License Solderpad License Hardware Design Public License
  • Open Source Hardware: esempi
  • Open Source Hardware: esempi
  • Open Hardware Imaging: Cameras
  • Open Source Hardware: esempiAlcuni esempi: Hack-A-Day Bus Pirate, http://www.buspirate.org Elphel, http://www.elphel.com Bug Labs modular kits http://www.buglabs.net RepRap, Replicating Rapid-prototyper http://www.reprap.org Arduino http://www.arduino.cc Beagle Board e Beagle Bone http://beagleboard.org E molti molti altri esempi tra cui CPU, schede grafiche, laptops,cellulari
  • Hardware Design Tools
  • SoftwareDiversi software sono disponibili per aiutare il progettista nelle fasidi Schematics Capture e PCB Design o EDA (Electronic DesignAutomation) Eagle CAD http://www.cadsoft.de Kicad http://www.kicad-pcb.org/ gEDA http://www.gpleda.org/
  • Software Eagle CADEagle CAD un software CAD per lastesura di schemi elettronici e sbrogliodei circuiti. Non Open Source maoffre una versione free perapplicazioni non commerciali. Disponibile per Linux, Mac e Windows Librerie estese per parti e componenti Supporto per ULC (User Language Programs) e script Funzioni di ERC (Electrical Rule Check) e DRC (Design Rule Check)
  • Software KiCadKiCad una suite open source disoftware EDA per il disegno di schemielettrici e circuiti stampati (PCB).Dispone di un ambiente di sviluppointegrato (IDE) con editor dischematici, sbroglio circuitale delPCB e visualizzatore di file Gerber.KiCad organizzato in cinque partiprincipali: Supporto multipiattaforma (wxWidgets) Librerie estese Ambiente integrato
  • Software gEDALa lettera g iniziale evidenzia il fattoche la suite rilasciato sotto licenzaGPL. Il primo rilascio datato aprile1998 ed tuttora un progettoattivissimo e supportato dallacomunit. Ngspice, simulatore SPICE GnuCap, un moderno software di simulazione dei circuiti gwave e GTKWave, visualizzatori di segnali analogici e digitali Icarus Verilog, un simulatore Verilog
  • Strumenti software
  • Che cos una Tool Chain?In ambito software, una toolchain linsieme dei programmi(tools) usati nello sviluppo di un prodotto. I tool possono essereutilizzati in catena, in modo tale che loutput di ciascun toolrappresenti linput per il successivo. Il termine comunqueutilizzato in maniera pi estesa per riferirsi, pi in generale, aqualunque insieme di tool di sviluppo collegati tra loro.
  • Che cos una Tool Chain? Gli strumenti di sviluppo disponibili in ambiente GNU/Linux sono costituiti da una toolchain nativa. Tale toolchain viene eseguita sulla workstation e genera codice per quella workstation, di solito x86
  • Che cos una Tool Chain? Per lo sviluppo di sistemi embedded, la disponibilit e lutilizzo di una toolchain nativa impossibile in molti casi e comunque ben poco interessante in quanto: Il target dispone usualmente di un quantitativo limitato e a volte alquanto ristretto di storage e/o memoria Il target molto lento comparato alla tua workstation Potresti non voler installare tutti I tool di sviluppo sulla scheda target Perci sono utilizzate, generalmente, delle cross-compiling toolchain. Eseguite sulla tua workstation permettono di generare codice per il tuo target.
  • Che cos una Tool Chain? Source code Compilation machine Cross-compiling Native toolchain toolchain x86 Execution x86 binary ARM binary machinesx86 ARM
  • Microprocessori con Tool Chain freeEsistono diversi microcontrollori con tool chain free. Tra questifigurano: Atmel AVRMega e AVRTiny (il cuore della piattaforma Arduino) Atmel AVR32 (che include un kernel Linux) Texas Instruments MSP430 Axis 100LX, utilizzata nella Foxboard ARM7 e oltre. A partire da ARM9 incluso un kernel Linux.
  • Microprocessori con Tool Chain freeA proposito di tool chain, ecco alcuni link interessanti: Atmel AVRMega e AVRTiny: AVR Libs, AVRDUDE, AVaRICE Atmel AVR32: The AVR32 Linux project Texas Instruments MSP430: MSPGCC Axis LX100: FOXLX Linux environments ARM7: GNUARM Elinux: toolchains wiki
  • Vantaggi?
  • Vantaggi per gli sviluppatori Innovazione e valore aggiunto Qualit del software Controllo Flessibilit Scelta Semplicit di sviluppo Supporto e risorse sempre disponibili Costo Meno pensieri sulle licenze
  • Vantaggi per le aziende Controllo, innovazione, costo, time to market Investimenti a lungo termine sicuri Basta costi proibitivi Semplicit di gestione del software Massima riutilizzabilit del codice Supporto e risorse sempre disponibili Costi di apprendimento
  • Vantaggi per lutente nale Effettiva propriet dei dati grazie al FOSS e ai formati aperti Privacy e sicurezza Elevato grado di personalizzazione Qualit Costo
  • Alcuni esempi
  • ArduinoArduino un framework open sourceche permette la protipazione rapidanonch lapprendimento rapido deiprincipi fondamentali dellelettronicae della programmazione. Le board possono essere acquistate preassemblate oppure costruite Ambiente di sviluppo integrato Codice in C/C++ con API estese basate su Wiring Multipiattaforma
  • Raspberry PI Il Raspberry PI un single-board computer sviluppato nel Regno Unito dalla Raspberry Pi Foundation. Il lancio al pubblico avvenuto alla fine del mese di febbraio 2012. 700 MHz ARM11 256 o 512 MB (condivisi con GPU) Connettore RCA, HDMI SD, MMC, SDIO card slot Ethernet 10/100 2x13 header pins per GPIO, SPI, I2C, UART, +3.3V, +5V
  • Fox BoardLa FOX Board G20 un micro sistema Linux made in Italy ideato arealizzato da Acme Systems srl. Si tratta di una scheda di ridottedimensioni con Linux preinstallato e funzionante. ARM9 @ 400 MHz 256KB di memoria FLASH per il bootloader Fino a 16GB su microSD Ethernet 10/100 2 porte seriali (3.3V) RTClock GPIO
  • Fox Board 2xUSB 2.0 +5V DC Host ports Power In GPIO (12Mbps) Serial Ethernet 10/100 port 4D oLed display connector GPIO placement Serial I2C A/D User dened switch Serial DATAFLASH+5V DC CPUPower In RAMminiUSB client port User Debug port dened LED microSD socketPower LED
  • Conclusioni
  • Alcuni link utili Hack a Day http://www.hackaday.com Make http://blog.makezine.com Instructables http://www.instructables.com
  • RisorseAlcuni link utili a strumenti, dispositivi e argomenti trattati inquesto talk Confronto tra software EDA opensource http://en.wikipedia.org/wiki/Comparison_of_Free_EDA_software Arduino http://arduino.cc Atmel AVR http://www.atmel.com/avr
  • Componenti ele^roniciAlcuni rivenditori locali e internazionali: Farnell http://it.farnell.com Mouser http://it.mouser.com Digikey http://www.digikey.it RS http://it.rs-online.com SparkFun http://www.sparkfun.com RobotItaly http://www.robot-italy.com Futura Elettronica http://www.futuranet.it
  • Le^ure consigliateEmbedded Linux Primer, Second Edition, Prentice HallChristopher HallinanBuilding Embedded Linux System, OReillyKarim Yaghmour, Jon Masters, Gilad Ben.Yossef and Philippe GerumEmbedded Linux System Design and DevelopmentP.Raghavan, A. Lad, S. Neelakandan, Auerbach
  • Grazie per la^enzione Daniele Costarella