&
Presentano:
Programmazione per Device:
da Embedded a Desktop
Agenda
14:15
14:30
15:30
16:00
16:30
17:00
17:45
18:15
Benvenuto & Presentazioni
Sviluppo su dispositivi embedded
Debugging con Visual Studio 2010
Break ed esposizione device
Sviluppo interfacce con Visual Studio e Blend (desktop)
Sviluppo interfacce con “Silverlight for Embedded”
Test Driven Development (TDD) con Visual Studio 2010
Domande & risposte
Torino Technologies Group è una community locale, di base a Torino, costituita
allo scopo di consentire occasioni di incontro e scambio di esperienze tra chi
sviluppa soluzioni usando tecnologie Microsoft (e non solo).
La community aggrega professionisti, studenti e semplici appassionati che
vogliono condividere le proprie conoscenze e incentivare la creazione di una
rete di relazioni che consente di conoscere meglio la realtà del mercato anche
al di fuori del contesto in cui si opera quotidianamente.
Se sei interessato a saperne di più, prima di tutto registrati al sito ...
www.torinotechnologiesgroup.it
BEPS – L’offerta
• System Integrations (Complete Software Embedded Solutions)
– Analisi di sistema
– Analisi , sviluppo e build di sistema:
– Bootloader, driver, BSP, real-time, ecc…
– Analisi e sviluppo di applicazioni (C#, Silverlight, WPF, ecc):
– Console, grafiche, di rete, ecc…
– Supporto, distribuzione e manutenzione sul campo
• Prodotti finiti 
• Corsi ufficiali Microsoft Embedded
www.bepseng.it
Blog.bepseng.it
Windows Embedded Courses
Corsi mensili (hands on labs) su:
 Windows Embedded Standard;
 Windows Embedded Compact;
 Microsoft .NET Framework,
Compact FW, μ-FW, WPF, ecc...)
 Windows Azure;
