SlideShare una empresa de Scribd logo
1 de 38
Descargar para leer sin conexión
Software  libero  nei  
sistemi  embedded  
                    
              	
 Daniele Costarella


     Linux Day 2012 – 29 ottobre 2012
      Università degli Studi di Salerno
Introduzione
Che  cos’è  un  sistema  Embedded	

In elettronica e informatica, con il termine sistema embedded si
identificano genericamente tutti quei sistemi elettronici di elaborazione
a microprocessore progettati appositamente per una determinata
applicazione (special purpose) ovvero non riprogrammabili dall’utente
per altri scopi, spesso con una piattaforma hardware ad hoc, integrati
nel sistema che controllano ed in grado di gestirne tutte o parte delle
funzionalità 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 su
singolo 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  Hardware	

Hardware libero si riferisce ad hardware elettronici e di computer
che sono stati progettati con la stessa politica del software libero
ed open source (FOSS).




L’hardware libero è parte della
cultura dell’open source che
espande quest’ideologia al di fuori
dell’ambito software.
Open  Source  Hardware	

Il termine viene principalmente usato per esprimere la libera
divulgazione di informazioni riguardanti il progetto stesso
dell’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 case

Per gli ormai diffusissimi dispositivi a logica programmabile,
invece di condividere gli schemi si può condividere la descrizione
in HDL.
Open  Source  Hardware:  licenze	

Piuttosto che creare una nuova licenza, alcuni progetti hardware
usano semplicemente le licenze sistenti per i software open
source. 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:  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
Hardware  Design  Tools
Software	

Diversi software sono disponibili per aiutare il progettista nelle fasi
di Schematics Capture e PCB Design o EDA (Electronic Design
Automation)


•  Eagle CAD http://www.cadsoft.de

•  Kicad http://www.kicad-pcb.org/

•  gEDA http://www.gpleda.org/
Software  –  Eagle  CAD	
Eagle CAD è un software CAD per la
stesura di schemi elettronici e sbroglio
dei circuiti. Non è Open Source ma
offre una versione free per
applicazioni 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  –  KiCad	
KiCad è una suite open source di
software EDA per il disegno di schemi
elettrici e circuiti stampati (PCB).
Dispone di un ambiente di sviluppo
integrato (IDE) con editor di
schematici, sbroglio circuitale del
PCB e visualizzatore di file Gerber.
KiCad è organizzato in cinque parti
principali:


•    Supporto multipiattaforma
     (wxWidgets)
•    Librerie estese
•    Ambiente integrato
Software  –  gEDA	

La lettera ‘g’ iniziale evidenzia il fatto
che la suite è rilasciato sotto licenza
GPL. Il primo rilascio è datato aprile
1998 ed è tuttora un progetto
attivissimo e supportato dalla
comunità.
•    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 è l’insieme dei programmi
(tools) usati nello sviluppo di un prodotto. I tool possono essere
utilizzati in catena, in modo tale che l’output di ciascun tool
rappresenti l’input per il successivo. Il termine è comunque
utilizzato in maniera più estesa per riferirsi, più in generale, a
qualunque 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 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.
Che  cos’è  una  Tool  Chain?	

                        Source  code	
                                                               Compilation  
                                                                machine	
                                    Cross-­‐‑compiling  
   Native  toolchain	
                                       toolchain	

                                                       x86	




                                                                Execution  
        x86  binary	
                ARM  binary	
              machines	



x86	
                                                ARM
Microprocessori  con  Tool  Chain  free	

Esistono diversi microcontrollori con tool chain free. Tra questi
figurano:


•    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  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
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  l’utente  finale	


•  Effettiva proprietà dei dati grazie al FOSS e ai formati aperti

•  Privacy e sicurezza	

•  Elevato grado di personalizzazione

•  Qualità

•  Costo
Alcuni  esempi
Arduino	

Arduino è un framework open source
che permette la protipazione rapida
nonché l’apprendimento rapido dei
principi fondamentali dell’elettronica
e 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  Board	

La FOX Board G20 è un micro sistema Linux made in Italy ideato a
realizzato da Acme Systems srl. Si tratta di una scheda di ridotte
dimensioni 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  
   defined  
   switch	
                                                                                Serial	
                                                                                DATAFLASH	


+5V  DC  
                                                                            CPU	
Power  In	

                                                                     RAM	
miniUSB  
client  port	
                    User                                       Debug  port	
                 defined  LED	
                              microSD  socket	
Power  LED
Conclusioni
Alcuni  link  utili	


•  Hack a Day http://www.hackaday.com	

