WikiElectronique

Wiki sur l'électronique et l'informatique

Outils pour utilisateurs

Outils du site


arm7tdmi

ARM7TDMI

Cet article est une ébauche à compléter, vous pouvez partager vos connaissances en le modifiant.

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 R13 R14 R15 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 R13 R14 R15 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 R8 R9 R10 R11 R12 R13 R14 R15 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.

Les microcontroleurs utilisant un coeur ARM7TDMI

  • AT91SAM7 - Fabricant : Atmel
  • LPC - Fabricant : NXP (Anciennement Philips)

Documentation

arm7tdmi.txt · Dernière modification: 2017/12/06 16:12 (modification externe)