Jc/md/lp-01/05TTY_IT : présentation1 TTY_IT Présentation.

Slides:



Advertisements
Présentations similaires
Le bus AS-i Architecture de communication AS-i
Advertisements

Génération de plate-forme
Les procédures et interruptions en Assembleur (Tasm)
Journées académiques Microsoft 2005
Abes agence bibliographique de l’enseignement supérieur Les scripts.
Synchronisation des processus père - fils
PROGRAMMATION LOGICIEL PL7 MICRO Consignes
Chapitre I : Systèmes d’exploitation
Chapitre 3: Système d’exploitation
Guide rapide pour le gestionnaire Etape
C.
! ! ! PROCEDURE TYPE POUR ORGANISER L ’ANONYMAT
! 1 CREATION D'UNE MAQUETTE EXPORT / IMPORT
Revision.
Driver de port parallèle
jc/md/lp-01/05IT CE4.2 : cours1 Traitement des interruptions Cours.
Jc/md/lp-01/05Essai ligne série COM1 : présentation1 Essai ligne série CEPC Application écho sur COM1 Présentation.
Jc/md/lp-01/05WebPad1. jc/md/lp-01/05WebPad2 Objectif du chapitre Installation dun serveur Web élémentaire sur la plate-forme CEPC Envoi dune page daccueil.
Gestion mémoire : présentation
Jc/md/lp-01/05gestion mémoire : corrigé1 Gestion mémoire Corrigé
Driver UART en polling : présentation
Driver de port parallèle
Jc/md/lp-01/06Kernel Tracker1 Debugging Kernel Tracker.
Jc/md/lp-01/05TTY_IT : corrigé1 TTY_IT Corrigé. jc/md/lp-01/05TTY_IT : corrigé2 Objectif du chapitre Proposer une solution pour les exercices suggérés.
Driver UART en polling : corrigé
Jc/md/lp-01/05Driver élémentaire : corrigé1 Driver élémentaire Émulateur Corrigé
Jc/md/lp-01/05Trains_presentation1 Threads et Synchronisation Application train Présentation.
Jc/md/lp-01/05Boot Loader1 BOOT LOADER. jc/md/lp-01/05Boot Loader2 Objectif du chapitre Introduire la notion de Boot Loader Donner un aperçu de lorganisation.
Jc/md/lp-01/05Driver élémentaire : présentation1 Driver élémentaire Émulateur Présentation.
Jc/md/lp-01/05Trains_corrigé1 Threads et Synchronisation Application train Corrigé
MENU DE L’AIDE Cliquer ici pour aide RESEAUX DE CONTACTS
Systèmes d’exploitation
Système d’exploitation : Assembleur
Page 1 Introduction à ATEasy 3.0 Page 2 Quest ce quATEasy 3.0? n Ensemble de développement très simple demploi n Conçu pour développer des bancs de test.
Labview Programmation réseau Communication par sockets
LOGICIEL PL7 MICRO PROGRAMMATION MISE AU POINT Consignes?
Les fichiers binaires en C++
Micro contrôleurs Microchip Outil de developpement MPLAB
Les structure d’un programme :
FICHIERS : Définition : Algorithme général:
Introduction Création d'un projet Ajout de fichiers Compilation Exécution Utiliser le débogueur Département dinformatique et de génie logiciel Développer.
Développer en C avec Eclipse Introduction Création d'un projet Ajout de fichiers Compilation Exécution Utiliser le débogueur Département dinformatique.
Gérer la sécurité des mots de passe et les ressources
Microcontrôleurs et Langage C Les Interruptions diapo 1
Créer des packages.
Un survol du language C.
Interactions entre Processus
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
Introduction à Visual Studio C++ (VC++)
Programmation Système et Réseau
Démarrage Code Warrior. 31/07/2013JC/LP/MD2 Création d’une zone de travail Dans votre environnement personnel de travail, créer une directory Ex:TP_PPC_2013.
La mémoire virtuelle Dans laquelle un ordinateur exécute des programmes dont les besoins en mémoires dépassent la mémoire disponible. Par exemple des.
Novembre 2014J.Callot L.Piedfort1 TP1 Enoncé. novembre 2014J.Callot L.Piedfort2 Objectifs Générer un environnement de travail avec Code Warrior Prendre.
Création d’un domaine Il faut :
Les variables fichiers. Le type fichier On manipule les fichiers par l’intermédiaire de structures FILE décrites dans stdio.h FILE *monFichier; –Nom physique.
TP5 Enoncé DMA MEM MEM. objectif Utiliser un canal DMA pour faire un transfert d’une zone mémoire vers une autre zone mémoire On fera le transfert sans.
18/09/2013JC LP MD1 Cours_2. 18/09/2013JC LP MD2 Mapping de configuration.
TP1 Enoncé 12/08/2013 JC/LP/MD.
Création d’un projet (10) Cadepa 6-12 pour API TSX-37
Conception des pages Web avec
13/08/2013JC/LP/MD1 TP2 Enoncé. 13/08/2013JC/LP/MD2 Objectif Gérer la liaison série en polling Envoi d’un caractère § au démarrage Faire l’écho des caractères.
LOGICIEL PL7 MICRO PROGRAMMATION MISE AU POINT Consignes?
L. Gurret – M. Herve – P. Mignon – J. Prarioz. Introduction  Dernière étape d’analyse  Cahier des charges, spécifications et conception orientée objet.
14/08/2013JC/LP/MD1 TP3 Enoncé. 14/08/2013JC/LP/MD2 Objectif Gérer la liaison série avec la réception en interruption On utilisera le Hardware Vector.
Scénario Les scénarios permettent de modifier la position, taille … des calques au cours du temps. Son fonctionnement est très proche de celui de Macromedia.
Les calques Les Template (modèles) Les Comportements Les scénarios Les formulaires Les CSS Le serveur Web de l’UTC Présentation.
FACTORY systemes Module 5 Section 1 Page 5-3 Les scripts de traitement FORMATION INTOUCH 7.0.
Abes agence bibliographique de l’enseignement supérieur Les scripts.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
1 UNIX AVANCE Yves PAGNOTTE – Janvier – LES PROCESSUS SOUS UNIX.
Transcription de la présentation:

jc/md/lp-01/05TTY_IT : présentation1 TTY_IT Présentation

jc/md/lp-01/05TTY_IT : présentation2 Objectif du chapitre Écrire un programme qui va communiquer avec une liaison série La transmission se fera en polling La réception sera gérée par interruption On utilisera la deuxième liaison série connectée sur lIRQ3

jc/md/lp-01/05TTY_IT : présentation3 Rappel : principe des interruptions Deux composants logiciels pour gérer les interruptions –ISR : Interrupt Service Routine Code très court qui fait le traitement le plus court possible retourne un numéro logique dIT –IST : Interrupt Service Thread Traite linterruption

jc/md/lp-01/05TTY_IT : présentation4 Rappel : déroulement du traitement Une IT physique se produit Le gestionnaire dexception lance lISR associé à cette interruption LISR retourne le numéro logique au noyau Le noyau arme un événement pour déclencher lIST associé LIST est déclenchée La commande IOCTL est exécutée

jc/md/lp-01/05TTY_IT : présentation5 Rappel : IST Thread en mode user de forte priorité En attente dun événement associé à lIT logique Réveillé lorsque le Kernel signale lévénement Traite linterruption Acquitte linterruption

jc/md/lp-01/05TTY_IT : présentation6 Synchronisation IST/DRIVER L IST va faire lacquisition du caractère reçu et le stockera dans un buffer temporaire ucBufIn Pour signaler au driver quun caractère a été acquis, nous utiliserons un autre EVENT géré par un handle nommé hMonEvent LIST positionne cet EVENT Le driver fait le traitement demandé puis acquitte lEVENT

jc/md/lp-01/05TTY_IT : présentation7 Gestion du port série en IT On utilise le port 2 IT physique 0x3 (IRQ 3) IT logique (dwSYSINTR_A_Moi) Adresse du port 0x2F8

jc/md/lp-01/05TTY_IT : présentation8 IOCTL On va définir deux IOCTL internes au driver –IOCTL_PUTC envoi de caractère en polling –IOCTL_GETC réception de caractère sous IT On va définir un IOCTL pour la communication driverISR (envoi du numéro logique de lIT) –IOCTL_VAL_SYSINTR

jc/md/lp-01/05TTY_IT : présentation9 plate-forme de travail Générer une nouvelle plate-forme standard Nom : z_CEPC_TTY_IT Retirer de la configuration de base la gestion des ports série présente par défaut pour éviter des conflits

jc/md/lp-01/05TTY_IT : présentation10 Retirer le port série (1) Onglet Features Dérouler larborescence Z_CEPC_TTY_IT features CEPC: x86 Devices Drivers Serial Cliquer à droite pour ouvrir le menu Cliquer Delete

jc/md/lp-01/05TTY_IT : présentation11 Retirer le port série (2) Dérouler jusquà Serial puis clic droit Cliquer

jc/md/lp-01/05TTY_IT : présentation12 Configuration obtenue

jc/md/lp-01/05TTY_IT : présentation13 DRIVER

jc/md/lp-01/05TTY_IT : présentation14 Création du driver Dans File : Choisir New Project or File Nommer Choisir Valider

jc/md/lp-01/05TTY_IT : présentation15 Choix du projet Valider Choisir

jc/md/lp-01/05TTY_IT : présentation16 Fichier source obtenu

jc/md/lp-01/05TTY_IT : présentation17 Création du fichier.def (1) Nous devons créer TTYIT_DRV.def Puis lajouter au projet On peut –Créer directement dans le projet un nouveau fichier de type Text File –Ajouter un fichier créé à lavance dans un répertoire

jc/md/lp-01/05TTY_IT : présentation18 Création directe du fichier.def (1) Onglet Files Nommer Cocher Valider Choisir

jc/md/lp-01/05TTY_IT : présentation19 TTYIT_DRV.def LIBRARY TTYIT_DRV EXPORTS TTY_Init TTY_Deinit TTY_Open TTY_Close TTY_IOControl

jc/md/lp-01/05TTY_IT : présentation20 Insertion de TTYIT_DRV.def (1) Créer le fichier Enregistrer ce fichier dans le répertoire …\WINCE420\PUBLIC\z_CEPC_TTY_IT\TTYIT_DRV Ajouter ce fichier au projet –Cliquer à droite sur le répertoire Source Files –Dans le menu choisir Add Files to Folder… –Dans la fenêtre ouverte, choisir le fichier à insérer –Valider

jc/md/lp-01/05TTY_IT : présentation21 Insertion de TTYIT_DRV.def (2)

jc/md/lp-01/05TTY_IT : présentation22 Insertion de TTYIT_DRV.def (3)

jc/md/lp-01/05TTY_IT : présentation23 Structure du driver

jc/md/lp-01/05TTY_IT : présentation24 Entête du driver (1) #include nécessaires #include "stdafx.h" #include

jc/md/lp-01/05TTY_IT : présentation25 Entête du driver (2) // Définitions et réservations // Définition des bits de status du sérialiseur #define LS_TSR_EMPTY0x40 #define LS_THR_EMPTY0x20 #define LS_RX_BREAK0x10 #define LS_RX_FRAMING_ERR0x08 #define LS_RX_PARITY_ERR0x04 #define LS_RX_OVERRRUN0x02 #define LS_RX_DATA_READY0x01