www.mictorino.it
[email protected]
Partners
Embedded?
• Ogni dispositivo elettronico che contiene un computer
al suo interno.
• L’utilizzatore del dispositivo spesso ignora la presenza
del computer.
• Il computer è utilizzato principalmente per dare
flessibilità e/o semplicità d’uso al dispositivo.
• Il dispositivo è stato progettato per uno scopo preciso .
Facciamo alcuni esempi
Strano ma vero!
Prodotto: Sonicare Elite
spazzolino da denti.
Microprocessor: 8-bit
Controllo computerizzato
della velocità, del tempo e
della ricarica.
Strano ma strano!
Prodotto:
NASA's Twin Mars
Rovers.
Microprocessor:
Radiation Hardened
20Mhz PowerPC
Photograph courtesy of NASA/JPL CALTECH
Non ci si pensa!
Prodotto:
qualsiasi Mouse, Keyboard o USB Device
Microprocessor: 8-bit Microcontroller
Prodotto:
qualsiasi Disk Drive
Microprocessor: Dual 32-bit
Marvel ARM SOC & mixed
signal DSP
Prodotto: qualsiasi Printer
Microprocessor:
Intel, Motorola, or ARM 32-bit RISC
…e ancora!
Prodotto:
Canon EOS 30D Digital Camera
Microprocessor: DIGIC II Image
Processor
Prodotto:
Orologio Microsoft’s Smart Personal
Object Technology (SPOT)
Microprocessor: 32-bit ARM con Chip
FM Radio
… e l’industria?
Prodotto:
Kuka Industrial Robot Arm
Microprocessor: X86
OS: Windows CE OS & Others
Kuka robot arms welding a Mercedes
… il mercato
Prodotto:
Point-of-Sale (POS) Terminal
Microprocessor: Intel X86 Celeron
Prodotto:
High End Systems DL2 Digital
Media Server
Microprocessor: X86
Prodotto:
Dresser Wayne Ovation iX Gas Pump
Microprocessor: Marvel Xscale (ARM)
Dispositivi portatili
L’evoluzione nel mondo Embedded
– The New York Times
Importanza
• Il 98% delle CPU vendute sul mercato finiscono in sistemi
embedded (soltanto il 2% per desktop e server).
• Generalmente in un alloggio ci sono una cinquantina di
sistemi embedded.
• Lo stesso vale per un automobile di recente costruzione.
• Alla fine del 2009 si valutano in “14 Miliardi” i dispositivi
embedded connessi.
Obiettivi principali
• Affidabilità
• Non deve bloccarsi (potrebbe non ripartire)
• Aggiornare “sul campo” ?
• Dimensionamento risorse:
• Potenza del processore;
• Memoria di lavoro (RAM);
• Memoria di massa (dischi, CF, DOM, DOC, ecc…);
• Alimentazione (risparmio, batteria, ecc…);
• Richiesta di funzionalità Real-time.
• Costi controllati
• La concorrenza si basa anche sui costi;
• Rapidità di sviluppo di un nuovo prodotto;
Perché un O.S.?
•
•
•
•
•
•
•
•
•
Multi-task, schedulazione e sincronizzazione
Un gran numero di I/O connessi
Gestione dei file
Schedulazione e memorizzazione delle operazioni di I/O
Gestione delle connessioni di rete
Gestione della memoria
Gestione dell’interfaccia grafica
Sicurezza e “Power Management”
... allineamento con le nuove tecnologie...
Microsoft Embedded Family
Portable
media
Consumer Thin Client
Industrial
Automation Telematics
Entertainment Office
Automation
Medical
Kiosks
Robotics
Industrial
Automation
ATM /
Kiosk
Thin Client
Point of
Service
Flexibility,
Source Level Control,
Multiple CPU Architectures
Entertainment
Dedicated servers
Fixed Features,
Express Development,
Windows Desktop Compatibility
.NET MicroFramework
•
•
Wearable
Devices
Auxiliary
Displays
•
•
Health Monitoring
Remote Controls
Sensor Networks
•
Open Source
Piccolo runtime .NET per device embedded
– Dimensioni minime della piattaforma – 250K RAM
– Non richiede MMU (Memory Management Unit)
Lo sviluppo e il debug si eseguono in Visual Studio
– Tool Familiari
– Piena capacità di debug (device/emulatore)
Si lavora in C# con un subset delle librerie .NET
– Linguaggi familiari
– Utilizza codice e strutture dati affidabili
Velocità di sviluppo e robustezza del codice “managed”
– Nessuna istruzione “insicura”
– Gestione della memoria via “garbage collection”
– Gestione delle “Exception”
Set-top boxes
.NET MicroFramework
Smart Mill & Brew Coffee Maker — with MSN Direct Region
Specific Weather For the first time, coffee and weather
enthusiasts can get real-time, region specific, weather forecast
information and the freshest brewed coffee. Whole beans to
brewed coffee – all automatically without the guesswork, mess or
countertop clutter. The Smart Mill & Brew incorporates the MSN
Direct service to receive regional weather information without the
use of any outdoor sensors. Simply plug in the coffee maker and
receive: Current conditions, Forecasted hi/low temperature,
Sunrise and sunset information, Chance of precipitation,
Ultraviolet (UV) index and Weather Alerts.
http://www.amazon.com/Melitta-ME1MSB-10-Cup-Programmable-Coffeemaker/dp/B000HCUCOK/sr=8-2/qid=1158283968/ref=pd_bbs_2/002-5072980-6485622?ie=UTF8&s=home-garden
Conferimento dei rifiuti nei Cassonetti
Raccolta dei dati
Trasferimento dei dati
Windows CE ?
• Non é una versione di Windows 98, NT, 2000 o XP
• E’ il sistema operativo su cui si basano PocketPC, SmartPhone, Windows
Mobile
• Windows Mobile 6.x è basato su CE 5.0
• E’ un sistema operativo Hard Real Time e modulare (700 componenti)
• Pensato per sistemi embedded (no swap di memoria su disco: memoria
limitata da quella fisica)
• Piattaforma Multiprocessore (X86, SH4, MIPS, ARM: necessita MMU)
• Il file system è molto simile ai sistemi UNIX: root unica, mount dei device
con nome e non con lettere, RAM come ObjectStore, ecc...
• “gira” completamente in memoria
• Nessuna compatibilità binaria con la famiglia Windows (Xp, Vista, ecc..)
Perché Windows?
Perché Windows
•
•
•
•
•
•
•
•
•
Marketing: CE =Compact Edition. Tre Kernel: il primo, 3.0, 6.0
32bit, multitask, multithread, preemptive
Platform Builder è un plug-in di Visual Studio 2005
Stessa struttura di eseguibili
Compatibilità parziale a livello di API
Librerie comuni (MFC, ATL, WTL)
.NET Framework  Compact Framework
Funzionalità comuni
Strumenti di sviluppo comuni
Windows CE
Alder
Windows CE 1.0
11/1996
…un po’ di storia
Chelan
Windows Embedded
Compact 7
1Q/2011
Macallan
Windows CE 5.0
8/2004
Cedar
Windows CE 3.0
4/2000
Tomatin
NMD FP
SP1 SP2
2.11 2.12
Birch
Windows CE 2.0
11/1997
Jameson
4.1 McKendric
Talisker
Windows CE
.NET 4.0
1/2002
6.0 R2
11/2007
4.2
Yamazaki
Windows CE 6
9/2006
Cashmere
Windows 6.0 R3
10/2009
Windows Embedded CE 6.0 R3 Vs CE 7
Microsoft RTOS
Comparison Chart
Silverlight
Multi Touch & Gesture Support
Browser Support
Physical RAM
Kernel Support for Processors
Kernel Support for # core
Windows CE 6.0 R3
2.0
Limited
IE6
512MB
ARMv4
1
Windows Embedded
Compact 7
3.0
Yes
IE7 with Flash
3GB
ARMv7
multicore
Windows Mobile
Windows Embedded Handheld
Basato su CE
 Venduto direttamente da Microsoft agli OEM.
 Include alcune parti specifiche.
 Ha una struttura determinata verso l’utenza
 Ha una struttura determinata verso il sistema
