Programmation en Langage D'Assemblage: Cours N°1: Présentation Du CORTEX M3
Programmation en Langage D'Assemblage: Cours N°1: Présentation Du CORTEX M3
Programmation en Langage D'Assemblage: Cours N°1: Présentation Du CORTEX M3
LANGAGE D’ASSEMBLAGE
V.MAHOUT
C ’est pas
gagné !
Programme informatique…
= Séquence d'ordres numériques, appelées
instructions
lues en mémoire
codées sous forme binaire que l’on exprime (affichage)
souvent en héxadécimal
Ecrire un programme = Ecrire des séquences
binaires dans un espace mémoire accessible par un
processeur
Donc … c’est aussi ça !
Moi qui croyais
que c’était un
clavier pour
lépreux….
Soyons raisonnables….!
Utilisons
Le langage d’assemblage associé au processeur
Quelle
Un estAssembleur
assembleur la valeur hexadécimale
: programme qui traduit le listing en code
binaire
de 10011101000010100011
(Logiciel de traduction) ?
Et jouons : est sa valeur décimale ?
Quelle
1001 1101 0000 1010 0011
mov R1, #0xAA
=0x 9 D 0 A 3
Langage
Le=registre général d’assemblage
R1 du processeur reçoit la valeur
(((9*16+13)*16+0)*16+10)*10+3
170.
=643235
En héxa cela aurait donné : E3A010AA
Soit en binaire : 11100011101000000001000010101010
Les gros défauts
Langage d’assemblage propre à chaque
processeur….
Jeu d’instructions réduit et rudimentaire
Pénible et fastidieux
Très peu lisible
Impossible de développer de gros projets
Alors à quoi ça
sert ?
Avantages Est-ce plus
clair
maintenant ?
En programmation
Maîtrise « totale » du code exécuté
Optimisation (temps ou taille de code)
Pédagogeek
Lien SFO – Langage haut niveau
Comprendre un compilateur
Mieux appréhender : structures algorithmiques de
base, pointeurs, structures de données, variables
locales, passage d’arguments…
Quand utiliser
Exemple cedetype
d’insertion code ende langage?
langage
d’assemblage dans un programme en C
-----------------------------
Quand on n’a pas
int f(int x) le choix !
Besoin
{ d’efficacité (utilisation partielle par
insertion
int r0;dans un langage structuré)
__asm
Besoin de certification
{ d’accéder à des ressources très bas niveau
Besoin
ADD r0, x, 1
Besoin de EOR
mettrex,au r0,
point x(bogue vicieuse)
Besoin
} de hacker
return
Besoin x;
de développer un compilateur
}
Concrètement…
Appréhender le langage d’assemblage avec une
vision générique
les mécanismes de base sont toujours similaires
programmation modulaire systématique
M’sieur le Cortex
c’est même pô un
processeur !!
Objectifs supplémentaires
Se former en pratique (TP) avec
des méthodes et des outils de
développement avancés :
compilateur Keil µvision
Option
NVIC : gestionnaire
d’interruptions = chef
d’orchestre
Le cœur et le corps…
Le Cortex M3 est intégré à un circuit « complet » :
un microcontrôleur
NXP : LP17xx
FREESCALE : Kinetis
TI : Gamme Stellaris
AMTEL : AT91SAM
…
processeur…
Il se suffit à
lui-même !
Et pour vos TP… Proto n°1
La carte précédente
Un alimentation volante
Et pour vos TP… Proto n°2
PCB « industriel »
Ajout de mémoire…..
Le STM32 : une belle bête !