qu'est-ce que windows embedded ? backgroundarchitecturelibrairiesfontionnalitésdétailsq&a
TRANSCRIPT
Olivier BlochRelations techniques Mobilité et Systèmes Embarqué[email protected] France
.NET Microframework
Sommaire
Qu'est-ce que Windows Embedded ?BackgroundArchitectureLibrairiesFontionnalitésDétailsQ&A
Un monde de périphériquesPC
Web services
ProductivitéCommunicati
onLoisirs
Communications Multimédia
Industrie et Distribution
Commerce
Santé
De + en + de fonctionnalités sur des devices de + en + miniaturisés
SmartphonesWindows Mobile
Fonctionnalité
Tablet PC
PDAsWindows Mobile
PC portables
Windows Automotive
Portable Media Centre
VoIP Phones
TerminauxMobiles
PasserellesSet-top Boxes
Equipements médicauxTerminaux
Windows
Clients légers
Machines à sous
Point de venteAutomatisationbureautique
ATMs / Kiosks
Automatisatio
industrielle
Set-top Box
Périphériquesportables
Ecranssecondaires
Télécommandes
Composants réseaux
Ressou
rces
Hard
ware
Qu‘est-ce que Windows Embedded?
.NET MicroFramework : Le Challenge
Développer efficacement des périphériques trop "petits" pour Windows CE or XP Embedded
De plus en plus de "petits" terminauxHealthcareAutomatisation industrielle et domestiqueRetail Sensor networksBeaucoup de solutions "end-to-end" comprennent de "petits" terminaux
Mais…Compétences spécialiséesOutilsModèle de développementCode natif
Etendre la plateforme MS Embedded
Set-top boxes
Windows CE Windows XP Embedded
Windows Mobile
Smartphone
Windows Mobile
Pocket PC Phone
WindowsAutomotiv
e
Portable Media Center
Téléphones VoIP
Terminaux mobiles
Passerelles
Point de vente
Terminaux Windows
Equipements médicaux
Machines à sous
.NET Micro Framework
Surveillance médicale
Terminaux "portables
"
Ecrans secondair
es
Télécommandes
Equipements connectés
De + en + de fonctionnalité
De – en – de resources Hardware
Le Microsoft .NET Micro Framework
Extension de.NET à des terminaux plus petitsPetit runtime .NET pour terminaux embarqués
Empreinte de la plateforme – 256K RAMPas de MMU nécessaire
Developpement et debug avec Visual StudioOutils familiersDebug croisé et sur émulateur
Utilisation de C# et d'un sous-ensemble de librairies .NETCodage familierUtilisation des structures de code et de données
Rapidité de développement et robustesse du code managedPas d'instruction unsafeGestion de la mémoire/Garbage collectionGestionnaire d'exception
.NET Micro Framework Windows CE Windows
XPe
ExemplesSensor Nodes, SideShow displays, Health Monitoring, Remote Controls,
GPS Handhelds, PDAs, Automotive, Set Top Boxes
Clients légers, ATMs,Kiosques
Fonctionnalités Connecté, Petit, "portable", IHM Graphique
Connecté, IHM Graphique, Serveur, Browser, RAS, DirectX
PC-class performance,Réseau PC
Taille de l'empreinte
200-400KoCode managed compris
300Ko+ sans .NET CF12Mo+ avec .NET CF
40Mo +
Alimentation Très faible consommation Faible consommation Alimentation PC
CPU ARM7, ARM9 Pas de MMU
X86, MIPS, SH4, ARM, avec MMU X86
Temps réel Non temps réel Temps réel durPossibilité de temps réel avec des extensions tierce parties
Code managed vs. natif
Natif : interop uniquement,Managed : .NET MF
Natif : supporté de base,Managed : .NET CF
Natif : supporté de base,Managed : .NET Framework
Choisir une plateforme embarquée
Technologie Microsoft Research
Construit pour des projets internesL'incubation de Smart Personal Objects Technology (SPOT) Débute en 2001 chez Microsoft ResearchContruction d'une “TinyCLR” pour SPOTPlatform embarquée dans :
Smart Watches avec MSN Direct (2004)Microsoft TV (2005)MEDC Sumo Robot Kit (2006)
A venir très prochainement :Microsoft Windows Vista Sideshow (2007)
Autres projets internes/externes
Windows Sideshow
Autres projets
Outils
Microsoft Visual Studio 2005Projet système/templatesPost-build processingIntellisenseDeploiement sur cible (USB/série) ou emulateurDebug "interactif" depuis l'IDE
Points d'arrêtsEspion VariablesTraces
Emulateur extensiblePersonnalisable pour correspondre à votre configuration hardware et à vos périphériques
Développer avec le .NET Microframework
Démo Création d'une application Utilisation de l'émulateur
Architecture
Objectifs.NET bootable
Cœur natif minimalisteEspace applicatif entièrement managed
SûrAucun accès direct aux ressources physiques
SécuriséAssemblies signées uniquement
ExtensiblePortable
Architecture
Cibles
Chipsets supportés à ce jour (runtime bootable)ARM7TDMI @ 27MHz (384K RAM, 1M Flash)ARM7TDMI @ 50MHz (4M RAM, 2M Flash)ARM920T @ 96MHz (4M RAM, 2M Flash)ARM Cortex M3 (under development)And more…
Plateformes suportées à ce jour (runtime "hosté")Dual ARM7TDMI @ 100MHz (32M RAM, 1G Flash)Windows XP (x86)Motorola 68k
Portage sur de nouvelles ciblesPorting to new hardware: 80-100 APIsPorting to new platform: 20-40 APIs
.NET FrameworkSystem.Web System.Windows.Forms
System.Data System.XML
System
Services• Description• Discovery• Protocols
UI• HTML controls• Web controls
Runtime• Interop services• Remoting• Serialization
Design
Configuration
Cache
Session state
Security
Imaging
Drawing 2D
Text
Printing
Design
ADO.NET
SQL ServerCE
SQL Client
Xslt/XPath
XML Document
Reader/writers
Serialization
Service process
Configuration
Threading
Diagnostics
Net
IO
Resources
Reflection
Security
Collections
Globalization
Text
Component model
System.Drawing
.NET Compact FrameworkSystem.Web System.Windows.Forms
System.Data System.XML
System
Services• Description• Discovery• Protocols
UI• HTML controls• Web controls
Runtime• Interop services• Remoting• Serialization
Design
Configuration
Cache
Session state
Security
Imaging
Drawing 2D
Text
Printing
Design
ADO.NET
SQL ServerCE
SQL Client
Xslt/XPath
XML Document
Reader/writers
Serialization
Service process
Configuration
Threading
Diagnostics
Net
IO
Resources
Reflection
Security
Collections
Globalization
Text
Component model
System.Drawing
.NET Micro FrameworkSystem.Web System.Windows.Forms
System.Data System.XML
System
Services• Description• Discovery• Protocols
UI• HTML controls• Web controls
Design
Configuration
Cache
Session state
Security
Imaging
Drawing 2D
Text
Printing
Design
ADO.NET
SQL ServerCE
SQL Client
Xslt/XPath
XML Document
Reader/writers
Serialization
Service process
Configuration
Threading
Diagnostics
Net
IO
Resources
Reflection
Security
Collections
Globalization
Text
Component model
• Interop services
Runtime
• Serialization
• Remoting
System.Drawing
Composantes du Runtime
Common Language Specification (CLS) compliant
Possibilité d'utiliser les librairies avec différents langages
Sous-ensembles de librairies "core"Dérivant de l'infrastructure Common Language Infrastructure (CLI) v1.0Supporte l'exécution Common Intermediate Language (CIL)
Composantes du Runtime
Multi-threading et synchronisation
Timers
using System.Threading;…Thread myThread = new Thread(new ThreadStart(this.MyWorkerThread));myThread.Priority = ThreadPriority.AboveNormal;myThread.Start();
using System.Threading;…Timer myTimer = new Timer( new TimerCallback(this.MyTimerCallback), null, 10, 100));…
Composantes du Runtime
Serialization~60% plus petit que.NET Framework
ReflectionRemote Procedure Call (RPC)
Invoque les méthodes d'objets distantsImplémentation spécifique au.NET Micro Framework
SecuritéXTEA (symétrique)RSA (asymétrique)
Gestion d'ExceptionDelegates / multicast delegates
Pointeurs de fonction typésPermet la programmation événementielle vs synchrone (polling)
Composantes du Runtime
RéseauSupport Ethernet avec/sans filSockets du namespace System.Net
Pilotes ManagedGPIO, PWM, I2C, SPI et USART en C#Interruptions GPIO transmises aux applications managed
Composantes du Runtimeusing System.Threading; using Microsoft.SPOT.Hardware;
…InterruptPort myButton = new InterruptPort(
(Cpu.Pin)12, true, Port.ResistorMode.PullUp, Port.InterruptMode.InterruptEdgeLow
);
MyButton.OnInterrupt +=new GPIOInterruptEventHandler( this.MyInterruptHandler );
…}
public void MyInterruptHandler(Cpu.Pin id, bool edge, TimeSpan time){ // handle the interrupt event here}
Composantes du Runtime
IHM/ShellModèle objet basé sur Windows Presentation Foundation (WPF)Routage des évènements d'entréeSystème Layout
Dimensionnement de contenuText flowSupport riche pour les contrôles imbriqués
Bitmap fontsImagesPens, brushes, colorsPrimitives "Vector"Alpha blending
Implémentation
Petite empreinte (ROM/FLASH) Runtime seul : ~120KoAvec min. framework: ~250KoAvec max. framework: ~500Ko
Peu de RAM requise~70Ko system overhead
Implémentation
Assembly loaderEffectue une validation minimale des assemblies post-processéesEnregistre les types avec le système de type commun
Intégré dans Visual Studio
L'interpréteur Microsoft Intermediate Language (MSIL)
Support pour toutes les instructions MSIL (sauf unsafe)Petite latence à l'éxécutionFournit un environnement d'éxécution purement virtuel
Implémentation
Moteur d'exécutionPas de scheduler natifGère des "work queues" nativesInvoque du code natif
Interoperabilité non traditionnelle
Garbage collectorNon-incremental mark-and-sweep
50ms pour 1Mo (dépendant du nombre d'objets)
Support pour le stockage non volatileFournit un mécanisme basique de persistance d'objet
Implémentation
HALBootstrap le runtimeMet à disposition une abstraction des ressources hardGère les interruptionsMultitâche asynchrone coopératif
Queue de "work items"
Compact~40Ko (avec les drivers de base)
Développer .NET MF pour une cible
Démo Création d'une application Upload sur la cible
Plus d'informations
Site MSDNhttp://msdn.microsoft.com/embedded/nemf/
Resources et infos Mobilité et Embarquéhttp://www.microsoft.com/france/msdn/mobilite/default.mspx
Evaluez les produits Windows Embeddedhttp://www.windowsembeddedkit.com/
Les partenaires Windows Embeddedhttp://www.mswep.com
Visite quotidienne ;-)http://blogs.msdn.com/obloch
La référence technique
pour les IT Pros :technet.microsoft.com
La référence technique
pour les développeurs :
msdn.microsoft.com
S’informer - Un portail d’informations, des événements, une newsletter bimensuelle personnalisée
Se former - Des webcasts, des articles techniques, des téléchargements, des forums pour échanger avec vos pairs
Bénéficier de services - Des cursus de formations et de certifications, des offres de support technique
Visual Studio 2005 +
Abonnement MSDN Premium
Abonnement TechNet Plus :
Versions d’éval + 2 incidents support
Questions ?
© 2007 Microsoft France
Votre potentiel, notre passion TM