Windows CE -vs -Windows Mobile
OPEN - Light
OPEN - Full
(RFID Technology)
RFID Tag reader/writer
“The Key” to your
identification solution
485 Communication line
Data Collector
RFID Tag reader/writer
&
Access Control Manager
Access Control Application
Guitar Switch
(Windows Embedded CE 6.0 R3)
 Multieffetto per chitarra
 Riproduttore di video
lezioni
 Registratore audio su basi
musicali
 Connessione a
marketplace per scaricare
nuovi effetti
 Pedale di controllo
via GPIO
GraCE - .NETCF GUI Controls
(Windows Embedded CE .NET & Mobile)
Libreria di controlli custom
(Button, Label, Charts, …)
Supporto a Design-time
.NET Compact Framework
Compatibile Desktop .NET
Semplice utilizzo
EASYROAD 3G
Windows CE 5.0
 Custom shell
 SMS
 Media Player
 Navigator
 Weather
 Info-traffic
 News
Gesture
Connection Manager
Windows Embedded Standard 7
E’ la versione a “package” di Windows 7 Ultimate
Include le più recenti tecnologie di Windows 7 Client
Permette la creazione personalizzata del sistema
operativo per svariate soluzioni embedded.
E’ stata disegnata per hardware X86 (32bit) e X64
(64bit)
Windows Embedded Standard 7 é la versione
successiva a “Windows Embedded Standard 2009”
Obiettivi del prodotto
Compatibilità binaria con Windows 7
W.E.S. 7 = W7 + E / WDM / Win32 Standard
Funzionalità estese di Windows 7
Minore ingombro su disco
500Mb il Core /1Gb TC / 4Gb completa (16Gb Windows 7)
Modularità e compattezza
Package, Distribution Share, Feature set, ecc..
Cambiamenti rispetto al passato
Strumenti di sviluppo 
Creazione dell’immagine 
Funzionalità embedded 
Strumenti di sviluppo
Image Builder Wizard (IBW)
Image Configuration Editor (ICE)
Target Analyzer (TAP)
Tool aggiuntivi per la distribuzione e l’aggiornamento
Deployment Image Servicing and Management (DISM)
ImageX
Sysprep
Package Manager, Package Scanner
Importpackage
Ecc.. …
Creazione dell’immagine
Development Host
Target Device
IBW
unattended
cab
OS image
core
Sysprep
ImageX
DISM
ICE
cab
wim
deploy
core
IBW
cab
core
OS image
Funzionalità Embedded
(EEF = Embedded Enabling Features)
Boot da supporti di massa aggiuntivi (USB 2.0, CF, Ecc..)
Tecnologia di filtri sulla scrittura
• EWF (Enhanced Write Filter)
• FBWF (File Based Write Filter)
• Registry Filter
(HORM) Hibernate Once, Resume Many
Funzionamento senza schermo (Headless Operation)
Message Box Default Reply / Dialog Box Filter
Possibilità di personalizzare il sistema
Ecc..
Ambo! Web
(Windows Xp Embedded)
Ambo! Web
www.ipmgroup.eu
WEB functionality
Web site addressed by alphanumeric keyboard typing
Web cam available as option
Full Web page in the screen or 4 sections zoom in
Contemporary Phone call and WEB surfing
Voip
Video & Audio Chat
Search & Information
News & Email
SMS & MMS
… more functionality
Full VGA Display 5” for WEB surfing
Track ball & two functional buttons for activities
in the WEB page (like mouse)
Web surfing paid by Coins, Prepaid and
Reloadable Cards
SkyEFIS
Electronic Flight Information System
(Windows Embedded Standard 2009)
www.digisky.it
Phome
(Windows Embedded Standard)
Telefonate
Sistema embedded per
SMS
telecomunicazioni di
E-Mail
nuova generazione
Internet
In un
prossimo
Chat
e Instant
futuro potrebbe
Messaging
sostituire
il telefono
Social
Networks
delle nostre case
VoIP
Altre funzioni:
Rende accessibili a
Cornice digitale
tutta la famiglia i
Audio/Video Player
moderni mezzi di
Widgets di terze parti
comunicazione
Text-To-Speech
Admin Shell
Windows Embedded Standard vs Windows CE
Soltanto X86 (2009)
x86/64 (7)
Compatibilità completa:
per le API e per i driver
Immagine minima (“Hello World”)
8MB (2009)
420MB (7)
Richiede delle estensioni
di terze parti
CPU
Gestite
x86, MIPS, SHx, ARM
Compatibilità
WIN32
Richiede comunque un porting
Dimensione
(Footprint)
Immagine minima di 350KB
Real-time
Hardware Real Time Nativo
Strumenti di sviluppo
Micro
FrameWork
Application
MFW
.NET
Application
OS+CRL
IBW
ICE
TAP & Tools
Platform
Builder
Smart Device
project
C++
C++
.NET
Application
OS
MFC, ATL
XAML Native
.NET
XAML
Application
OS
MFC, ATL
Per saperne di più
Software in valutazione
www.microsoft.com/windows/embedded/eval/trial.mspx
Guardate i siti ufficiali Microsoft
http://www.microsoft.com/windowsembedded
http://www.microsoft.com/windowsembedded/it-it/default.mspx
www.mictorino.it
www.netfw.com
Per cercare i “Windows Embedded Partner” o per diventarlo:
http://www.windowsembeddedpartner.com/
Blogs In inglese
Mike Hall’s embedded blog  blogs.msdn.com/mikehall
Oliver Bloch’s embedded blog  blogs.msdn.com/obloch
Windows Embedded Standard Team  blogs.msdn.com/embedded
Blogs bilingue (italiano ed inglese)
Marco Bodoira  marcobodoira.blogspot.com
Beppe Platania  blog.bepseng.it
Gianni Rosa Gallina embeddedlounge.blogspot.com
Grazie dell’attenzione
Beppe Platania
[email protected]
blog.bepseng.it