Les timers

bulletLe multimédia timer a les performances les plus intérressantes, permettant une activation à la milliseconde, avec un gite de -950 à +500 us  si on a pris la précaution d'installer un driver IDE en mode DMA (bus master). Il ne semble pas y avoir de dérive. Toutefois la fonction exécutée est de type callback s'exécute dans un thread non identifié de priorité THREAD_PRIORITY_TIME_CRITICAL.
bulletLe waitable timer n'a une résolution que de 10 ms. Une demande d'activation à 1 ms est ramenée à 10 ms, 15 ms est ramené à 20 ms, etc. Sauf si un timer multimédia est actif en parallèle, il a alors la même résolution (1ms), un peu plus de stabilité (-500us à +500us) mais dérive légèrement (de l'ordre d'une miliseconde toute les secondes). Le thread associé est identifié et maîtrisé.
bulletLes Timers Hard du PC, Timer système (IRQ0) et Timer Horloge temps réelle RTC (IRQ8) sont réservés de façon exclusive par la couche HAL de NT et ne sont donc pas utilisables de façon "propre". Un essai sera tenté pour les détourner.

L'instruction Sleep, suspendant le thread dans le temps indiqué se comporte comme le waitable timer avec l'erreur en plus du traitement cyclique du thread à ajouter à la période.

Il a été tenté d'accrocher une DPC prioritaire au timer kernel dans un driver sans amélioration visible des performances, aussi le driver n'est-il pas fourni avec le programme de test.

Accueil ] Remonter ] Waitable Timer ] Multimédia Timer ] Sleep ]