jc/md/lp-01/05TTY_IT : présentation26 Entête du driver (3) // Définition des offsets des registres du sérialiseur #define comRxBuffer0 #define comTxBuffer0 #define comDivisorLow0 #define comDivisorHigh1 #define comIntEnable1 #define comFIFOControl2 #define comLineControl3 #define comModemControl4 #define comLineStatus5

jc/md/lp-01/05TTY_IT : présentation27 Entête du driver (4) // Définition des IOCTL #define IOCTL_PUTC \ CTL_CODE(FILE_DEVICE_UNKNOWN,2048,\ METHOD_BUFFERED,FILE_ANY_ACCESS) #define IOCTL_GETC \ CTL_CODE(FILE_DEVICE_UNKNOWN,2049,\ METHOD_BUFFERED,FILE_ANY_ACCESS) #define IOCTL_VAL_SYSINTR \ CTL_CODE(FILE_DEVICE_UNKNOWN,2050,\ METHOD_BUFFERED,FILE_ANY_ACCESS)

jc/md/lp-01/05TTY_IT : présentation28 Entête du driver (5) // Adresse de base du sérialiseur #define IoPortBase ((PUCHAR) 0x02F8) // Interruptions #define ItPhysique 0x3 // Définition de la structure à passer à lIST typedef struct _ISTDATA { HANDLE hThread; // IST Handle DWORD sysIntr; // Logical ID HANDLE hEvent; // Handle to the EVENT volatile BOOL bAbort; // Flag de fin }ISTDATA;

jc/md/lp-01/05TTY_IT : présentation29 Entête du driver (6) // Prototype de l'IST DWORD TTYIST(void *); DWORD dwSYSINTR_A_Moi; // TODO: Réservations diverses

jc/md/lp-01/05TTY_IT : présentation30 Entrée du driver BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { return TRUE; }// Fin DllMain

