![Page 1: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/1.jpg)
![Page 2: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/2.jpg)
22
Temps réel avecWindows Embedded CE 6.009/02/2010Yannick Balère – TheorisThierry Joubert – MVP @ Theoris
![Page 3: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/3.jpg)
33
But de la session:
Comprendre pourquoi et comment l’OS Windows Embedded CE 6.0 peut être utilisé sur des systèmes temps réel
Expliquer à partir des mécanismes internes de l’OS
Illustrer sur des exemples et démos
![Page 4: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/4.jpg)
44
Origines du problème
Besoin = Entrées & Sorties à des instants strictement connus (intervalle d’erreur prédéfini)
Etat des lieux des CPUAutomate Séquentiel & ProgrammablePas de gestion interne du tempsTemps d’accès à la mémoire & aux périphériquesComplexité croissante des besoins !!
Quelques mythesUn système temps réel est rapideLe matériel répond à tous les besoins
![Page 5: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/5.jpg)
55
Gestion du déterminisme
Au niveau matérielUtilisation des InterruptionsIntégration d’un circuit horlogeGarantie des temps d’accès à la mémoireContrôleurs de périphériques et de bus
Au niveau logicielMaîtrise des chemins d’exécutionConnaissance des situations de « pire cas » temporel
Dans les tâches applicativesDans le système (Runtimes – Noyau - Pilotes)
Le déterminisme tient au design du système
![Page 6: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/6.jpg)
66
OS et déterminisme - 1
Ce qui est de la responsabilité de l’OS Temps de réponse sur interruptionPrécision du TICK (Timers & Watchdogs)Stabilité des mécanismes internes (KCall, TLB)Stabilité des fonctions exposées (CSW,
Synchronisation)Stabilité de la planification des tâches
![Page 7: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/7.jpg)
77
OS et déterminisme - 2
Ce qui n’est pas de la responsabilité de l’OSContention des interruptionsContention d’accès aux BUSComportement interne des pilotes de périphériquesAinsi que TOUT le logiciel applicatif !!
![Page 8: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/8.jpg)
88
CE & Déterminisme
Stabilité de la planification des tâches
Précision du TICK
Stabilité des mécanismes internes
Temps de réponse sur interruption
![Page 9: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/9.jpg)
99
Architecture CE
I/OObjec
tStore
Kernel
GWESCE
Shell
OAL & Pilotes
API système
ApplicationThread Thread Thread
![Page 10: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/10.jpg)
1010
Ordonnancement
Modèle Multi-ThreadPréemptif à 256 niveauxPriorités fixesRound-robin à la demandeQuantum paramétrable par threadGestion de l’inversion de priorité
Page 10
![Page 11: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/11.jpg)
1111
Synchronisation
Synchronisation Win32MutexSémaphoreEvénement
Optimisation intra-processusSection critique
Dépendant du hardwareInterlocked
Page 11
![Page 12: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/12.jpg)
1212
États d’un thread
Release
Wait
ENATTENTE
Resume PRÊT
COURANT
Élection
Préemption
ACTIF
Suspend
Un seul thread à la fois !!
SUSPENDU
EN ATTENTE+
SUSPENDU
Resume
Suspend
![Page 13: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/13.jpg)
1313 Page 13
Outillage
Kernel TrackerMontre l’interaction entre
les processus, les threads et les interruptionsListe les InterruptionsEchecs TLBInversion de prioritéEtat des threadsAppels système
![Page 14: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/14.jpg)
1414
Mesure Windows CE - 1
Création de 2 threads de
haute priorité
Semaphore
Mutex
Threads haute priorité Course au
Sémaphore
Course au Mutex
![Page 15: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/15.jpg)
1515
Mesure Windows CE - 2
Semaphore
Course au Sémaphore
Mutex
Course au Mutex
![Page 16: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/16.jpg)
1616
Mesure Windows CE - 3
Wait+Release+CSW 18 µs
Semaphore
![Page 17: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/17.jpg)
1717
TICK système
TICK fixé à 1msL’interruption TICK peut causer un changement de
contexte de thread (CSW) Le noyau choisit CSW ou NOPLe thread PRÊT de plus haute priorité doit tournerLe thread courant continue s’il n’y a pas de
concurrence et qu’il n’a pas épuisé son quantumSleep(N) va avoir une échéance entre N et (N+1) ms
![Page 18: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/18.jpg)
1818
Mécanismes internes
Pilotes de périphériques en mode KERNELTous les threads du pilote en mode KERNELAppels à KCOREDLL.DLL
Accès direct aux paramètresAppel par table de vecteurs
Mémoire virtuellePage Pooler à déclenchement paramétrable
Optimisation des appels non interruptible du noyau (Kcall)
![Page 19: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/19.jpg)
1919
Gestion des interruptions
Kernel
OAL
API système
Interrupt Service Routine
Interrupt
ServiceThread
![Page 20: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/20.jpg)
2020 Page 20
Chemin de prise en compte d’IT
![Page 21: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/21.jpg)
2121
Latence d’interruption
Au niveau de l’ISRIT non autoriséeTemps du noyau pour appeler l’ISR
Au niveau de l’ISTTemps de changement de contexteSection bloquantes du Noyau (Kcall)Délai TLB
![Page 22: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/22.jpg)
2222
Contraintes temps réel
ApplicationMaîtrise des priorités de threadsMaitrise de l’exécution non préemptible (run
to completion)Utiliser les objets de synchronisationGérer l’inversion de priorité
PiloteMaîtrise du délai d’ITNiveau de priorité de l’IST
![Page 23: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/23.jpg)
2323
L’engin
![Page 24: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/24.jpg)
2424
Aucun composant actif !
PortParallèle
Capteurs IR
Soufflerie
ETX®-DC• Intel® Atom™ N270• 1.6 GHz - 512ko L2 cache• DDR2 SODIMM 521Mo
![Page 25: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/25.jpg)
2525
Interface Port Parallèle
Interface Port Parallèle
Capteurs IRCapteurs IR
TurbineTurbine
Servo-Moteur & Clapet de carburateur
Servo-Moteur & Clapet de carburateur
Architecture matérielle
![Page 26: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/26.jpg)
2626
Pilote
Aucun composant actif !
PortParallèle
Capteurs IR
Soufflerie
ThreadTemps
réel
Application .NET
API système
IOControl
I/O
PWM
![Page 27: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/27.jpg)
2727
Démo…
![Page 28: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/28.jpg)
2828
SystèmeGestion d’un cycle Temps Réel Application graphique en C#
DriverModèle Stream DriverGestion centralisée du port parallèle:
problématique de concurrence d’accèsContrainte d’utilisation du temps CPU:
synchronisation de la commande et de la détection
Points clés
![Page 29: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/29.jpg)
2929
Temps réel
Performance temps réel
0,5 ms
1 ms
10 ms
5 ms
20 ms
100 ms
100 µs 1000 µs 1000 µsVariation
Cycle
![Page 30: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/30.jpg)
3030
Projet industriel robotique
Input device
Temps réelIHM
![Page 31: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/31.jpg)
3131
Architecture du logiciel
Tem
ps ré
el
Interface robot
CAN I/O Etc.
source
pcode
display
SRL generator SRL compiler
SRR engine
![Page 32: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/32.jpg)
3232
Processus & Threads
watchdog
Callack
Panelinput
Drivers
Windowsmessages
Automaton
CANNVRAM UI panel
Application
![Page 33: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/33.jpg)
3333
Machine à affranchir
Contrainte temps réel sur la cadence de traitementMesure du pli (dimension, poids)Calcul de tarif et validation de débitConstruction de l’image du timbreCommande de l’affranchissement
![Page 34: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/34.jpg)
3434
Sessions « Systèmes embarqués »
LUNDI 11h-12h : MOB111
Systèmes Embarqués à la sauce Microsoft: Démos, démos, démos 13h-14h : MOB310
Silverlight pour Windows Embedded : monitoring du brassage de la bière en interfaces riches ! 16h-17h : MOB109
Serveurs pour applications embarqués : ils sont de retour…17h30-18h30 : MOB207
Multitouch et nouvelles expériences dans les systèmes embarqués : scénarios et exemples
MARDI11h-12h : MOB306
Microsoft au calibre industriel: temps réel dur pour des applications critiques13h-14h : MOB104
Des capteurs aux serveurs en passant par la cuisine : Windows Embedded dans la maison16h-17h : MOB203
Construisez votre OS avec les briques de Windows 7 : l'exemple avec un système multimédia pour la maison
17h30-18h30 : MOB301.NET, Electronique et OpenSource : développement sur FPGA avec le .NET MicroFramework
![Page 35: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/35.jpg)
3535
Quelques liens pour aller plus loin…
Le site Windows Embedded en Français:http://www.windowsembedded.fr
Le blog de Pierre Cauchois – resp. du parcours Embedded:http://blogs.msdn.com/pierreca
Concours « Je vois des Windows Partout »http://msdn.microsoft.com/fr-fr/windowsembedded/msdn.windows.partout.aspx
![Page 36: 22 Temps réel avec Windows Embedded CE 6.0 09/02/2010 Yannick Balère – Theoris Thierry Joubert – MVP @ Theoris](https://reader038.vdocuments.pub/reader038/viewer/2022102520/551d9ddd497959293b8e8e9a/html5/thumbnails/36.jpg)
3636
Retrouvez-nous dehors…
Stand D34 – Windows EmbeddedDes experts pour répondre à toutes vos questionsUn beau bar, de belles démos et une bonne ambiance ^^