IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Introduction au Motorola ColdFire


précédentsommaire

Annexes

Récapitulatif Instructions Adressage

Code condition des instructions :

Instruction C V Z N X
ADD X X X X X
ADDA          
ADDI X X X X X
ADDQ X X X X X
ADDX X X X X X
AND X X X X  
ANDI X X X X X
ASL X X X X X
ASR X X X X X
Bcc          
BCHG     X    
BCLR     X    
BRA          
BSET     X    
BSR          
BTST     X    
CLR X X X X  
CMP X X X X  
CMPA X X X X  
CMPI X X X X  
DIVS X X X X  
DIVU X X X X  
EOR X X X X  
EORI X X X X  
EXT X X X X  
EXTB X X X X  
JMP          
JSR          
LEA          
LINK          
LSL X X X X X
LSR X X X X X
MOVE X X X X  
MOVE from CCR          
MOVE from SR          
MOVE to CCR X X X X X
MOVE to SR X X X X X
MOVEA          
MOVEC          
MOVEM          
MOVEQ X X X X  
MULS X X X X  
MULU X X X X  
NEG X X X X X
NEGX X X X X X
NOP          
NOT X X X X  
OR X X X X  
ORI X X X X  
PEA          
RTE X X X X X
RTS          
Scc          
STOP X X X X X
SUB X X X X X
SUBA          
SUBI X X X X X
SUBQ X X X X X
SUBX X X X X X
SWAP X X X X  
TRAP          
TST X X X X  
ULNK          


Instructions et taille d'opérande :

Instruction B W L
ADD     X
ADDA     X
ADDI     X
ADDQ     X
ADDX     X
AND     X
ANDI     X
ASL     X
ASR     X
Bcc      
BCHG X   X
BCLR X   X
BRA      
BSET X   X
BSR      
BTST X   X
CLR X X X
CMP     X
CMPA     X
CMPI     X
DIVS   X X
DIVU   X X
EOR     X
EORI     X
EXT   X X
EXTB     X
JMP      
JSR      
LEA     X
LINK      
LSL     X
LSR     X
MOVE X X X
MOVE from CCR   X  
MOVE from SR   X  
MOVE to CCR   X  
MOVE to SR   X  
MOVEA   X X
MOVEC     X
MOVEM     X
MOVEQ     X
MULS   X X
MULU   X X
NEG     X
NEGX     X
NOP      
NOT     X
OR     X
ORI     X
PEA     X
RTE      
RTS      
Scc X    
STOP      
SUB     X
SUBA     X
SUBI     X
SUBQ     X
SUBX     X
SWAP   X  
TRAP      
TST X X X
ULNK      


Instructions et adressages :

Mode d'adressage Catégorie 1 Catégorie 2 Catégorie 3 Catégorie 4
Absolu X X    
Immédiat X X X  
Direct registre d'adresse       X
Direct registre de donnée X     X
Indirect registre d'adresse X X X X
Indirect registre d'adresse pré-décrémenté X X   X
Indirect registre d'adresse post-incrémenté X X   X
Indirect registre d'adresse avec déplacement et déplacement et index X X X X


Instruction Source Destination
ADD SUB Tous Direct registre de donnée
ADD SUB Direct registre de donnée Catégories 2 et 4
ADDA SUBA Tous Direct registre d'adresse
ADDI SUBI Immédiat Direct registre de donnée
ADDQ SUBQ Immédiat Catégorie 4
ADDX SUBX Direct registre de donnée Direct registre de donnée
AND Catégorie 1 Direct registre de donnée
AND Direct registre de donnée Catégories 2 et 4
ANDI Immédiat Direct registre de donnée
ASL et ASR Immédiat Direct registre de donnée
ASL et ASR Direct registre de donnée Direct registre de donnée
BCHG BCLR BSET BTSTS Immédiat Catégories 1 et 4
BCHG BCLR BSET BTSTS Direct registre de donnée Catégories 1 et 4
CLR   Catégories 1 et 4
CMP Tous Direct registre de donnée
CMPA Tous Direct registre d'adresse
CMPI Immédiat Direct registre de donnée
DIVS DIVU MULS MULU Catégorie 1 sauf immédiat et absolue Direct registre de donnée
EOR Direct registre de donnée Catégories 1 et 4
EORI Immédiat Direct registre de donnée
EXT EXTB Direct registre de donnée Direct registre de donnée
JMP JSR   Catégorie 3
LEA Catégorie 3 Direct registre d'adresse
LSL LSR Immédiat Direct registre de donnée Direct registre de donnée
MOVE Tous Catégories 1 et 4
MOVE from CCR MOVE from SR SR ou CCR Direct registre de donnée
MOVE to CCR MOVE to SR Direct registre de donnée SR ou CCR
MOVEA Tous Direct registre d'adresse
MOVEC Direct registre de donnée Registre de contrôle
MOVEM Liste de registre Indirect registre d'adresse ou indirect registre d'adresse avec déplacement
MOVEM Indirect registre d'adresse ou indirect registre d'adresse avec déplacement Liste de registre
MOVEQ Immédiat Direct registre de donnée
NEG NEGX NOT   Direct registre de donnée
OR Catégorie 1 Direct registre de donnée
OR Direct registre de donnée Catégories 2 et 4
ORI Immédiat Direct registre de donnée
PEA   Catégorie 3
Scc   Catégories 1 et 4
SWAP   Direct registre de donnée
TST   Tous

Simulateurs, compilateurs ...

Pour développer sur un microcontrôleur, rien ne remplacera jamais une carte d'évaluation. Néanmoins nous pouvons arriver à quelque chose de sérieux avec des outils disponibles gratuitement sur Internet.

L'émulateur de David Grant
c'est un logiciel libre sous licence GPL. Son installation ne pose pas de problème particulier.Télécharger, dézipper le répertoire sous Windows. ./configure puis make sous linux. Le binaire s'appelle ColdFire et peut être lancé en spécifiant un modèle (fichier du répertoire boards). Par défaut c'est un 5206e qui est lancé. L'interface est assez similaire au débogueur natif. La liste des commandes s'obtient en tapant "help".

A noter que les deux ports série sont accessibles en faisant un telnet sur les ports 5206 et 5207

L'assembleur de austexsoftware
Cetassembleur est un Freeware disponible en binaire pour Windows. Il fonctionne très bien sous Linux avec wine. Son utilisation est triviale : cfasm monfichier.s produira monfichier.o au format S19. Il est fourni avec un manuel très complet. Il permet de mettre en oeuvre un certain nombre de facilités de codage. Le fait qu'il n'ait pas de licence d'utilisation explicite est néanmoins un frein à son adoption en production. De plus, il n'y a aucune garantie quand à la continuation de son développement.

Motorola utilise un format de binaire très simple le : S19

Gcc
On peut trouver des chaînes de cross compilation pour ColdFire en format binaire sur le site deuclinx . Une fois installés sous linux ou cygwin les binaires sont dans /usr/local/m68k-uclinux-tools. Par défaut les options m5200, m5206e, m528X, m5307 et m5407 sont disponibles. Gcc utilisant la syntaxe AT&T on pourra utiliser le traducteur de Jan Kratochvil mot2as pour convertir les sources assembleur Motorola.
Gcc a l'avantage d'avoir une licence claire et d'être un produit sans conteste suivi et maintenu.

Free Embedded Tools from MicroAPL
MicroAPL fournit un certain nombre d'outils gratuits et fort utiles pour le développement sur ColdFire :

  • ColdFire Init : un générateur de code d'initialisation
  • PortAsm/68K for ColdFire : un outil permettant de porter du code 68k vers ColdFire
  • CF68KLib : une librairie permettant de faire tourner du code 68000 sur ColdFire

On trouvera ensuite tout un tas de produits commerciaux référencés sur le site deFreescale . Le plus célèbre étant l'IDECodeWarrior .

Liens


précédentsommaire

Copyright © 2005 Joris Dedieu. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.