jc/md/lp-01/05TTY_IT : présentation31 TTY_Init (1) DWORD TTY_Init(DWORD dwContext) { // TODO: Déclarations diverses // TODO: Initialisation des registres du sérialiseur // pas d'IT sur Receiver Ready (sera fait dans Open) // 9600 bauds, 8 bits, pas de parité, DTR, RTS // pas de FIFO // TODO: Mettre OUT2 du à 1 pour autoriser // les IT globalement (pas indiqué dans la // documentation du !)

jc/md/lp-01/05TTY_IT : présentation32 TTY_Init (2) // TODO: Récupération d'un numéro dIT logique // TODO: Chaînage de l'ISR // TODO: Passage du numéro IT Logique à l'ISR // TODO: Création de lévénement de lien pour lIST // handle pour EVENT à nommer hIstEvent

jc/md/lp-01/05TTY_IT : présentation33 TTY_Init (3) // TODO : Création de lévénement de synchro // IST/driver à nommer hMonEvent // TODO : Initialisation de la structure // TODO : Inhibition (Disable) de linterruption logique // TODO : Création et démarrage du thread IST

jc/md/lp-01/05TTY_IT : présentation34 TTY_Init (4) // TODO : Connexion de lIT logique avec lévénement // TODO : Mise en priorité maximale du thread }// Fin TTY_Init

jc/md/lp-01/05TTY_IT : présentation35 TTY_Deinit BOOL TTY_Deinit(DWORD hDeviceContext) { // TODO: Mise du flag bAbort à TRUE pour arrêter l'IST // TODO: Inhibition (Disable) de lIT physique // InterruptDisable // TODO: Fermeture des handles }// Fin TTY_Deinit

jc/md/lp-01/05TTY_IT : présentation36 TTY_Open DWORD TTY_Open(DWORD hDeviceContext, DWORD AccessCode, DWORD ShareMode) { // TODO: Initialisations complémentaires du périphérique // TODO: Vidage du buffer de réception si nécessaire // TODO: Autoriser l'IT Receiver Ready return !0; }// Fin TTY_Open

jc/md/lp-01/05TTY_IT : présentation37 TTY_Close BOOL TTY_Close(DWORD hOpenContext) { // TODO: Inhiber l'IT Receiver Ready }// Fin TTY_Close

jc/md/lp-01/05TTY_IT : présentation38 TTY_IOControl (1) BOOL TTY_IOControl(DWORD hOpenContext, DWORD dwCode, PBYTE pBufIn, DWORD dwLenIn, PBYTE pBufOut, DWORD dwLenOut, PDWORD pdwActualOut) { switch(dwCode) {

jc/md/lp-01/05TTY_IT : présentation39 TTY_IOControl (2) case IOCTL_PUTC: // TODO: Attente transmetteur Ready // TODO: Envoi du caractère break;

jc/md/lp-01/05TTY_IT : présentation40 TTY_IOControl (3) case IOCTL_GETC: // TODO: Attente de lEvent hMonEvent // TODO: Écriture du caractère dans le buffer // de sortie. Le caractère lu sur IT est dans // ucBufIn, variable globale // TODO: Reset de lEVENT hMonEvent break;

jc/md/lp-01/05TTY_IT : présentation41 TTY_IOControl (4) }// Fin du switch // Informe lapplication quun caractère a été lu *pdwActualOut=1; return TRUE; }// Fin TTY_IOControl

jc/md/lp-01/05TTY_IT : présentation42 IST

jc/md/lp-01/05TTY_IT : présentation43 IST (1) DWORD TTYIST(void *p) { ISTDATA *pData; pData=(ISTDATA*)p; // TODO: Boucle tant que bAbort = FALSE { // TODO: Attente de lévénement associé à lIT // TODO: Traitement de l'interruption // TODO: Lecture du caractère reçu; // on le met dans ucBufIn

jc/md/lp-01/05TTY_IT : présentation44 IST (2) // TODO: Positionner hMonEvent pour prévenir // le driver // TODO: Informer lOS que lIT est traitée // InterruptDone }// Fin boucle return 0; }// Fin TTYIST

jc/md/lp-01/05TTY_IT : présentation45 Structure de lISR

jc/md/lp-01/05TTY_IT : présentation46 Création du projet ISR (1) Nommer Valider Choisir

jc/md/lp-01/05TTY_IT : présentation47 Création du projet ISR (2) Choisir Valider

jc/md/lp-01/05TTY_IT : présentation48 TTYISR.cpp

jc/md/lp-01/05TTY_IT : présentation49 Création de TTYISR.def Mettre le fichier TTYISR.def dans le projet par lune des méthodes déjà rencontrées –Création dun nouveau fichier de type texte sous Platform Builder (directement inséré dans le projet) –Création du fichier sous un éditeur de texte dans le répertoire TTYISR puis addition au projet

jc/md/lp-01/05TTY_IT : présentation50 TTYISR.def LIBRARY TTYISR EXPORTS ISRHandler IOControl

jc/md/lp-01/05TTY_IT : présentation51 ISR (1) #include "stdafx.h" #include // Définition de lIOCTL de communication driver/ISR #define IOCTL_VAL_SYSINTR \ CTL_CODE(FILE_DEVICE_UNKNOWN,2050,\ METHOD_BUFFERED,FILE_ANY_ACCESS)

jc/md/lp-01/05TTY_IT : présentation52 ISR (2) DWORD dwSYSINTR_A_Moi; // Entrée de l'ISR BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { return TRUE; }

jc/md/lp-01/05TTY_IT : présentation53 ISR (3) BOOL IOControl( DWORD InstanceIndex, DWORD IoControlCode, LPDWORD pInBuf, DWORD InBufSize, LPDWORD pOutBuf, DWORD OutBufSize, LPDWORD pBytesReturned) { switch(IoControlCode) {

jc/md/lp-01/05TTY_IT : présentation54 ISR (4) case IOCTL_VAL_SYSINTR: // TODO: Récupérer la valeur de // dwSYSINTR_A_Moi break; }// Fin switch // Informe lapplication quun caractère a été lu *pBytesReturned = 1; return TRUE; }// Fin IOControl

jc/md/lp-01/05TTY_IT : présentation55 ISR (5) DWORD ISRHandler(DWORD InstanceIndex) { //Test que IT bien active,status en 0x2F8 +5, RxRdy bit 0 __asm { mov dx,02FDh in al,dx and al,01h jnz it_a_moi } //it_pas_a_moi: return SYSINTR_CHAIN; it_a_moi: return dwSYSINTR_A_Moi; }

jc/md/lp-01/05TTY_IT : présentation56 Application

jc/md/lp-01/05TTY_IT : présentation57 Applicaton Application qui utilise le driver TTYIT_DRV Le programme est très simple, il doit : –Écrire un $ avec IOCTL_ PUTC –Boucler jusquà la réception du caractère ESCAPE (0x1B) Attendre la réception dun caractère avec IOCTL_GETC Envoyer lécho avec IOCTL_PUTC –Se terminer après la réception de ESCAPE

jc/md/lp-01/05TTY_IT : présentation58 Création de lapplication (1) Choisir New Project or File Choisir Nommer Valider

jc/md/lp-01/05TTY_IT : présentation59 Création de lapplication (2) Valider Choisir

jc/md/lp-01/05TTY_IT : présentation60 TTYIT_APP.cpp

jc/md/lp-01/05TTY_IT : présentation61 Application (1) // TODO: #include nécessaires // Définition des IOCTL #define IOCTL_PUTC \ CTL_CODE(FILE_DEVICE_UNKNOWN,2048,\ METHOD_BUFFERED,FILE_ANY_ACCESS) #define IOCTL_GETC \ CTL_CODE(FILE_DEVICE_UNKNOWN,2049,\ METHOD_BUFFERED,FILE_ANY_ACCESS)

jc/md/lp-01/05TTY_IT : présentation62 Application (2) int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { // TODO: Initialisations et réservations // TODO: Chargement du driver // TODO: Ouverture du driver

jc/md/lp-01/05TTY_IT : présentation63 Application (3) // Envoi d'un $ // TODO: Appel de IOCTL_PUTC // TODO: Boucle tant que pas caractère Escape { // TODO: Appel de IOCTL_GETC // TODO: Appel de IOCTL_PUTC }// Fin boucle

jc/md/lp-01/05TTY_IT : présentation64 Application (4) // TODO: Déchargement du driver // TODO: Fermeture des handles }// WinMain

jc/md/lp-01/05TTY_IT : présentation65 Configuration pour lapplication Choisir Valider Choisir Settings…

jc/md/lp-01/05TTY_IT : présentation66 Configuration pour lISR Choisir Valider Choisir Settings… Vérifier

jc/md/lp-01/05TTY_IT : présentation67 Configuration pour le driver Choisir Valider Choisir Settings…

jc/md/lp-01/05TTY_IT : présentation68 Option pour la génération LISR doit être généré sans les « C Run Times » Il faut modifier les options pour lédition de lien pendant la génération

jc/md/lp-01/05TTY_IT : présentation69 Configuration de lédition de liens Choisir puis click droit Choisir

jc/md/lp-01/05TTY_IT : présentation70 Options de lédition de liens Modifier Choisir Valider

jc/md/lp-01/05TTY_IT : présentation71 Project Options pour lISR coredll.lib/nologo /base:"0x " /base:"0x " /stack:0x10000,0x1000/entry:"DllMain"/dll/incremental:no/pdb:"CEPC__X86Rel/TTYISR.pdb" /machine:IX86 /nodefaultlib:"OLDNAMES.lib" /nodefaultlib:"$(CENoDefaultLib)" /machine:IX86 /nodefaultlib:"OLDNAMES.lib" /nodefaultlib:"$(CENoDefaultLib)" /def:".\TTYISR.def" /out:"CEPC__X86Rel/TTYISR.dll" /implib:"CEPC__X86Rel/TTYISR.lib" /out:"CEPC__X86Rel/TTYISR.dll" /implib:"CEPC__X86Rel/TTYISR.lib" /subsystem:$(CESubsystem)

jc/md/lp-01/05TTY_IT : présentation72 Insertion dans le noyau Contrairement aux exécutables et aux drivers, lISR ne sexécute pas en mode user mais en mode superviseur Il faut empêcher le système dopérer des translations dadresse sur les zones de code et de données des ISR Pour obtenir ce résultat il faut préciser que lISR doit être dans une section « FILES » au lieu dune section « MODULES » dans les listes du fichier project.bib

jc/md/lp-01/05TTY_IT : présentation73 Insertion de lISR dans project.bib Choisir Dérouler Ouvrir (double clic) Vérifier (clic droit)

jc/md/lp-01/05TTY_IT : présentation74 Ajouter TTYISR.dll Bloc mémoire Options RépertoireNom du fichier

jc/md/lp-01/05TTY_IT : présentation75 Génération noyau et driver Il ny a plus qua faire le build … Et tester

jc/md/lp-01/05TTY_IT : présentation76 Debug Mettre le mode Debug et modifier les options –Platform Settings Build Options Cocher Enable Event Tracking During Boot Enable Full Kernel Mode Enable Kernel Debugger Enable Profiling Vérifier toutes les options –Platform Settings (Build avec ou sans image) –Project Settings (Link…)

jc/md/lp-01/05TTY_IT : présentation77 Options de débogage Choisir Ouvrir Mode Debug Choisir Valider Cocher les options

jc/md/lp-01/05TTY_IT : présentation78 Configuration pour lISR Choisir Valider Choisir Settings… Choisir

jc/md/lp-01/05TTY_IT : présentation79 Configuration pour lapplication Choisir Valider Choisir Settings…

jc/md/lp-01/05TTY_IT : présentation80 Configuration pour le driver Choisir Valider Choisir Settings…

jc/md/lp-01/05TTY_IT : présentation81 Configuration de lédition de liens Choisir puis click droit Choisir

jc/md/lp-01/05TTY_IT : présentation82 Options pour lédition de liens Choisir Valider Choisir Modifier

jc/md/lp-01/05TTY_IT : présentation83 Project Options pour lISR coredll.lib coredll.lib/nologo /base:"0x " /base:"0x " /stack:0x10000,0x1000/entry:"DllMain"/dll/incremental:no /pdb:"CEPC__X86Dbg/TTYISR.pdb« /pdb:"CEPC__X86Dbg/TTYISR.pdb« /debug /debug /machine:IX86 /nodefaultlib:"OLDNAMES.lib" /nodefaultlib:"$(CENoDefaultLib)" /machine:IX86 /nodefaultlib:"OLDNAMES.lib" /nodefaultlib:"$(CENoDefaultLib)" /def:".\TTYISR.def" /out:"CEPC__X86Dbg/TTYISR.dll" /implib:"CEPC__X86Dbg/TTYISR.lib" /out:"CEPC__X86Dbg/TTYISR.dll" /implib:"CEPC__X86Dbg/TTYISR.lib" /subsystem:$(CESubsystem)

jc/md/lp-01/05TTY_IT : présentation84 Kernel Debugger Utiliser le Kernel Debugger pour visualiser les interruptions Vérifier les numéros de process et de threads Examiner la chronologie des threads application, driver, ISR et IST Mesurer les temps dexécution

jc/md/lp-01/05TTY_IT : présentation85 Conclusion Nous avons : Réalisé un ensemble driver/ISR/IST pour gérer une interruption provenant du sérialiseur Réalisé une application recevant un caractère du sérialiseur avec une gestion par IT Examiné avec le Kernel Debugger les différents threads et leur chronologie