2017-09-21 7 views
2

J'essayais d'activer les interruptions pour un mcu ARMv7A (Cortex-A8) et j'ai remarqué que je ne peux pas changer le bit I dans le registre CPSR en mode utilisateur, peu importe ce que j'essaie. J'ai lu un peu autour et il semble que c'est parce que je suis en mode USR.Activer l'interruption en mode utilisateur pour les processeurs ARMV7A

La seule solution pour appeler un SWI et modifier le SPSR dans le gestionnaire SWI?

+4

Vous devez être en mode Privileged pour modifier le bit I du processeur. – Gaurav

Répondre

1

En effet, vous ne pouvez pas désactiver ou activer les interruptions en mode utilisateur. Vous ne pouvez le faire qu'en mode privilégié.

Il est inhabituel de passer en mode utilisateur avec les interruptions désactivées. Normalement, vous exécutez seulement une très petite quantité de code avec des interruptions désactivées, car cela retarde la gestion de l'interruption suivante. Si vous exécutez une partie d'un gestionnaire d'interruption en mode utilisateur, commencez par faire ce qui doit être fait avant de réactiver les interruptions, puis passez en mode utilisateur.