•  Make http://blog.makezine.com	

•  Instructables http://www.instructables.com
Risorse	

Alcuni link utili a strumenti, dispositivi e argomenti trattati in
questo 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^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
Le^ure  consigliate	

Embedded Linux Primer, Second Edition, Prentice Hall
Christopher Hallinan




Building Embedded Linux System, O’Reilly
Karim Yaghmour, Jon Masters, Gilad Ben.Yossef and Philippe Gerum




Embedded Linux System Design and Development
P.Raghavan, A. Lad, S. Neelakandan, Auerbach
Grazie  per  l’a^enzione	



           Daniele Costarella
           <www.danielecostarella.com>

Más contenido relacionado

La actualidad más candente

Csp@scuola uav corso1_lez4
Csp@scuola uav corso1_lez4Csp@scuola uav corso1_lez4
Csp@scuola uav corso1_lez4CSP Scarl
 
Un Pinguino Nel Tuo Modem
Un Pinguino Nel Tuo ModemUn Pinguino Nel Tuo Modem
Un Pinguino Nel Tuo ModemMarco Scaloni
 
Introduzione ad Arduino
Introduzione ad ArduinoIntroduzione ad Arduino
Introduzione ad ArduinoSimone Lusenti
 
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linuxTrace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linuxDeveler S.r.l.
 
Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05Majong DevJfu
 
Linux Device Drivers
Linux Device DriversLinux Device Drivers
Linux Device DriversFabio Nisci
 
Realizzare Accessori iOS con Bluetooth Low Energy e Arduino
Realizzare Accessori iOS con Bluetooth Low Energy e ArduinoRealizzare Accessori iOS con Bluetooth Low Energy e Arduino
Realizzare Accessori iOS con Bluetooth Low Energy e Arduinofibasile
 
CommSEC - linea prodotti InterLINK (IT)
CommSEC - linea prodotti InterLINK (IT)CommSEC - linea prodotti InterLINK (IT)
CommSEC - linea prodotti InterLINK (IT)iBLio
 

La actualidad más candente (11)

Csp@scuola uav corso1_lez4
Csp@scuola uav corso1_lez4Csp@scuola uav corso1_lez4
Csp@scuola uav corso1_lez4
 
Un Pinguino Nel Tuo Modem
Un Pinguino Nel Tuo ModemUn Pinguino Nel Tuo Modem
Un Pinguino Nel Tuo Modem
 
Introduzione ad Arduino
Introduzione ad ArduinoIntroduzione ad Arduino
Introduzione ad Arduino
 
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linuxTrace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
 
Virtualizzazione
VirtualizzazioneVirtualizzazione
Virtualizzazione
 
Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05
 
Linux Device Drivers
Linux Device DriversLinux Device Drivers
Linux Device Drivers
 
Realizzare Accessori iOS con Bluetooth Low Energy e Arduino
Realizzare Accessori iOS con Bluetooth Low Energy e ArduinoRealizzare Accessori iOS con Bluetooth Low Energy e Arduino
Realizzare Accessori iOS con Bluetooth Low Energy e Arduino
 
CommSEC - linea prodotti InterLINK (IT)
CommSEC - linea prodotti InterLINK (IT)CommSEC - linea prodotti InterLINK (IT)
CommSEC - linea prodotti InterLINK (IT)
 
Arduino ICT2016 [IT]
Arduino ICT2016 [IT]Arduino ICT2016 [IT]
Arduino ICT2016 [IT]
 
Raspberrypi
RaspberrypiRaspberrypi
Raspberrypi
 

Similar a Software libero nei sistemi embedded

OpenHardware : Arduino
OpenHardware : ArduinoOpenHardware : Arduino
OpenHardware : ArduinoNaLUG
 
Fpga il componente universale 2010-11-09
Fpga  il componente universale   2010-11-09Fpga  il componente universale   2010-11-09
Fpga il componente universale 2010-11-09Ionela
 
Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...
Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...
Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...Ionela
 
Are you a Gadgeteer? - NetMF@Work
Are you a Gadgeteer? - NetMF@WorkAre you a Gadgeteer? - NetMF@Work
Are you a Gadgeteer? - NetMF@WorkMirco Vanini
 
Open Source Parallel Computing ltcsp
Open Source Parallel Computing ltcspOpen Source Parallel Computing ltcsp
Open Source Parallel Computing ltcspLaura Camellini
 
Azure IoTHub - Roboval 2018
Azure IoTHub - Roboval 2018Azure IoTHub - Roboval 2018
Azure IoTHub - Roboval 2018Andrea Tosato
 
