9. Instructions diverses

  • nop() pass aucune opération.

  • wfi() Suspend l’exécution dans un état de faible consommation jusqu’à ce qu’une interruption survienne.

  • cpsid(flags) positionne le registre de masque de priorité (Priority Mask Register) - désactive les interruptions.

  • cpsie(flags) efface le registre de masque de priorité (Priority Mask Register) - active les interruptions.

  • mrs(Rd, special_reg) Rd = special_reg copie un registre spécial vers un registre général. Le registre spécial peut être IPSR (Interrupt Status Register) ou BASEPRI (Base Priority Register). L’IPSR fournit un moyen de déterminer le numéro d’exception d’une interruption en cours de traitement. Il contient zéro si aucune interruption n’est en cours de traitement.

Actuellement, les fonctions cpsie() et cpsid() sont partiellement implémentées. Elles requièrent mais ignorent l’argument flags et servent de moyen pour activer et désactiver les interruptions.