Software  libero  nei  sistemi  embedded                                    	 Daniele Costarella     Linux Day 2012 – 29 o...
Introduzione
Che  cos’è  un  sistema  Embedded	In elettronica e informatica, con il termine sistema embedded siidentificano genericamen...
Che  cos’è  un  microcontrollore?	In elettronica digitale il microcontrollore o microcontroller o MCU(MicroController Unit...
Open  Source  Hardware	Hardware libero si riferisce ad hardware elettronici e di computerche sono stati progettati con la ...
Open  Source  Hardware	Il termine viene principalmente usato per esprimere la liberadivulgazione di informazioni riguardan...
Open  Source  Hardware:  licenze	Piuttosto che creare una nuova licenza, alcuni progetti hardwareusano semplicemente le li...
Open  Source  Hardware:  esempi
Open  Source  Hardware:  esempi
Open  Hardware  Imaging:  Cameras
Open  Source  Hardware:  esempi	Alcuni esempi:•    Hack-A-Day Bus Pirate, http://www.buspirate.org	•    Elphel, http://www...
Hardware  Design  Tools
Software	Diversi software sono disponibili per aiutare il progettista nelle fasidi Schematics Capture e PCB Design o EDA (...
Software  –  Eagle  CAD	Eagle CAD è un software CAD per lastesura di schemi elettronici e sbrogliodei circuiti. Non è Open...
Software  –  KiCad	KiCad è una suite open source disoftware EDA per il disegno di schemielettrici e circuiti stampati (PCB...
Software  –  gEDA	La lettera ‘g’ iniziale evidenzia il fattoche la suite è rilasciato sotto licenzaGPL. Il primo rilascio ...
Strumenti  software
Che  cos’è  una  Tool  Chain?	In ambito software, una toolchain è l’insieme dei programmi(tools) usati nello sviluppo di u...
Che  cos’è  una  Tool  Chain?	•  Gli strumenti di sviluppo disponibili in ambiente GNU/Linux  sono costituiti da una toolc...
Che  cos’è  una  Tool  Chain?	•  Per lo sviluppo di sistemi embedded, la disponibilità e l’utilizzo  di una toolchain nati...
Che  cos’è  una  Tool  Chain?	                        Source  code	                                                       ...
Microprocessori  con  Tool  Chain  free	Esistono diversi microcontrollori con tool chain free. Tra questifigurano:•    Atm...
Microprocessori  con  Tool  Chain  free	A proposito di tool chain, ecco alcuni link interessanti:•    Atmel AVRMega e AVRT...
Vantaggi?
Vantaggi  per  gli  sviluppatori	•  Innovazione e valore aggiunto•  Qualità del software	•  Controllo•  Flessibilità•  Sce...
Vantaggi  per  le  aziende	•  Controllo, innovazione, costo, time to market•  Investimenti a lungo termine sicuri	•  Basta...
Vantaggi  per  l’utente  finale	•  Effettiva proprietà dei dati grazie al FOSS e ai formati aperti•  Privacy e sicurezza	• ...
Alcuni  esempi
Arduino	Arduino è un framework open sourceche permette la protipazione rapidanonché l’apprendimento rapido deiprincipi fon...
Raspberry  PI	                  Il Raspberry PI è un single-board                  computer sviluppato nel Regno          ...
Fox  Board	La FOX Board G20 è un micro sistema Linux made in Italy ideato arealizzato da Acme Systems srl. Si tratta di un...
Fox  Board	                                2xUSB  2.0        +5V  DC                                              Host  po...
Conclusioni
Alcuni  link  utili	•  Hack a Day http://www.hackaday.com	•  Make http://blog.makezine.com	•  Instructables http://www.ins...
Risorse	Alcuni link utili a strumenti, dispositivi e argomenti trattati inquesto talk•  Confronto tra software EDA opensou...
Componenti  ele^ronici	Alcuni rivenditori locali e internazionali:•  Farnell http://it.farnell.com 	•  Mouser http://it.mo...
Le^ure  consigliate	Embedded Linux Primer, Second Edition, Prentice HallChristopher HallinanBuilding Embedded Linux System...
Grazie  per  l’a^enzione	           Daniele Costarella           <www.danielecostarella.com>
Upcoming SlideShare
Loading in...5
×

Software libero nei sistemi embedded

1,194

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,194
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
17
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Software libero nei sistemi embedded

  1. 1. Software  libero  nei  sistemi  embedded     Daniele Costarella Linux Day 2012 – 29 ottobre 2012 Università degli Studi di Salerno
  2. 2. Introduzione
  3. 3. Che  cos’è  un  sistema  Embedded In 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 dall’utenteper 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
  4. 4. 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
  5. 5. Open  Source  Hardware Hardware libero si riferisce ad hardware elettronici e di computerche sono stati progettati con la stessa politica del software liberoed open source (FOSS).L’hardware libero è parte dellacultura dell’open source cheespande quest’ideologia al di fuoridell’ambito software.
  6. 6. Open  Source  Hardware Il termine viene principalmente usato per esprimere la liberadivulgazione di informazioni riguardanti il progetto stessodell’hardware comprendendente:•  Schemi•  Lista dei materiali•  Layout dei dati del circuito stampato•  FOSS per far girare l’hardware•  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.
  7. 7. Open  Source  Hardware:  licenze Piuttosto 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
  8. 8. Open  Source  Hardware:  esempi
  9. 9. Open  Source  Hardware:  esempi
  10. 10. Open  Hardware  Imaging:  Cameras
  11. 11. Open  Source  Hardware:  esempi Alcuni 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
  12. 12. Hardware  Design  Tools
  13. 13. Software Diversi 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/
  14. 14. Software  –  Eagle  CAD Eagle 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)
  15. 15. Software  –  KiCad KiCad è 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
  16. 16. Software  –  gEDA La 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
  17. 17. Strumenti  software
  18. 18. Che  cos’è  una  Tool  Chain? In ambito software, una toolchain è l’insieme dei programmi(tools) usati nello sviluppo di un prodotto. I tool possono essereutilizzati in catena, in modo tale che l’output di ciascun toolrappresenti l’input per il successivo. Il termine è comunqueutilizzato in maniera più estesa per riferirsi, più in generale, aqualunque insieme di tool di sviluppo collegati tra loro.
  19. 19. 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
  20. 20. Che  cos’è  una  Tool  Chain? •  Per lo sviluppo di sistemi embedded, la disponibilità e l’utilizzo 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.
  21. 21. Che  cos’è  una  Tool  Chain? Source  code Compilation   machine Cross-­‐‑compiling   Native  toolchain toolchain x86 Execution   x86  binary ARM  binary machines x86 ARM
  22. 22. Microprocessori  con  Tool  Chain  free Esistono 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.
  23. 23. Microprocessori  con  Tool  Chain  free A 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
  24. 24. Vantaggi?
  25. 25. 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
  26. 26. 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
  27. 27. Vantaggi  per  l’utente  finale •  Effettiva proprietà dei dati grazie al FOSS e ai formati aperti•  Privacy e sicurezza •  Elevato grado di personalizzazione•  Qualità•  Costo
  28. 28. Alcuni  esempi
  29. 29. Arduino Arduino è un framework open sourceche permette la protipazione rapidanonché l’apprendimento rapido deiprincipi fondamentali dell’elettronicae 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
  30. 30. 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
  31. 31. Fox  Board La 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
  32. 32. 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   defined   switch Serial DATAFLASH +5V  DC   CPU Power  In RAM miniUSB  client  port User   Debug  port defined  LED microSD  socket Power  LED
  33. 33. Conclusioni
  34. 34. Alcuni  link  utili •  Hack a Day http://www.hackaday.com •  Make http://blog.makezine.com •  Instructables http://www.instructables.com
  35. 35. Risorse Alcuni 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
  36. 36. Componenti  ele^ronici Alcuni 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
  37. 37. Le^ure  consigliate Embedded Linux Primer, Second Edition, Prentice HallChristopher HallinanBuilding Embedded Linux System, O’ReillyKarim Yaghmour, Jon Masters, Gilad Ben.Yossef and Philippe GerumEmbedded Linux System Design and DevelopmentP.Raghavan, A. Lad, S. Neelakandan, Auerbach
  38. 38. Grazie  per  l’a^enzione Daniele Costarella <www.danielecostarella.com>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×