L’ARM7TDMI est un cœur de microcontrôleur RISC 32 bits, basé sur l'architecture Von Neumann et développé par la société ARM
Les applications standards sont à exécuter en mode User. Les modes protégés ou avec privilège sont utilisés pour le traitement d'interruption ou l'accès à des ressources protégées. Pour ceux qui ont déjà utilisé un micro 8bits, vous voyez qu'on s'en éloigne et qu'on s'approche doucement de système se basant sur un système d'exploitation et d'utilisateurs ayant des droits bien définis comme sur un micro-ordinateur.
37 registres = ( 31 registres de travail + 6 registres d'état )
Ces registres ne sont pas accesibles en même temps, l'acces dépend du mode de fontionnement. Seul 16 registres de travail sont visibles à la fois.
Registres accessibles en fonction des modes de fonctionnement :
R0 | R1 | R2 | R3 | R4 | R5 | R6 | R7 | R8 | R9 | R10 | R11 | R12 | | | | CPSR |
---|
R13,R14 et R15 sont des registres reservés par le micro.
R13 est utilisé en tant que pointeur de pile
R14 est une pile de retour apres interruption.
R15 est utilisé en tant que pointeur programme
CPSR (Current Program Status Register) est le registre d'état du micro
R0 | R1 | R2 | R3 | R4 | R5 | R6 | R7 | R8 | R9 | R10 | R11 | R12 | | | | CPSR | SPSR |
---|
Même principe que pour le mode User/System, vous avez juste un registres en plus SPSR (Saved Program Status Register) qui correspond à l'état de CPSR avant le changement de mode.
R0 | R1 | R2 | R3 | R4 | R5 | R6 | R7 | | | | | | | | | CPSR | SPSR |
---|
Vous pouvez voir que les registres de R0 à R7 sont utilisables quelque soit le mode de fonctionnement, et qu'il est nécessaire de sauvegarder les registres R8 à R12 si vous passez en mode FIQ.