.NET MicroFramework.NET MicroFramework
Historique & état des lieuxHistorique & état des lieux
ArchitectureArchitecture
A l’intérieur du MicroFrameworkA l’intérieur du MicroFramework
Demo: Sumo RobotDemo: Sumo Robot
.NET MicroFramework.NET MicroFramework
HistoriqueHistorique
2001 : Début de SPOT chez Microsoft ResearchProduits déja lancés:
Smart Watches (2004)
Microsoft TV (2005) (maintenant sous CE)
En cours de lancement :Microsoft Windows Vista SideShow
2001 : Début de SPOT chez Microsoft ResearchProduits déja lancés:
Smart Watches (2004)
Microsoft TV (2005) (maintenant sous CE)
En cours de lancement :Microsoft Windows Vista SideShow
MotivationCe que propose Microsoft aujourd’huiMotivationCe que propose Microsoft aujourd’hui
GeneralMicrosoft Windows XP Embedded Microsoft Windows CE
DérivésMicrosoft Windows Automotive 5.0Microsoft Windows Embedded for Point of Service
Taille de Windows CELe noyau de CE est > 600Ko selons les optionsWindows CE + .NET Compact Framework (CF)= 12MoWindows CE a besoin d’une MMU
GeneralMicrosoft Windows XP Embedded Microsoft Windows CE
DérivésMicrosoft Windows Automotive 5.0Microsoft Windows Embedded for Point of Service
Taille de Windows CELe noyau de CE est > 600Ko selons les optionsWindows CE + .NET Compact Framework (CF)= 12MoWindows CE a besoin d’une MMU
S’ouvrir sur d’autres périphériquesS’ouvrir sur d’autres périphériquesS’ouvrir sur d’autres périphériquesS’ouvrir sur d’autres périphériques
.NET Micro Framework.NET Micro Framework
Set-top Set-top boxesboxes
Windows CEWindows CE Windows XP EmbeddedWindows XP Embedded
Fonctionnalités croissantesFonctionnalités croissantes
Health MonitoringHealth Monitoring
WearableWearableDevicesDevices
AuxiliaryAuxiliaryDisplaysDisplays
Remote Remote ControlsControls
Windows Windows MobileMobile
SmartphoneSmartphone
Windows Windows MobileMobile
Pocket PC Pocket PC PhonePhone
WindowsWindowsAutomotivAutomotiv
ee
Portable Portable Media Media CenterCenter
VoIP phonesVoIP phonesMobileMobile
handheldshandhelds
GatewayGatewayss
Retail Retail Point-of-Point-of-
SaleSale
Windows-Windows-based based
terminalsterminals
Medical Medical devicesdevices
Entertainment Entertainment devicesdevices
ArchitecturePhilosophie et butsArchitecturePhilosophie et buts
Bootable .NETBénéfices du code managé, proche du hard
Créer la plus petite plateforme compatible .Net pour les périphériques ayant peu de ressources (CPU, mémoire, alimentation)
CompromisEmpreinte mémoire réduite, options de boot avancées et BSPCLR runtime (engine, type system, GC)Librairies essentielles (mscorlib, graphics, HW, Net)Librairies sous forme de composants pour étendre des périphériques particuliers
Bootable .NETBénéfices du code managé, proche du hard
Créer la plus petite plateforme compatible .Net pour les périphériques ayant peu de ressources (CPU, mémoire, alimentation)
CompromisEmpreinte mémoire réduite, options de boot avancées et BSPCLR runtime (engine, type system, GC)Librairies essentielles (mscorlib, graphics, HW, Net)Librairies sous forme de composants pour étendre des périphériques particuliers
ArchitectureArchitecture
A l’intérieur du MicroFrameworkA l’intérieur du MicroFramework
Chipsets supportésARM
ARM7TDMI, 25Mhz, 384Kb RAM, 1/2Mb FLASH, 8Kb D/I cacheARM920T, 96Mhz, 4Mb RAM, 2Mb FLASH, 16Kb D/I cacheARM Cortex M3 (en cours de développement)
Plateformes supportées (en tant qu’hôte pour le CLR)
M68kWin XP
Porter vers un nouveau hardware~80-100 fonctions
Porter vers une nouvelle plateforme~20-30 fonctions
Un kit pour porter le microframework vers un nouveau hardware est disponible
Chipsets supportésARM
ARM7TDMI, 25Mhz, 384Kb RAM, 1/2Mb FLASH, 8Kb D/I cacheARM920T, 96Mhz, 4Mb RAM, 2Mb FLASH, 16Kb D/I cacheARM Cortex M3 (en cours de développement)
Plateformes supportées (en tant qu’hôte pour le CLR)
M68kWin XP
Porter vers un nouveau hardware~80-100 fonctions
Porter vers une nouvelle plateforme~20-30 fonctions
Un kit pour porter le microframework vers un nouveau hardware est disponible
A l’intérieur du MicroFrameworkHAL + PALA l’intérieur du MicroFrameworkHAL + PAL
Conçus pour .NET MicroFrameworkBootstrapAbstraction du matérielMécanisme de report d’appel de procédure ( Deferred Procedure Call (DPC) )
Priorités des appels de fonctionGestion des appels asynchrones ( entrées/sorties)Forme de multitâche coopératif
SimpleNi scheduler ou gestion de mémoireBlocage minimum (seulement les ISRs)Seul le CLR est exécuté
Conçus pour .NET MicroFrameworkBootstrapAbstraction du matérielMécanisme de report d’appel de procédure ( Deferred Procedure Call (DPC) )
Priorités des appels de fonctionGestion des appels asynchrones ( entrées/sorties)Forme de multitâche coopératif
SimpleNi scheduler ou gestion de mémoireBlocage minimum (seulement les ISRs)Seul le CLR est exécuté
A l’intérieur du MicroFramework
HAL + PAL
A l’intérieur du MicroFramework
HAL + PAL
Petit40Ko (avec les drivers principaux)
Execution du CLRDirectement sur le HW (via HAL)
ou
En tant que tâche d’un RTOS (via PAL)
Petit40Ko (avec les drivers principaux)
Execution du CLRDirectement sur le HW (via HAL)
ou
En tant que tâche d’un RTOS (via PAL)
A l’intérieur du MicroFramework
Common Language Runtime (CLR)
A l’intérieur du MicroFramework
Common Language Runtime (CLR)
Dérivé du standard ECMA (CLI)CLS/CTS/VES
Aucun appel unsafe
Quelques extensions spécifiques à l’environnement embarqué
Taille très réduiteruntime + framework library: ~200 KB
<500KB toutes options (UI, XML, …)
Dérivé du standard ECMA (CLI)CLS/CTS/VES
Aucun appel unsafe
Quelques extensions spécifiques à l’environnement embarqué
Taille très réduiteruntime + framework library: ~200 KB
<500KB toutes options (UI, XML, …)
A l’intérieur du MicroFramework
Common Language Runtime (CLR)
A l’intérieur du MicroFramework
Common Language Runtime (CLR)Gestion mémoireGarbage collectorMark-and-sweep, non-incrementalSupport pour de la mémoire non-volatileOptimisé pour le ratio size/performance
Moteur d’executionCharge et exécute le code managé (MSIL)MSIL interprété
Execution avec une faible granularitéCode plus petit
Multi-threadéGestion des exceptions
Gestion mémoireGarbage collectorMark-and-sweep, non-incrementalSupport pour de la mémoire non-volatileOptimisé pour le ratio size/performance
Moteur d’executionCharge et exécute le code managé (MSIL)MSIL interprété
Execution avec une faible granularitéCode plus petit
Multi-threadéGestion des exceptions
A l’intérieur du MicroFramework
Common Language Runtime (CLR)
A l’intérieur du MicroFramework
Common Language Runtime (CLR)
Moteur de sérialisationOptimisé pour la mémoire non-volatile
RPCCommunication bi-directionnelle
Au travers de différents types de liens (Bluetooth, USB,…)
SécuritéXTEA (symmetric)
RSA (asymmetric)
Moteur de sérialisationOptimisé pour la mémoire non-volatile
RPCCommunication bi-directionnelle
Au travers de différents types de liens (Bluetooth, USB,…)
SécuritéXTEA (symmetric)
RSA (asymmetric)
A l’intérieur du MicroFramework
Common Language Runtime (CLR)
A l’intérieur du MicroFramework
Common Language Runtime (CLR)
RéseauDrivers 802.15.4 (Chipcon cc2420) et BT (Promi-SD)
Bientôt une stack TCP/IP (System.Net.Sockets)
Drivers managésGPIO, PWM, VTU32, I2C, SPI, USART
RéseauDrivers 802.15.4 (Chipcon cc2420) et BT (Promi-SD)
Bientôt une stack TCP/IP (System.Net.Sockets)
Drivers managésGPIO, PWM, VTU32, I2C, SPI, USART
System.WebSystem.Web System.Windows.FormsSystem.Windows.Forms
System.DataSystem.Data System.XMLSystem.XML
SystemSystem
• ServicesServices•DescriptionDescription•DiscoveryDiscovery•ProtocolsProtocols
•UIUI•HTML controlsHTML controls•Web controlsWeb controls
•RuntimeRuntime• Interop servicesInterop services•RemotingRemoting•SerializationSerialization
DesignDesign
ConfigurationConfiguration
CacheCache
Session stateSession state
SecuritySecurity
ImagingImaging
Drawing 2DDrawing 2D
TextText
PrintingPrinting
DesignDesign
ADO.NETADO.NET
SQL ServerCESQL ServerCE
SQL ClientSQL Client
Xslt/XPathXslt/XPath
XML DocumentXML Document
Reader/writersReader/writers
SerializationSerialization
Service processService process
ConfigurationConfiguration
ThreadingThreading
DiagnosticsDiagnostics
NetNet
IOIO
ResourcesResources
ReflectionReflection
SecuritySecurity
CollectionsCollections
GlobalizationGlobalization
TextText
Component Component modelmodel
.NET Framework.NET Framework
System.DrawingSystem.Drawing
System.WebSystem.Web System.Windows.FormsSystem.Windows.Forms
System.DataSystem.Data System.XMLSystem.XML
SystemSystem
• ServicesServices•DescriptionDescription•DiscoveryDiscovery•ProtocolsProtocols
•UI•HTML controls•Web controls
•Runtime•Interop services•Remoting•Serialization
DesignDesign
Configuration
Cache
Session state
SecuritySecurity
Imaging
Drawing 2DDrawing 2D
TextText
Printing
Design
ADO.NETADO.NET
SQL ServerCESQL ServerCE
SQL ClientSQL Client
Xslt/XPath
XML DocumentXML Document
Reader/writersReader/writers
Serialization
Service process
Configuration
ThreadingThreading
DiagnosticsDiagnostics
NetNet
IOIO
ResourcesResources
ReflectionReflection
SecuritySecurity
CollectionsCollections
GlobalizationGlobalization
TextText
Component Component modelmodel
.NET Compact Framework.NET Compact Framework
System.DrawingSystem.Drawing
System.WebSystem.Web System.Windows.FormsSystem.Windows.Forms
System.DataSystem.Data System.XMLSystem.XML
SystemSystem
• 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 DocumentXML Document
Reader/writers
Serialization
Service process
Configuration
ThreadingThreading
DiagnosticsDiagnostics
NetNet
IOIO
ResourcesResources
ReflectionReflection
Security
CollectionsCollections
GlobalizationGlobalization
Text
Component model
.NET MicroFramework.NET MicroFramework
• Interop servicesInterop services
• RuntimeRuntime
•Serialization
•RemotingRemoting
System.DrawingSystem.Drawing
A l’intérieur du MicroFramework UI/Shell
A l’intérieur du MicroFramework UI/Shell
Basé sur WPFPolicesImagesPrimitives vectoriellesTransparence (couche alpha)
Applicable sur toutes les primitives
Basé sur WPFPolicesImagesPrimitives vectoriellesTransparence (couche alpha)
Applicable sur toutes les primitives
Outil de développementOutil de développement
Microsoft Visual Studio 2005Nouveau projet : Microframework
Déploiement vers un périphérique ou l’émulateur
Debug dans VS IDEBreakpoints
Memory inspection
Tracing
Emulateur extensible
Microsoft Visual Studio 2005Nouveau projet : Microframework
Déploiement vers un périphérique ou l’émulateur
Debug dans VS IDEBreakpoints
Memory inspection
Tracing
Emulateur extensible
Sumo RobotSumo Robot
LiensLiens
Le site consacré au MicroFrameworkwww.aboutNetMF.com
Le site des développeurshttp://msdn.microsoft.com/mobility/wiki