Je suis en train de déboguer un firmware sur un CPU famille de bras (Cortex M3). Le débogueur affiche les registres de la CPU, y compris un appelé «xPSR» qui comprend un sous-champ appelé «ISR». Le mode dans les registres de la CPU est 'Mode = Handler', ce qui signifie que le processeur m3 est en mode interruption au lieu du mode 'thread', ce que je connais. Je pense que cela doit être hexadécimal 15 (déc 21) et je suppose que c'est l'interruption "System Timer Tick 0B" à partir des commentaires de la table des vecteurs ISR. , et c'est le gestionnaire d'interruption de minuterie SysTick que je regarde. (Notez que parce que le code est assembleur un gestionnaire de défaut par défaut, où environ 100 étiquettes ASM différentes atterrissent à un endroit, il est difficile de dire à partir du code, qui J'ai appelé l'ISR.)Mise au point de Cortex M3 (ARM) Embedded - Comment savoir quel ISR est exécuté à partir de xPSR.ISR?
Cependant, je suis assez nouveau sur les puces Cortex M3, et ma connaissance de ARM7TDMI est tellement fanée de ne pas l'utiliser que Je ne m'en souviens pas. Et je ne peux pas trouver cela dans mes documents n'importe où.
Quelqu'un peut-il me dire comment comprendre cela?