CodingGym - Lezione 2 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 2 - Corso Linux, Android e Internet of ThingsCodingGym - Lezione 2 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 2 - Corso Linux, Android e Internet of ThingsMirko Mancin
 
Corso base introduzione pc
Corso base introduzione pcCorso base introduzione pc
Corso base introduzione pcclaudiatti
 
Porting Android application from ARM to x86
Porting Android application from ARM to x86Porting Android application from ARM to x86
Porting Android application from ARM to x86BeMyApp
 
Hardware Libero - Linux Day 2007
Hardware Libero - Linux Day 2007Hardware Libero - Linux Day 2007
Hardware Libero - Linux Day 2007pino_otto
 
Il web service e i sistemi embedded - Tesi - cap2
Il web service e i sistemi embedded - Tesi - cap2Il web service e i sistemi embedded - Tesi - cap2
Il web service e i sistemi embedded - Tesi - cap2pma77
 
[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...
[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...
[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...Marcello Marino
 
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel LinuxPIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel LinuxMarco Ferrigno
 
Thanatos - Parallel & Distributed Computing
Thanatos -  Parallel & Distributed ComputingThanatos -  Parallel & Distributed Computing
Thanatos - Parallel & Distributed ComputingIdriss Riouak
 

Similar a Software libero nei sistemi embedded (20)

OpenHardware : Arduino
OpenHardware : ArduinoOpenHardware : Arduino
OpenHardware : Arduino
 
Fpga il componente universale 2010-11-09
Fpga  il componente universale   2010-11-09Fpga  il componente universale   2010-11-09
Fpga il componente universale 2010-11-09
 
Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...
Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...
Come Abilitare La Connettività Usb Con La Famiglia Di Js16 8 A 8 Bit Della Fr...
 
Are you a Gadgeteer? - NetMF@Work
Are you a Gadgeteer? - NetMF@WorkAre you a Gadgeteer? - NetMF@Work
Are you a Gadgeteer? - NetMF@Work
 
DHow2 - L5
DHow2 - L5DHow2 - L5
DHow2 - L5
 
Open Source Parallel Computing ltcsp
Open Source Parallel Computing ltcspOpen Source Parallel Computing ltcsp
Open Source Parallel Computing ltcsp
 
Azure IoTHub - Roboval 2018
Azure IoTHub - Roboval 2018Azure IoTHub - Roboval 2018
Azure IoTHub - Roboval 2018
 
Da DotNet a DotNetCore
Da DotNet a DotNetCoreDa DotNet a DotNetCore
Da DotNet a DotNetCore
 
CodingGym - Lezione 2 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 2 - Corso Linux, Android e Internet of ThingsCodingGym - Lezione 2 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 2 - Corso Linux, Android e Internet of Things
 
Corso base introduzione pc
Corso base introduzione pcCorso base introduzione pc
Corso base introduzione pc
 
3DD 1e Christian B
3DD 1e Christian B3DD 1e Christian B
3DD 1e Christian B
 
Porting Android application from ARM to x86
Porting Android application from ARM to x86Porting Android application from ARM to x86
Porting Android application from ARM to x86
 
Hardware Libero - Linux Day 2007
Hardware Libero - Linux Day 2007Hardware Libero - Linux Day 2007
Hardware Libero - Linux Day 2007
 
Il web service e i sistemi embedded - Tesi - cap2
Il web service e i sistemi embedded - Tesi - cap2Il web service e i sistemi embedded - Tesi - cap2
Il web service e i sistemi embedded - Tesi - cap2
 
[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...
[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...
[Ldna 2019 marcello marino] mt's driver ravenna aes67 audio contribution over...
 
Arduino galileo edison_udoo
Arduino galileo edison_udooArduino galileo edison_udoo
Arduino galileo edison_udoo
 
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel LinuxPIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
 
HARDWARE & SOFTWARE
HARDWARE & SOFTWAREHARDWARE & SOFTWARE
HARDWARE & SOFTWARE
 
Raspy Fi: Open source never sounded so good (by Michelangelo Guarise)
Raspy Fi: Open source never sounded so good (by Michelangelo Guarise)Raspy Fi: Open source never sounded so good (by Michelangelo Guarise)
Raspy Fi: Open source never sounded so good (by Michelangelo Guarise)
 
Thanatos - Parallel & Distributed Computing
Thanatos -  Parallel & Distributed ComputingThanatos -  Parallel & Distributed Computing
Thanatos - Parallel & Distributed Computing
 

Más de Daniele Costarella

Fondamenti di GNU/Linux: FileSystem e Partizioni
Fondamenti di GNU/Linux: FileSystem e PartizioniFondamenti di GNU/Linux: FileSystem e Partizioni
Fondamenti di GNU/Linux: FileSystem e PartizioniDaniele Costarella
 
Arduino e stampa 3D - Le nuove frontiere della robotica homemade
Arduino e stampa 3D - Le nuove frontiere della robotica homemadeArduino e stampa 3D - Le nuove frontiere della robotica homemade
Arduino e stampa 3D - Le nuove frontiere della robotica homemadeDaniele Costarella
 
energy-harvesting-pres-final-std
energy-harvesting-pres-final-stdenergy-harvesting-pres-final-std
energy-harvesting-pres-final-stdDaniele Costarella
 
Linux Embedded per l'automazione
Linux Embedded per l'automazioneLinux Embedded per l'automazione
Linux Embedded per l'automazioneDaniele Costarella
 
Development of a Wireless Sensors Network powered by Energy Harvesting techni...
Development of a Wireless Sensors Network powered by Energy Harvesting techni...Development of a Wireless Sensors Network powered by Energy Harvesting techni...
Development of a Wireless Sensors Network powered by Energy Harvesting techni...Daniele Costarella
 
Hands On Embedded Linux with BeagleBone Black
Hands On Embedded Linux with BeagleBone BlackHands On Embedded Linux with BeagleBone Black
Hands On Embedded Linux with BeagleBone BlackDaniele Costarella
 
Electronics LAB [with Arduino] | DAY 2
Electronics LAB [with Arduino] | DAY 2Electronics LAB [with Arduino] | DAY 2
Electronics LAB [with Arduino] | DAY 2Daniele Costarella
 
Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1Daniele Costarella
 
Electronics LAB [with Arduino] | DAY 3
Electronics LAB [with Arduino] | DAY 3Electronics LAB [with Arduino] | DAY 3
Electronics LAB [with Arduino] | DAY 3Daniele Costarella
 
Development of a wireless sensor network powered by energy harvesting techniques
Development of a wireless sensor network powered by energy harvesting techniquesDevelopment of a wireless sensor network powered by energy harvesting techniques
Development of a wireless sensor network powered by energy harvesting techniquesDaniele Costarella
 

Más de Daniele Costarella (10)

Fondamenti di GNU/Linux: FileSystem e Partizioni
Fondamenti di GNU/Linux: FileSystem e PartizioniFondamenti di GNU/Linux: FileSystem e Partizioni
Fondamenti di GNU/Linux: FileSystem e Partizioni
 
Arduino e stampa 3D - Le nuove frontiere della robotica homemade
Arduino e stampa 3D - Le nuove frontiere della robotica homemadeArduino e stampa 3D - Le nuove frontiere della robotica homemade
Arduino e stampa 3D - Le nuove frontiere della robotica homemade
 
energy-harvesting-pres-final-std
energy-harvesting-pres-final-stdenergy-harvesting-pres-final-std
energy-harvesting-pres-final-std
 
Linux Embedded per l'automazione
Linux Embedded per l'automazioneLinux Embedded per l'automazione
Linux Embedded per l'automazione
 
Development of a Wireless Sensors Network powered by Energy Harvesting techni...
Development of a Wireless Sensors Network powered by Energy Harvesting techni...Development of a Wireless Sensors Network powered by Energy Harvesting techni...
Development of a Wireless Sensors Network powered by Energy Harvesting techni...
 
Hands On Embedded Linux with BeagleBone Black
Hands On Embedded Linux with BeagleBone BlackHands On Embedded Linux with BeagleBone Black
Hands On Embedded Linux with BeagleBone Black
 
Electronics LAB [with Arduino] | DAY 2
Electronics LAB [with Arduino] | DAY 2Electronics LAB [with Arduino] | DAY 2
Electronics LAB [with Arduino] | DAY 2
 
Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1Electronics LAB [with Arduino] | DAY 1
Electronics LAB [with Arduino] | DAY 1
 
Electronics LAB [with Arduino] | DAY 3
Electronics LAB [with Arduino] | DAY 3Electronics LAB [with Arduino] | DAY 3
Electronics LAB [with Arduino] | DAY 3
 
Development of a wireless sensor network powered by energy harvesting techniques
Development of a wireless sensor network powered by energy harvesting techniquesDevelopment of a wireless sensor network powered by energy harvesting techniques
Development of a wireless sensor network powered by energy harvesting techniques
 

Último

Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Associazione Digital Days
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Associazione Digital Days
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoQuotidiano Piemontese
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Associazione Digital Days
 

Último (9)

Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 Torino
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
 

Software libero nei sistemi embedded

  • 1. Software  libero  nei   sistemi  embedded     Daniele Costarella Linux Day 2012 – 29 ottobre 2012 Università degli Studi di Salerno
  • 3. Che  cos’è  un  sistema  Embedded In elettronica e informatica, con il termine sistema embedded si identificano genericamente tutti quei sistemi elettronici di elaborazione a microprocessore progettati appositamente per una determinata applicazione (special purpose) ovvero non riprogrammabili dall’utente per altri scopi, spesso con una piattaforma hardware ad hoc, integrati nel sistema che controllano ed in grado di gestirne tutte o parte delle funzionalità 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. Che  cos’è  un  microcontrollore? In elettronica digitale il microcontrollore o microcontroller o MCU (MicroController Unit) è un dispositivo elettronico integrato su singolo 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. Open  Source  Hardware Hardware libero si riferisce ad hardware elettronici e di computer che sono stati progettati con la stessa politica del software libero ed open source (FOSS). L’hardware libero è parte della cultura dell’open source che espande quest’ideologia al di fuori dell’ambito software.
  • 6. Open  Source  Hardware Il termine viene principalmente usato per esprimere la libera divulgazione di informazioni riguardanti il progetto stesso dell’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 case Per gli ormai diffusissimi dispositivi a logica programmabile, invece di condividere gli schemi si può condividere la descrizione in HDL.
  • 7. Open  Source  Hardware:  licenze Piuttosto che creare una nuova licenza, alcuni progetti hardware usano semplicemente le licenze sistenti per i software open source. 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
  • 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
  • 13. Software Diversi software sono disponibili per aiutare il progettista nelle fasi di Schematics Capture e PCB Design o EDA (Electronic Design Automation) •  Eagle CAD http://www.cadsoft.de •  Kicad http://www.kicad-pcb.org/ •  gEDA http://www.gpleda.org/
  • 14. Software  –  Eagle  CAD Eagle CAD è un software CAD per la stesura di schemi elettronici e sbroglio dei circuiti. Non è Open Source ma offre una versione free per applicazioni 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. Software  –  KiCad KiCad è una suite open source di software EDA per il disegno di schemi elettrici e circuiti stampati (PCB). Dispone di un ambiente di sviluppo integrato (IDE) con editor di schematici, sbroglio circuitale del PCB e visualizzatore di file Gerber. KiCad è organizzato in cinque parti principali: •  Supporto multipiattaforma (wxWidgets) •  Librerie estese •  Ambiente integrato
  • 16. Software  –  gEDA La lettera ‘g’ iniziale evidenzia il fatto che la suite è rilasciato sotto licenza GPL. Il primo rilascio è datato aprile 1998 ed è tuttora un progetto attivissimo e supportato dalla comunità. •  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
  • 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 essere utilizzati in catena, in modo tale che l’output di ciascun tool rappresenti l’input per il successivo. Il termine è comunque utilizzato in maniera più estesa per riferirsi, più in generale, a qualunque insieme di tool di sviluppo collegati tra loro.
  • 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. 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. Che  cos’è  una  Tool  Chain? Source  code Compilation   machine Cross-­‐‑compiling   Native  toolchain toolchain x86 Execution   x86  binary ARM  binary machines x86 ARM
  • 22. Microprocessori  con  Tool  Chain  free Esistono diversi microcontrollori con tool chain free. Tra questi figurano: •  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. 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
  • 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. 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. 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
  • 29. Arduino Arduino è un framework open source che permette la protipazione rapida nonché l’apprendimento rapido dei principi fondamentali dell’elettronica e 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. 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. Fox  Board La FOX Board G20 è un micro sistema Linux made in Italy ideato a realizzato da Acme Systems srl. Si tratta di una scheda di ridotte dimensioni 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. 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
  • 34. Alcuni  link  utili •  Hack a Day http://www.hackaday.com •  Make http://blog.makezine.com •  Instructables http://www.instructables.com
  • 35. Risorse Alcuni link utili a strumenti, dispositivi e argomenti trattati in questo 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. 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. Le^ure  consigliate Embedded Linux Primer, Second Edition, Prentice Hall Christopher Hallinan Building Embedded Linux System, O’Reilly Karim Yaghmour, Jon Masters, Gilad Ben.Yossef and Philippe Gerum Embedded Linux System Design and Development P.Raghavan, A. Lad, S. Neelakandan, Auerbach
  • 38. Grazie  per  l’a^enzione Daniele Costarella <www.danielecostarella.com>