La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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.

Présentations similaires


Présentation au sujet: "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."— Transcription de la présentation:

1 14/08/2013JC/LP/MD1 TP3 Enoncé

2 14/08/2013JC/LP/MD2 Objectif Gérer la liaison série avec la réception en interruption On utilisera le Hardware Vector Mode pour les IT

3 14/08/2013JC/LP/MD3 Travail à effectuer Etudier la partie interruption du SCI du User Manual Etudier le INTC du User Manual Utiliser le Hardware Vector Mode pour les ITs Faire un programme qui envoie un § au démarrage attendre sur un flag qu’un caractère ait été pris en compte par le programme d’IT Afficher ce caractère reboucler jusqu’à l’arrivée d’un caractère de fin (ESC) Améliorer le programme en remplaçant le § par un message d’accueil et en envoyant un message de fin après la réception de ESC

4 14/08/2013JC/LP/MD4 Hardware Vector Mode

5 14/08/2013JC/LP/MD5 Mettre un « b to handler n » à l’adresse IVPR +n * (0x10) Il faut connaître la valeur du vecteur associé au serial (voir DOC) Il faut connaître la valeur de IVPR : il faut lire la valeur de IVPR dans une fonction en assembleur: instruction mfivpr rx (rx contient la valeur de IVPR) rx de r0 à r31 Ecrire une fonction qui fera le b to handler n Cette fonction qui ne doit pas faire plus de 4 mots de 32 bits sera recopiée a l’adresse IVPR + n * (0x10) par un memcpy par exemple Appelons cette fonction B_TO_PROG_IT (par ex)

6 14/08/2013JC/LP/MD6 Fonction B_TO_PROG_IT Appelons notre handler n :PROG_IT (par ex) Première méthode __asm void B_TO_PROG_IT(void) { b PROG_IT } Deuxieme methode __asm void B_TO_PROG_IT(void) { lis r3,PROG_IT@h ori r3,r3,PROG_IT@l mtlr r3 blr } Une de ces méthodes ne peut pas marcher Analyser le code généré et justifier le bon choix

7 14/08/2013JC/LP/MD7 PROG_IT Un programme d’interruption doit se terminer par une instruction spécifique afin de restituer le contexte Cette possibilité de return spécial n’existe pas en C Il faudra donc à la fin du PROG_IT insérer l’instruction assembleur « rfi » (return from interrupt)

8 14/08/2013JC/LP/MD8 Registres INTC à etudier MR CPR PSR EOIR Remarque :ne pas oublier les registres SIU et SCI


Télécharger ppt "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."

Présentations similaires


Annonces Google