Une interruption est traitée si elle est non masquée et les masquages sont
possibles à 2 niveaux :
•Globalement, avec le bit IRPTEN du registre MODE 1 (0 : masquée, 1
démasquée)
•Individuellement, avec les bits du registre IMASK (sauf le RESET)
•Ou encore par une autre interruption en cours, on les appelle alors
interruptions imbriquées (NESTED).
Lorsqu’une interruption est acceptée :
•Le compteur PC est poussé sur la pile,
•S’il s’agit d’une interruption IRQi, Timer ou multi-processeur, les
registres ASTAT et MODE1 sont empilés,
•La demande est effacée en remettant à 0 le bit IRPTL correspondant,
•L’instruction lue dans le pipe-line au cycle suivant (fetch) est la
première instruction du vecteur d’interruption associé,
•Tant que le programme d’interruption est en cours (avant l’instruction
RTI de retour d’interruption), le bit associé de IRPTL est forcé à 0
interdisant de mémoriser une nouvelle demande du même niveau
d’interruption. (Les interruptions sont traitées par priorité dans
l’ordre de la table IRPTL).
La Table IRPTL est donnée en annexe A.
Q1. Quel est le numéro de l’interruption du Timer dans cette table ?
Quel est le nom du registre autorisant la prise en compte d’une
interruption ? Et celui dans lequel est mémorisé le déclenchement ?
d. Quelques lignes d’assembleur
Vous remarquez que les adresses des vecteurs d’interruption sont
incrémentés de 4 systématiquement. Le DSP Sharc n’est pourtant pas une
architecture basée sur un alignement par octet.
Q2. A quel segment le bloc IRPTL est-il associé dans le fichier
LDF (reprenez l’ancien fichier LDF du 21061) ?
Quelle est la taille des mots adressés dans cet espace adressable ?
Finalement, pourquoi un vecteur IR correspond à 4 adresses ?
Le second vecteur IR correspond au vecteur de RESET du processeur. C’est
donc le point d’entrée de notre programme. Il fera appel à la fonction main
de l’application.
Q3. Quelle est l’adresse sur 32 bits du vecteur RESET ?
e. Le vecteur IRPTL, le vecteur RESET
Ouvrez un nouveau projet, ajoutez un nouveau fichier d’extension .asm.
Commencer par inclure la lib <def21061.h> qui contient tous les noms de
registres, les primitives de l’ISA de ce modèle de DSP.