& 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