Table des matières
ARM7TDMI
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
Caractéristiques
- Architecture 32/16bits (ARM v4T)
- Set d'instruction 32bits : ARM (plus performant)
- Set d'instruction 16bits : Thumb (plus compact)
- 0.9 MIPS/Mhz
- 37 registres de 32 bits
- 32×8 multiplieurs. Résultats sur 32 et 64bits
- Pipeline 3 niveaux
- Interface de debugage JTAG
T.D.M.I
- T: Thumb (support du jeux dinstruction 16 bits)
- D: Debug (permet le debuggage)
- M: Multiplieur
- I: ICE (In circuit emulator) pour debuggage temps réel dans le micro
Modes de fonctionnement
- User : Mode utilisateur, mode normal d'execution du programme, pas de privilège particulier.
- FIQ : Interruption urgente, donc qui doit être traité rapidement
- IRQ : Interruption normale, donc qui n'a pas besoin d'être traité rapidement
- Supervisor : Mode protégé pour le système d'exploitation
- Abord : Utilisé pour les erreurs d'adressage mémoire
- System : Mode utilisateur avec des privilèges
- Undefined : Le micro rentre dans ce mode s'il rencontre une instruction qu'il ne connait pas. cf: instruction coprocesseur
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.
Registres
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 :
Mode User ou System
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
Mode Supervisor, Abord, Undefined ou IRQ
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.
Mode FIQ
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.