Haute école spécialisée bernoise
Technique et informatique
Section Electricité et systèmes de communication
Laboratoire d’informatique technique
Informatique 3
Microordinateur
Programmation assembleur
Interface C / Assembleur
© 2008 HESB-TI / Dr E. FIROUZI
Dernier changement : Juin 2008
Auteur : Dr E FIROUZI
Version : 3.1
Informatique 3 Avant propos
Version 3.1, juin 2008 Page I
Avant propos
Ce manuscrit est distribué aux étudiants du module « Informatique 3 » de la section Electricité et système de
communication de la Haute école spécialisée bernoise. Il est complété par des exercices, qui sont distribués en
supplément durant le cours, et un projet, qui est réalisé à la fin du semestre.
La première partie du manuscrit traite la structure d’un microordinateur. Cette partie comprend l’organisation de
la CPU et sa connexion avec les composants externes. La seconde partie du manuscrit introduit la
programmation en assembleur. Cette introduction s’effectue avec des exemples, qui se basent sur un
microcontrôleur RISC à 32 bits : le PXA270 de Intel. La dernière partie du manuscrit traite l’interface C –
assembleur, en se référant aux cours de C (modules informatiques 1 et 2).
Toutes les exercices et le projet sont réalisés avec le kit de développement CARME, qui est introduit au
deuxième semestre.
Des information supplémentaires sont mises à disposition sur le site: http://prof.hti.bfh.ch/fue1
A la fin de ce module, les étudiants sont en mesure de :
1) Concevoir un schéma hardware contenant un microcontrôleur, de la mémoire externe et des composants
périphériques
2) Réaliser un projet en C et assembleur
Un grand remerciement à G. KRUGER et R. WEBER pour définition de la version originale du manuscrit en
allemand ; ainsi qu’à M. MÜHLEMANN et E. STUCKI pour la mise en place de l’environnement de
développement.
Bienne, septembre 2008
E. FIROUZI
Informatique 3 Table des matières
Version 3.1, juin 2008 Page II
Table des matières
1 Architecture d’un microordinateur standard ....................................................................................................1
1.1 Les catégories des ordinateurs................................................................................................................. 1
1.1.1 La classification selon Flynn........................................................................................................... 1
1.1.2 La communication chez les ordinateurs MIMD.............................................................................. 2
1.2 Les architectures des microordinateurs ................................................................................................... 3
1.2.1 L’architecture de Von Neumann ..................................................................................................... 3
1.2.2 L’Architecture de Harvard .............................................................................................................. 4
1.3 La CPU.................................................................................................................................................... 4
1.4 Le système de bus ................................................................................................................................... 5
1.4.1 Les bus d’adresse, de données et de contrôle.................................................................................. 5
1.4.2 Le plan de mémoire......................................................................................................................... 7
1.4.3 Le décodeur d’adresse..................................................................................................................... 8
1.5 La mémoire ............................................................................................................................................. 9
1.5.1 Les technologies.............................................................................................................................. 9
1.5.2 L’organisation de la mémoire........................................................................................................ 10
1.5.3 Les architectures............................................................................................................................ 10
1.5.4 La documentation.......................................................................................................................... 12
1.6 La hiérarchie de la mémoire.................................................................................................................. 13
1.7 La MMU ............................................................................................................................................... 14
1.7.1 Les adresses physiques et virtuelles .............................................................................................. 14
1.7.2 Pages et trames, Tableau de pages ................................................................................................ 15
1.7.3 Les tampons auxiliaires de traduction...........................................................................................16
1.8 DMA ..................................................................................................................................................... 17
1.9 La périphérie ......................................................................................................................................... 18
1.9.1 Les amplificateurs de sortie........................................................................................................... 18
1.9.2 Digital Input / Output.................................................................................................................... 19
1.9.3 L’interface rielle ........................................................................................................................ 20
1.9.4 Le timer......................................................................................................................................... 25
1.9.5 Les convertisseurs A/D ................................................................................................................. 26
1.9.6 Les convertisseurs D/A ................................................................................................................. 26
1.10 Les types de processeur......................................................................................................................... 27
1.10.1 Les microprocesseurs.................................................................................................................... 27
1.10.2 Les microcontrôleurs..................................................................................................................... 27
1.10.3 Les DSP......................................................................................................................................... 27
1.10.4 CISC / RISC27
1.11 Exemple de famille de microcontrôleur................................................................................................ 27
1.12 Les critères pour le choix d'un microcontrôleur.................................................................................... 28
2 Le microcontrôleur PXA270..........................................................................................................................30
2.1 L’architecture ARM.............................................................................................................................. 30
2.2 Intel XScale........................................................................................................................................... 33
2.2.1 L’architecture XScale.................................................................................................................... 33
2.2.2 Le coeur d’exécution du XScale ................................................................................................... 34
2.2.3 Le super pipeline du XScale.......................................................................................................... 35
2.3 Le PXA270 de XScale .......................................................................................................................... 37
2.3.1 Les propriétés................................................................................................................................ 37
2.3.2 Le diagramme de bloc................................................................................................................... 38
2.4 Les modes de fonctionnement............................................................................................................... 39
2.5 Le modèle des registres......................................................................................................................... 39
2.6 CPSR Current Program Status Register ................................................................................................41
2.7 Les bits d’état........................................................................................................................................ 41
Informatique 3 Table des matières
Version 3.1, juin 2008 Page III
2.8 Les modèles de mémoire et les format de données ............................................................................... 43
2.9 Le plan de mémoire du PXA270........................................................................................................... 44
2.10 Le plan de mémoire du CARME........................................................................................................... 45
2.11 Le schéma des pins................................................................................................................................ 46
2.12 Connexion des composants Flash et SDRAM....................................................................................... 46
2.13 Schéma hardware avec le PXA270 & la mémoire ................................................................................ 48
3 La programmation en assembleur ..................................................................................................................49
3.1 Introduction........................................................................................................................................... 49
3.2 Les niveaux des langages de programmation........................................................................................ 49
3.3 La structure d’un fichier en assembleur ................................................................................................ 50
3.4 La syntaxe assembleur .......................................................................................................................... 51
3.4.1 La structure d’une ligne assembleur.............................................................................................. 51
3.4.2 Les symboles................................................................................................................................. 53
3.4.3 Les constantes ............................................................................................................................... 53
3.4.4 Les opérateurs et les opérandes..................................................................................................... 54
3.5 L’environnement de développement..................................................................................................... 55
3.5.1 L’éditeur........................................................................................................................................ 56
3.5.2 L’assembler................................................................................................................................... 57
3.5.3 Le compilateur .............................................................................................................................. 57
3.5.4 Le relieur / locateur ....................................................................................................................... 58
3.5.5 Le débuggeur................................................................................................................................. 58
3.5.6 La gestion du projet....................................................................................................................... 58
4 Jeu d’instruction du processeur ARM V5 ......................................................................................................60
4.1 Les instructions ..................................................................................................................................... 60
4.1.1 La syntaxe des instructions ARM .................................................................................................62
4.1.2 La syntaxe de la notation............................................................................................................... 62
4.1.3 Exécution d’instruction conditionnelle..........................................................................................63
4.1.4 Le jeu d’instruction Thumb........................................................................................................... 64
4.1.5 Les coprocesseurs.......................................................................................................................... 65
4.2 La vue d’ensemble du jeu d’instructions............................................................................................... 65
4.3 Les transferts de données ...................................................................................................................... 65
4.3.1 Les instruction de transfert de données entre registres MOV, MVN................................................. 66
4.3.2 Le décalage à barilier (barrel shifter) ............................................................................................ 67
4.3.3 Les instructions de chargement de données LDR et STR ......................................................... 68
4.3.4 Modes d’adressage pour les instructions de chargement et de stockage ....................................... 69
4.3.5 L’instruction SWP.......................................................................................................................... 71
4.3.6 Chargement et stockage multiple LDM et STM .............................................................................. 72
4.3.7 Les instructions de la pile.............................................................................................................. 74
4.3.8 Les instructions d’état MRS et MSR ............................................................................................... 75
4.3.9 Les instructions du coprocesseur LDC, STC, MRC, MCR et CDP ................................................... 76
4.4 Les instructions arithtiques et logiques ............................................................................................ 77
4.4.1 L’arithmétique des entiers............................................................................................................. 78
4.4.2 Les instruction logiques ................................................................................................................ 81
4.4.3 Les instructions de décalage et de rotation.................................................................................... 82
4.5 Saut de programme ............................................................................................................................... 82
4.5.1 Généralité...................................................................................................................................... 82
4.5.2 Les sauts de programme inconditionnels ...................................................................................... 83
4.5.3 Les sauts de programmes conditionnels........................................................................................ 85
4.6 Les autres instructions ARM................................................................................................................. 86
4.6.1 Les interruptions software SWI..................................................................................................... 86
4.6.2 Les points d’arrêt BKPT ................................................................................................................ 87
4.6.3 Le comptage des zéros CLZ .......................................................................................................... 87
5 Les directives de l’assembleur .......................................................................................................................89
Informatique 3 Table des matières
Version 3.1, juin 2008 Page IV
5.1 Introduction........................................................................................................................................... 89
5.2 Aperçu................................................................................................................................................... 89
5.3 .arm, .thumb..................................................................................................................................... 90
5.4 .global, .extern ........................................................................................................................... 91
5.5 .align.................................................................................................................................................. 91
5.5.1 .balign ....................................................................................................................................... 92
5.5.2 .p2align.................................................................................................................................... 93
5.6 .ascii, .asciz................................................................................................................................93
5.7 .byte................................................................................................................................................... 94
5.7.1 .2byte, .hword ........................................................................................................................ 94
5.7.2 .word, .4byte .......................................................................................................................... 95
5.8 .space ................................................................................................................................................ 95
5.9 .include ........................................................................................................................................... 96
5.10 .equ, .set, =..................................................................................................................................... 96
5.11 .org..................................................................................................................................................... 97
5.12 .section ........................................................................................................................................... 97
5.13 .end................................................................................................................................................... 101
5.14 Les opérations assembleur .................................................................................................................. 101
5.15 Les structures de contrôle en assembleur............................................................................................ 102
5.15.1 L’assemblage conditionnel avec .if ......................................................................................... 102
5.15.2 L’assemblage conditionnel avec .ifdef .................................................................................. 103
5.15.3 L’assemblage conditionnel avec .ifndef ................................................................................. 103
5.16 La définition de macro avec .macro................................................................................................. 103
5.17 Les structures de répétitions en assembleur ........................................................................................ 104
5.17.1 La répétition avec .rept ........................................................................................................... 105
5.17.2 La répétition paramétrée avec .irp........................................................................................... 106
6 Les sous routines..........................................................................................................................................107
6.1 Introduction......................................................................................................................................... 107
6.2 Appel et retour de sous routine ........................................................................................................... 107
6.2.1 Appel de sous routine.................................................................................................................. 107
6.2.2 Appel emboîté de sous routine, pile............................................................................................ 108
6.3 La sauvegarde du contenu des registres .............................................................................................. 111
6.4 Le transfert des paramètres ................................................................................................................. 112
6.4.1 Le transfert de paramètres à l’aide de registre............................................................................. 112
6.4.2 Le transfert de paramètres avec la pile........................................................................................ 113
6.5 APCS................................................................................................................................................... 114
6.6 Définition de variable locaux .............................................................................................................. 115
6.7 Sources d’erreurs................................................................................................................................. 116
6.8 Comparaison entre sous routine et macro ........................................................................................... 117
7 Les interruptions et les exceptions ...............................................................................................................118
7.1 Introduction......................................................................................................................................... 118
7.2 Les propriétés des interruptions .......................................................................................................... 119
7.3 La priorité des exceptions et les modes du processeur........................................................................ 119
7.4 Les interruptions ................................................................................................................................. 120
7.5 Le masquage des interruptions............................................................................................................ 121
7.6 Le Tableau des vecteurs d’exception .................................................................................................. 122
7.7 Déroulement d’une requête d’interruption.......................................................................................... 123
7.8 Comportement temporel des interruptions.......................................................................................... 125
7.9 Le contrôleur d’interruption du PXA270 ............................................................................................ 126
7.10 Les variante pour le contrôleur d’interruption..................................................................................... 129
8 Les Structures de contrôle en assembleur ....................................................................................................131
8.1 Introduction......................................................................................................................................... 131
1 / 165 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !