SlideShare une entreprise Scribd logo
Traduit et adapté de l’anglais
MIC7340
Introduction aux
microcontrôleurs
Mounir Boukadoum
Traduit et adapté de l’anglais
Comment additionne-t’on 147 et 332 ?
1. On écrit les deux nombres l’un au
dessus de l’autre
2. On les additionne colonne par
colonne avec les retenues
3. On note le résultat final
Traduit et adapté de l’anglais
Étapes
d’exécution
(programme)
Entrée des
données
Mémorisation
Accumulateur
de résultats
Sortie des
données
On peut reproduire les fonctions précédentes avec
des registres et compteurs logiques
• Pour être réalisés avec des circuits logiques, programme et données
doivent être encodés dans un format reconnu par les circuits => 1 et 0 !
Traduit et adapté de l’anglais
• Données numériques : direct
– Ex. 10dec = 1010bin
• Données non numériques : format numérique représentatif
– Ex. ‘A’  65dec = 01000001bin
• Instructions du programme : format numérique représentatif
– Ex. table d`instructions pour l`additionneur précédent
Encodage des Instructions et données
Traduit et adapté de l’anglais
Encodage des Instructions et données
• Un programme exécution consistera en une
séquence de nombres binaires :
Code d’opération Argument
Étape 1 : lire 1er nombre et mettre dans la case mémoire 17
Étape 2 : lire 2nd nombre et mettre dans la case mémoire 18
Étape 3 : Mettre 0 dans l’accumulateur et ajouter le
contenu de 17 à
.
.
.
• 147+332=479 => 017018117218619519
Traduit et adapté de l’anglais
Un automate logique simple pour
additionner deux nombres
• Vu de l’extérieur, le programme exécuté est :
017018117218619519
• Un machine capable d’exécuter le programme
automatiquement est dite ordinateur à programme
emmagasiné (stored program computer)
• Distinction des instructions et des arguments : Il faut un
interprète qui détermine le sens d’un chiffre selon sa
position. Cela demande :
– Un séquenceur de programme (Program counter)
– Un registre de sauvegarde des instructions et des données
– Un circuit de contrôle
Traduit et adapté de l’anglais
Ordinateur à programme emmagasiné
• Peut itérer les instructions
• Peut séparer les codes d’instructions des données
1
2
1
2
Commutateur :
1 : Lire entrée et mettre en mémoire
2 : Lire code d`instruction en mémoire
Adresse en
mémoire
Données
• Sans entrées, sorties
ou mémoire, c’est
un microprocesseur
(CPU)
Traduit et adapté de l’anglais
Jeux d’instructions
• CISC (complex instruction set)
– Grand nombre d’instructions
– Opérations de haut niveau en microcode
(simplifient l’usage de langages de
programmation de haut niveau)
– Ex.: Presque tous les processeurs pour
ordinateurs de bureau (Pentium, Athlon,
etc.)
• RISC (reduced instruction set)
– Nombre réduit d’instructions
– Opérations simples uniquement
– Exécution directe par le matériel (pas de
microcode)
– Facile d’ajouter de nouvelles capacités
– Ex. : ARM, PowerPC, MIPS
CISC
(Intel 486)
RISC
(MIPS
R4000)
#instructions 235 94
Addr. modes 11 1
Inst. Size
(bytes)
1-12 4
GP registers 8 32
Traduit et adapté de l’anglais
Architectures d’accès à la mémoire
Entrées/
sorties
Unité
Arithmétique et
logique
Programme
et données
A
D
A=Adresse
D=données
Machine de Von Neuman
Architecture de Harvard
Entrées/
sorties
Unité
Arithmétique et
logique
Programme
A
D
Données
(x2)
A
D
Traduit et adapté de l’anglais
Caractéristiques de mise en oeuvre
• Le CP a besoin d’une horloge
• L’accumulateur peut être multiple
et fait partie d’une unité
arithmétique et logique
• Des registres auxiliaires existent
avec des fonctions diverses
• Un CPU enrichi de mémoires
externes et d’interfaces au
monde extérieur forme un micro-
ordinateur
Traduit et adapté de l’anglais
CLAVIER
Port d'entrée
Port de sortie ÉCRAN
Port de sortie IMPRIMANTE
Port d'E/S DISQUE
Port d'E/S MODEM
Mémoire morte
ROM, EPROM,
EEPROM
Mémoire vive
RAM
CPU
(Unité centrale
de traitement)
UC
(Unité centrale)
Mémoire interne Micro-processeur Ports d'E/S Périphérique externes
Modem
externe
Clavier
Écran Imprimante

M
O
D
E
M
Ligne téléphonique
UC +
Disques
Micro-ordinateur
Traduit et adapté de l’anglais
Quelques ordinateurs
Nokia 6070
(ARM7 51MHz)
iPod classic
(ARM7 80MHz)
Game Boy Advanced
(ARM7 16.78MHz)
VAIO Z46TD
(Intel Core 2 Duo P9700 2.8GHz)
Desktop
(Intel Pentium D
3GHz, Nvidia 7900)
Traduit et adapté de l’anglais
Et ceux-ci aussi !
• Les systèmes embarqués comptent pour 94% des ventes
• Étendent les applications bien au delà des applications
bureautiques ou de gestion
Traduit et adapté de l’anglais
Périphérique
Port
Port Périphérique
Port Périphérique
Mémoire CPU
CPU
Mémoire
Périphérique
Port
Port Périphérique
Port Périphérique
Microcontrôleur
Microcontrôleur
(Microprocesseur)
• Micro-ordinateur à
ressources réduites
• « CPU » pour
systèmes embarqués
• Composantes
fondamentales d’un
micro-ordinateur
intégrées sur une puce
Traduit et adapté de l’anglais
CPU
Mémoire
Périphérique
Port
Port Périphérique
Port Périphérique
Mémoire
Port Périphérique
Microcontrôleur en mode expansible
• Forme intermédiaire entre un microprocesseur et un
microcontrôleur
Traduit et adapté de l’anglais
CPU
Mémoire
Alimentation
Port
Horloge
Mémoire
Port
Interrupt
Interrupt
Bus d'adresses
Bus de données
Bus de contrôle
Périphérique
Périphérique
Composants et interconnections
• Trois bus
fondamentaux
Traduit et adapté de l’anglais
Microcontrôleur en mode autonome
• Les bus sont
internes
Traduit et adapté de l’anglais
Microcontrôleur en mode d’adressage étendu
• Certains/tous les
bus sont
accessibles de
l’extérieur
Traduit et adapté de l’anglais
3
5xx Gen Summary …
32-bit ARM
Cortex™-M3
MCUs
16-bit ultra-
low power
MCUs
DSP
DSP+ARM
ARM
Cortex-A8
MPUs
Stellaris®
ARM® Cortex™-M3
MSP430™
Sitara™
ARM® Cortex™-A8
& ARM9
C6000™
DaVinci™
video processors
TI Embedded Processors
Digital Signal Processors (DSPs)
Microcontrollers (MCUs) ARM®-Based Processors
OMAP™
Software & Dev. Tools
Up to
100 MHz
Flash
8 KB to 256 KB
USB, ENET
MAC+PHY CAN,
ADC, PWM, SPI
Connectivity, Security,
Motion Control, HMI,
Industrial Automation
$1.00 to $8.00
300MHz to
>1GHz
Cache,
RAM, ROM
USB, CAN,
PCIe, EMAC
Industrial computing,
POS & portable
data terminals
$5.00 to $20.00
Up to
25 MHz
Flash
1 KB to 256 KB
Analog I/O, ADC
LCD, USB, RF
Measurement,
Sensing, General
Purpose
$0.25 to $9.00
300MHz to >1Ghz
+Accelerator
Cache
RAM, ROM
USB, ENET,
PCIe, SATA, SPI
Floating/Fixed Point
Video, Audio, Voice,
Security, Conferencing
$5.00 to $200.00
32-bit
real-time
MCUs
C2000™
Delfino™
Piccolo™
40MHz to
300 MHz
Flash, RAM
16 KB to 512 KB
PWM, ADC,
CAN, SPI, I2C
Motor Control,
Digital Power,
Lighting, Ren. Enrgy
$1.50 to $20.00
Ultra
Low power
DSP
C5000™
Up to 300 MHz
+Accelerator
Up to 320KB RAM
Up to 128KB ROM
USB, ADC
McBSP, SPI, I2C
Audio, Voice
Medical, Biometrics
$3.00 to $10.00
Multi-core
DSP
C6000™
24.000
MMACS
Cache
RAM, ROM
SRIO, EMAC
DMA, PCIe
Telecom test & meas,
media gateways,
base stations
$40 to $200.00
Traduit et adapté de l’anglais
La famille MSP430 : Architecture générale
• Bus interne de données interne de16 bits et
externe de 8 bits
• Jusqu’à 20 bits d’espace d’adressage
• Site web de TI
Traduit et adapté de l’anglais
La famille TMS430 : CPU de la famille 5xx
• Architecture RISC (Reduced
Instructions Set Computing)
– Nombre d’instructions réduit
– Architecture Von Neumann :
• Emmagasinage commun des
instructions et des données.
• Seize registres à 16-bits-20-bits
– 4 des registres (R0-R3) ont des fonctions
dédiées (PC, SP, SR, et générateur de
constantes) ;
– 12 sont à usage général (R4 -R15)
• Unité arithmétique et logique (ALU):
– Addition, soustraction, comparaison et
opérations logiques (AND, OR, XOR) ;
– Sémaphores pour débordement, zéro,
négatif, and bit de retenue
• Architecture optimisée pour les
compilateurs c
Traduit et adapté de l’anglais
MSP430F5438A Block Diagram
22
MSP-EXP430F5438 …
Traduit et adapté de l’anglais
Kits de démarrage (eZ430-RF2500) 1/2
• Outil de développement pour le microcontrôleur MSP430F2274 et le
transmetteur sans fil 2.4 Ghz CC2500;
• Circuit imprimé cible Z430-RF2500T détachable : peut être utilisé seul,
intégré dans un système, ou avec l`interface de débogage USB;
• Peut communiquer avec un PC par le bais du UART intégré dans le
MSP430.
• Alimentation autonome ou via le port USB
• 50 $
23
Traduit et adapté de l’anglais
Kit de démarrage eZ430-RF2500 :
MSP430F2274 et périphériques 2/2
• Performance de 16-MIPS;
• Convertisseur A-N à approximations successives avec 10 bits de
résolution et fréquence d`échantillonnage jusqu’à 200 ke/s
• Compteur/temporisateur de 16 bits
• 2 amplificateur opérationnels intégrés
• Compteur/temporisateur de 16 bits
• Chien de garde (« Watchdog timer »)
• Module sériel universel supportant UART/LIN, (2) SPI, I2C, or IrDA
• Taux de transfert de données programmable jusqu’à 500 kb/s
• 5 modes d’opération à faible courant (0.7 μA en mode standby)
• Transmetteur RF 2.4-GHz externe (CC2500)
24
Traduit et adapté de l’anglais
Organisation de l’espace mémoire
• Mémoire de travail
(primaire) : Suite de locations
ayant une adresse et un
contenu
– Le contenu peut être à lecture
seule (ROM) ou lecture/
écriture (RAM)
– Les mémoires à lecture seule
sont préprogrammées
• On peut aussi avoir des
mémoires secondaires (pour
l`emmagasinage de masse ou
à long terme) : disque dur,
DVD, flash, etc.
– Le mémoires secondaires
peuvent aussi être è lecture
seule ou lecture/écriture
Traduit et adapté de l’anglais
Accès à la mémoire
• Trois étapes :
1. Génération de l’adresse
sur le bus de données;
2. Spécification du mode
d’accès (ligne commune
r/w ou lignes rd et wr)
3. Lecture/écriture vers ou
à partir du bus de
données
Traduit et adapté de l’anglais
Cycle de fonctionnement d’un CPU
Traduit et adapté de l’anglais
Notation en complément de X
(a) Odomètre hypothétique montrant la notation en complément de 10; (b) Cercle de
nombres de 8 bits montrant la notation en complément de 2.
Traduit et adapté de l’anglais
Addition et Soustraction de nombres entiers à 8-Bit unipolaires
Traduit et adapté de l’anglais
Addition et Soustraction de nombres entiers à 8-Bit bipolaires
Traduit et adapté de l’anglais
Notation en virgule flottante
Traduit et adapté de l’anglais
Perspective du programmeur pour un
CPU simple
ACC
FLAGS
R0
R1
R2
Registers
R3
Memory
0000h
FFFFh
• Typique d’une architecture de Von Neumann
Traduit et adapté de l’anglais
Cycle de développement de
programme en assembleur absolu
Étapes de développement de
programme
• 017018117218619519 ?!
• On rend le programme plus lisible en
remplaçant les codes d’instructions
par des représentations
mnémoniques
– Ex. : 017  mov @17,A
• Un assembleur traduit à nouveau le
programme obtenu (en langage
« pour assembleur ») en langage
machine avant l’exécution
• Si les locations en mémoire sont
fixées à l’avance, on a un assembleur
absolu.
Traduit et adapté de l’anglais
Processus global
de génération de
code
• Des fichiers intermédiaires
sont générés
• Des fichiers d’information
sont aussi générés
• Un fichier de configuration
est aussi requis pour l’éditeur
de liens
EDITOR
ASSEMBLER
LINKER
LOCATOR
HEX Conversion
source file (*.s)
relocatable object file (*.o)
relocatable linked object file
absolute executable file (*.axf)
HEX-ASCII object file (*.hex)
DEVICE
PROGRAMMER
list file (*.lst)
linker map file (*.map)
locator map file (*.map)
programmed device
blank device
Other object files
from assembler
or HLL compilers
Target
Traduit et adapté de l’anglais
Processus global
de génération de
code
EDITOR
ASSEMBLER
LINKER/
LOCATOR
ADuC7026
Simulator
source file (*.s)
relocatable object file (*.o)
absolute executable file (*.axf)
ULink JTAG Pod
list file (*.lst)
map file (*.map)
Other object files
from assembler
or HLL compilers
ADuC7026
Hardware
HEX
conversion
Device
Programmer
JTAG POD
Device
Simulator
Target
hardware
Target
computer
Traduit et adapté de l’anglais
Example de code source
; Filename: sample.s
; Author: ECE 353 Staff
; Description: sample program for a ARM7tdmi
; do **NOT** use this as the basis for any programming!
EXPORT Reset_Handler ;make available to linker
IOPORT_ADDRESS EQU 0x80001000
AREA Reset, CODE, READONLY
ARM
Reset_Handler
LDR PC, aLoop ;load PC with program start address
Loop
LDR R0, aPort ;load address of port
LDR R1, [R0] ;read switch state
LSL R1, #8 ;shift left 8 bits to align
MVN R1, R1 ;complement
STR R1, [R0] ;write LEDs
NOP ;do nothing
B Loop ;repeat forever
aLoop DCD Loop ;
aPort DCD IOPORT_ADDRESS
END
Traduit et adapté de l’anglais
Listage du code généré (1)
5 …
6 00000000 EXPORT Reset_Handler ;make available t
o linker
7 00000000
8 00000000 80001000
IOPORT_ADDRESS
EQU 0x80001000
9 00000000
10 00000000 AREA Reset, CODE, READONLY
11 00000000 ARM
12 00000000
13 00000000 Reset_Handler
14 00000000 E59FF018 LDR PC, aLoop
15 00000004 Loop
16 00000004 E59F0018 LDR R0, aPort ;load address of po
rt
17 00000008 E5901000 LDR R1, [R0] ;read switch state
18 0000000C E1A01401 LSL R1, #8 ;shift left 8 bits
to align
19 00000010 E1E01001 MVN R1, R1 ;complement
20 00000014 E5801000 STR R1, [R0] ;write LEDs
21 00000018 E1A00000 NOP ;do nothing
22 0000001C EAFFFFF8 B Loop ;repeat forever
23 00000020
24 00000020 00000000
aLoop DCD Loop
25 00000024 80001000
aPort DCD IOPORT_ADDRESS
26 00000028
27 00000028 END
Traduit et adapté de l’anglais
Test du design à l’aide d’une carte d’evaluation
Traduit et adapté de l’anglais
Allure dans une fenêtre de desassemblage
0x00080000 E59FF018 DD 0xE59FF018
0x00080004 E59F0018 LDR R0,[PC,#0x0018]
0x00080008 E5901000 LDR R1,[R0]
0x0008000C E1A01401 MOV R1,R1,LSL #8
0x00080010 E1E01001 MVN R1,R1
0x00080014 E5801000 STR R1,[R0]
0x00080018 E1A00000 NOP
0x0008001C EAFFFFF8 B 0x00080004
0x00080020 00080004 DD 0x00080004
0x00080024 80001000 ANDHI R1,R0,R0
0x00080028 00000000 ANDEQ R0,R0,R0
0x0008002C 00000000 ANDEQ R0,R0,R0
0x00080030 00000000 ANDEQ R0,R0,R0
0x00080034 00000000 ANDEQ R0,R0,R0
aPort
aLoop
Code machine
Adresses Code Assembleur equivalent
?
Traduit et adapté de l’anglais
Débogage
• Tout comme le génie, l’écriture de programmes exige 1%
d’inspiration et 99% de transpiration 
– Un code source fonctionne rarement du premier coup !
– Une fois devenu fonctionnel, il doit être validé
– Ensuite, il faut le maintenir
• Un débogueur permet de :
– Charger un programme dans un environnement d’exécution contrôlé
– Exécuter le programme pas à pas
– Établir dynamiquement des points d’arrêt (« breakpoints »)
– Afficher/modifier des valeurs de registres ou locations en mémoire
Traduit et adapté de l’anglais
41
Le cycle de programmation
High-Level Language
Assembly Language
Operating System
Instruction Set
Architecture
Microarchitecture
Digital Logic Level 0
Level 1
Level 2
Level 3
Level 4
Level 5
Traduit et adapté de l’anglais
L’usage de langages de haut niveau
42
High-Level Language
Assembly Language
Operating System
Instruction Set
Architecture
Microarchitecture
Digital Logic Level 0
Level 1
Level 2
Level 3
Level 4
Level 5
• Réduit la « distance
cognitive » entre l’être
humain et la machine
• Augmente la productivité en
utilisant des instructions
« fonctionnelles »
• Demande un compilateur ou
un interpréteur pour traduire
les instructions en langage
assembleur
Compilateur
Traduit et adapté de l’anglais
43
Cycle de génération de programmes en
langage de haut niveau
Assembleur
« linker »
« loader »
Source de haut niveau
Fichier
object
Fichier objet
exécutable
• Charge le fichier objet exécutable en mémoire
pour exécution par la machine cible
• Agrège les fichiers objet générés
• Génère l’information d’agrégation
Machine cible
Assembleur
Source de haut niveau
Compilateur Compilateur
Fichier asm
Source asm
Assembleur
• Traduit le code asm en code
machine (obj) et génère un
fichier de listage
• Traduit le code de haut niveau en code
assembleur (asm) et génère un fichier de listage
Traduit et adapté de l’anglais
Langages de haut niveau
Code
assembleur
Code machine
Langage
Rom, Ram,
“Firmware” fixe
Compilé
C, C++, Ada,
Forth, etc.
Interpreté (?)
Perl, Python,
Javascript
À balises
HTML, XML
Java
Finissent tous en
code machine !
Traduit et adapté de l’anglais
Exigences pour le code d’un système
embarqué
• Densité
• Rapidité
• Accès direct au matériel
(registres, bits, etc.)
• Robustesse (redondance ?)
Contraintes souvent
contradictoires étant
données les ressources

Contenu connexe

Similaire à 9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt

Architecture des ordinateurs
Architecture des ordinateursArchitecture des ordinateurs
Architecture des ordinateurs
RMwebsite
 
Généralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasicGénéralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasic
morin moli
 
Materiel informatique 2011
Materiel informatique 2011Materiel informatique 2011
Materiel informatique 2011
Jouhadi mehdi
 
Architecture ordinateur-2-architecture-de-base
Architecture ordinateur-2-architecture-de-baseArchitecture ordinateur-2-architecture-de-base
Architecture ordinateur-2-architecture-de-base
Abdoulaye Dieng
 
DSP
DSPDSP
Isbs slides 2010
Isbs slides 2010Isbs slides 2010
Isbs slides 2010RMwebsite
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le MicroprocesseurTheCrazyMan
 
Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..
sunprass
 
Hp compaq dc7600
Hp compaq dc7600Hp compaq dc7600
Hp compaq dc7600rebustencil
 
Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)
Karim Touati
 
Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32
Hajer Dahech
 
Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------
NasriMohsen2
 
Formation API iNiveau 1 sur les automates programmable industriels de derni...
Formation API iNiveau  1 sur les automates programmable industriels de  derni...Formation API iNiveau  1 sur les automates programmable industriels de  derni...
Formation API iNiveau 1 sur les automates programmable industriels de derni...
azilalfree
 
003404788(1).pptx
003404788(1).pptx003404788(1).pptx
003404788(1).pptx
KamalZeghdar
 
Architecture
ArchitectureArchitecture
Architecture
LotfiHamrouni1
 
SdE2 - Systèmes embarquées
SdE2 - Systèmes embarquéesSdE2 - Systèmes embarquées
SdE2 - Systèmes embarquées
Alexandru Radovici
 
cours2 ARM.pptx
cours2 ARM.pptxcours2 ARM.pptx
cours2 ARM.pptx
BesmaOthmaniKrifa
 
8. introduction a larchitecture arm
8. introduction a larchitecture arm8. introduction a larchitecture arm
8. introduction a larchitecture arm
Abdelwahab Wahib
 

Similaire à 9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt (20)

Cours pics16 f877
Cours pics16 f877Cours pics16 f877
Cours pics16 f877
 
Coursdsp tdi
Coursdsp tdiCoursdsp tdi
Coursdsp tdi
 
Architecture des ordinateurs
Architecture des ordinateursArchitecture des ordinateurs
Architecture des ordinateurs
 
Généralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasicGénéralités sur les microcontrôleurs et PicBasic
Généralités sur les microcontrôleurs et PicBasic
 
Materiel informatique 2011
Materiel informatique 2011Materiel informatique 2011
Materiel informatique 2011
 
Architecture ordinateur-2-architecture-de-base
Architecture ordinateur-2-architecture-de-baseArchitecture ordinateur-2-architecture-de-base
Architecture ordinateur-2-architecture-de-base
 
DSP
DSPDSP
DSP
 
Isbs slides 2010
Isbs slides 2010Isbs slides 2010
Isbs slides 2010
 
Exposé Le Microprocesseur
Exposé   Le MicroprocesseurExposé   Le Microprocesseur
Exposé Le Microprocesseur
 
Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..
 
Hp compaq dc7600
Hp compaq dc7600Hp compaq dc7600
Hp compaq dc7600
 
Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)Micocontroleur16 fxxx (1)
Micocontroleur16 fxxx (1)
 
Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32
 
Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------Chapitre1.ppt-------------------------------
Chapitre1.ppt-------------------------------
 
Formation API iNiveau 1 sur les automates programmable industriels de derni...
Formation API iNiveau  1 sur les automates programmable industriels de  derni...Formation API iNiveau  1 sur les automates programmable industriels de  derni...
Formation API iNiveau 1 sur les automates programmable industriels de derni...
 
003404788(1).pptx
003404788(1).pptx003404788(1).pptx
003404788(1).pptx
 
Architecture
ArchitectureArchitecture
Architecture
 
SdE2 - Systèmes embarquées
SdE2 - Systèmes embarquéesSdE2 - Systèmes embarquées
SdE2 - Systèmes embarquées
 
cours2 ARM.pptx
cours2 ARM.pptxcours2 ARM.pptx
cours2 ARM.pptx
 
8. introduction a larchitecture arm
8. introduction a larchitecture arm8. introduction a larchitecture arm
8. introduction a larchitecture arm
 

Plus de josue25052001

3326-presentation-sysml-martin. -2.pptx
3326-presentation-sysml-martin.  -2.pptx3326-presentation-sysml-martin.  -2.pptx
3326-presentation-sysml-martin. -2.pptx
josue25052001
 
physique_presentationjjjjjjjjjjjhhf.pptx
physique_presentationjjjjjjjjjjjhhf.pptxphysique_presentationjjjjjjjjjjjhhf.pptx
physique_presentationjjjjjjjjjjjhhf.pptx
josue25052001
 
PPT SCHEMA FONctionnel d'un moteur .pptx
PPT SCHEMA FONctionnel d'un moteur .pptxPPT SCHEMA FONctionnel d'un moteur .pptx
PPT SCHEMA FONctionnel d'un moteur .pptx
josue25052001
 
presention rapport de stagehhhgfggh.pptx
presention rapport de stagehhhgfggh.pptxpresention rapport de stagehhhgfggh.pptx
presention rapport de stagehhhgfggh.pptx
josue25052001
 
SWOT Presentation RAMAZANI et KAMBALA L3-MAINTENANCE INDUSTRIELLE ULC-ICAM EN...
SWOT Presentation RAMAZANI et KAMBALA L3-MAINTENANCE INDUSTRIELLE ULC-ICAM EN...SWOT Presentation RAMAZANI et KAMBALA L3-MAINTENANCE INDUSTRIELLE ULC-ICAM EN...
SWOT Presentation RAMAZANI et KAMBALA L3-MAINTENANCE INDUSTRIELLE ULC-ICAM EN...
josue25052001
 
gemma approfondissementhfhfhgfdgjffg.ppt
gemma approfondissementhfhfhgfdgjffg.pptgemma approfondissementhfhfhgfdgjffg.ppt
gemma approfondissementhfhfhgfdgjffg.ppt
josue25052001
 

Plus de josue25052001 (6)

3326-presentation-sysml-martin. -2.pptx
3326-presentation-sysml-martin.  -2.pptx3326-presentation-sysml-martin.  -2.pptx
3326-presentation-sysml-martin. -2.pptx
 
physique_presentationjjjjjjjjjjjhhf.pptx
physique_presentationjjjjjjjjjjjhhf.pptxphysique_presentationjjjjjjjjjjjhhf.pptx
physique_presentationjjjjjjjjjjjhhf.pptx
 
PPT SCHEMA FONctionnel d'un moteur .pptx
PPT SCHEMA FONctionnel d'un moteur .pptxPPT SCHEMA FONctionnel d'un moteur .pptx
PPT SCHEMA FONctionnel d'un moteur .pptx
 
presention rapport de stagehhhgfggh.pptx
presention rapport de stagehhhgfggh.pptxpresention rapport de stagehhhgfggh.pptx
presention rapport de stagehhhgfggh.pptx
 
SWOT Presentation RAMAZANI et KAMBALA L3-MAINTENANCE INDUSTRIELLE ULC-ICAM EN...
SWOT Presentation RAMAZANI et KAMBALA L3-MAINTENANCE INDUSTRIELLE ULC-ICAM EN...SWOT Presentation RAMAZANI et KAMBALA L3-MAINTENANCE INDUSTRIELLE ULC-ICAM EN...
SWOT Presentation RAMAZANI et KAMBALA L3-MAINTENANCE INDUSTRIELLE ULC-ICAM EN...
 
gemma approfondissementhfhfhgfdgjffg.ppt
gemma approfondissementhfhfhgfdgjffg.pptgemma approfondissementhfhfhgfdgjffg.ppt
gemma approfondissementhfhfhgfdgjffg.ppt
 

9 - CPU_uhghfhffdttgfffgfdfffghhggfC.ppt

  • 1. Traduit et adapté de l’anglais MIC7340 Introduction aux microcontrôleurs Mounir Boukadoum
  • 2. Traduit et adapté de l’anglais Comment additionne-t’on 147 et 332 ? 1. On écrit les deux nombres l’un au dessus de l’autre 2. On les additionne colonne par colonne avec les retenues 3. On note le résultat final
  • 3. Traduit et adapté de l’anglais Étapes d’exécution (programme) Entrée des données Mémorisation Accumulateur de résultats Sortie des données On peut reproduire les fonctions précédentes avec des registres et compteurs logiques • Pour être réalisés avec des circuits logiques, programme et données doivent être encodés dans un format reconnu par les circuits => 1 et 0 !
  • 4. Traduit et adapté de l’anglais • Données numériques : direct – Ex. 10dec = 1010bin • Données non numériques : format numérique représentatif – Ex. ‘A’  65dec = 01000001bin • Instructions du programme : format numérique représentatif – Ex. table d`instructions pour l`additionneur précédent Encodage des Instructions et données
  • 5. Traduit et adapté de l’anglais Encodage des Instructions et données • Un programme exécution consistera en une séquence de nombres binaires : Code d’opération Argument Étape 1 : lire 1er nombre et mettre dans la case mémoire 17 Étape 2 : lire 2nd nombre et mettre dans la case mémoire 18 Étape 3 : Mettre 0 dans l’accumulateur et ajouter le contenu de 17 à . . . • 147+332=479 => 017018117218619519
  • 6. Traduit et adapté de l’anglais Un automate logique simple pour additionner deux nombres • Vu de l’extérieur, le programme exécuté est : 017018117218619519 • Un machine capable d’exécuter le programme automatiquement est dite ordinateur à programme emmagasiné (stored program computer) • Distinction des instructions et des arguments : Il faut un interprète qui détermine le sens d’un chiffre selon sa position. Cela demande : – Un séquenceur de programme (Program counter) – Un registre de sauvegarde des instructions et des données – Un circuit de contrôle
  • 7. Traduit et adapté de l’anglais Ordinateur à programme emmagasiné • Peut itérer les instructions • Peut séparer les codes d’instructions des données 1 2 1 2 Commutateur : 1 : Lire entrée et mettre en mémoire 2 : Lire code d`instruction en mémoire Adresse en mémoire Données • Sans entrées, sorties ou mémoire, c’est un microprocesseur (CPU)
  • 8. Traduit et adapté de l’anglais Jeux d’instructions • CISC (complex instruction set) – Grand nombre d’instructions – Opérations de haut niveau en microcode (simplifient l’usage de langages de programmation de haut niveau) – Ex.: Presque tous les processeurs pour ordinateurs de bureau (Pentium, Athlon, etc.) • RISC (reduced instruction set) – Nombre réduit d’instructions – Opérations simples uniquement – Exécution directe par le matériel (pas de microcode) – Facile d’ajouter de nouvelles capacités – Ex. : ARM, PowerPC, MIPS CISC (Intel 486) RISC (MIPS R4000) #instructions 235 94 Addr. modes 11 1 Inst. Size (bytes) 1-12 4 GP registers 8 32
  • 9. Traduit et adapté de l’anglais Architectures d’accès à la mémoire Entrées/ sorties Unité Arithmétique et logique Programme et données A D A=Adresse D=données Machine de Von Neuman Architecture de Harvard Entrées/ sorties Unité Arithmétique et logique Programme A D Données (x2) A D
  • 10. Traduit et adapté de l’anglais Caractéristiques de mise en oeuvre • Le CP a besoin d’une horloge • L’accumulateur peut être multiple et fait partie d’une unité arithmétique et logique • Des registres auxiliaires existent avec des fonctions diverses • Un CPU enrichi de mémoires externes et d’interfaces au monde extérieur forme un micro- ordinateur
  • 11. Traduit et adapté de l’anglais CLAVIER Port d'entrée Port de sortie ÉCRAN Port de sortie IMPRIMANTE Port d'E/S DISQUE Port d'E/S MODEM Mémoire morte ROM, EPROM, EEPROM Mémoire vive RAM CPU (Unité centrale de traitement) UC (Unité centrale) Mémoire interne Micro-processeur Ports d'E/S Périphérique externes Modem externe Clavier Écran Imprimante  M O D E M Ligne téléphonique UC + Disques Micro-ordinateur
  • 12. Traduit et adapté de l’anglais Quelques ordinateurs Nokia 6070 (ARM7 51MHz) iPod classic (ARM7 80MHz) Game Boy Advanced (ARM7 16.78MHz) VAIO Z46TD (Intel Core 2 Duo P9700 2.8GHz) Desktop (Intel Pentium D 3GHz, Nvidia 7900)
  • 13. Traduit et adapté de l’anglais Et ceux-ci aussi ! • Les systèmes embarqués comptent pour 94% des ventes • Étendent les applications bien au delà des applications bureautiques ou de gestion
  • 14. Traduit et adapté de l’anglais Périphérique Port Port Périphérique Port Périphérique Mémoire CPU CPU Mémoire Périphérique Port Port Périphérique Port Périphérique Microcontrôleur Microcontrôleur (Microprocesseur) • Micro-ordinateur à ressources réduites • « CPU » pour systèmes embarqués • Composantes fondamentales d’un micro-ordinateur intégrées sur une puce
  • 15. Traduit et adapté de l’anglais CPU Mémoire Périphérique Port Port Périphérique Port Périphérique Mémoire Port Périphérique Microcontrôleur en mode expansible • Forme intermédiaire entre un microprocesseur et un microcontrôleur
  • 16. Traduit et adapté de l’anglais CPU Mémoire Alimentation Port Horloge Mémoire Port Interrupt Interrupt Bus d'adresses Bus de données Bus de contrôle Périphérique Périphérique Composants et interconnections • Trois bus fondamentaux
  • 17. Traduit et adapté de l’anglais Microcontrôleur en mode autonome • Les bus sont internes
  • 18. Traduit et adapté de l’anglais Microcontrôleur en mode d’adressage étendu • Certains/tous les bus sont accessibles de l’extérieur
  • 19. Traduit et adapté de l’anglais 3 5xx Gen Summary … 32-bit ARM Cortex™-M3 MCUs 16-bit ultra- low power MCUs DSP DSP+ARM ARM Cortex-A8 MPUs Stellaris® ARM® Cortex™-M3 MSP430™ Sitara™ ARM® Cortex™-A8 & ARM9 C6000™ DaVinci™ video processors TI Embedded Processors Digital Signal Processors (DSPs) Microcontrollers (MCUs) ARM®-Based Processors OMAP™ Software & Dev. Tools Up to 100 MHz Flash 8 KB to 256 KB USB, ENET MAC+PHY CAN, ADC, PWM, SPI Connectivity, Security, Motion Control, HMI, Industrial Automation $1.00 to $8.00 300MHz to >1GHz Cache, RAM, ROM USB, CAN, PCIe, EMAC Industrial computing, POS & portable data terminals $5.00 to $20.00 Up to 25 MHz Flash 1 KB to 256 KB Analog I/O, ADC LCD, USB, RF Measurement, Sensing, General Purpose $0.25 to $9.00 300MHz to >1Ghz +Accelerator Cache RAM, ROM USB, ENET, PCIe, SATA, SPI Floating/Fixed Point Video, Audio, Voice, Security, Conferencing $5.00 to $200.00 32-bit real-time MCUs C2000™ Delfino™ Piccolo™ 40MHz to 300 MHz Flash, RAM 16 KB to 512 KB PWM, ADC, CAN, SPI, I2C Motor Control, Digital Power, Lighting, Ren. Enrgy $1.50 to $20.00 Ultra Low power DSP C5000™ Up to 300 MHz +Accelerator Up to 320KB RAM Up to 128KB ROM USB, ADC McBSP, SPI, I2C Audio, Voice Medical, Biometrics $3.00 to $10.00 Multi-core DSP C6000™ 24.000 MMACS Cache RAM, ROM SRIO, EMAC DMA, PCIe Telecom test & meas, media gateways, base stations $40 to $200.00
  • 20. Traduit et adapté de l’anglais La famille MSP430 : Architecture générale • Bus interne de données interne de16 bits et externe de 8 bits • Jusqu’à 20 bits d’espace d’adressage • Site web de TI
  • 21. Traduit et adapté de l’anglais La famille TMS430 : CPU de la famille 5xx • Architecture RISC (Reduced Instructions Set Computing) – Nombre d’instructions réduit – Architecture Von Neumann : • Emmagasinage commun des instructions et des données. • Seize registres à 16-bits-20-bits – 4 des registres (R0-R3) ont des fonctions dédiées (PC, SP, SR, et générateur de constantes) ; – 12 sont à usage général (R4 -R15) • Unité arithmétique et logique (ALU): – Addition, soustraction, comparaison et opérations logiques (AND, OR, XOR) ; – Sémaphores pour débordement, zéro, négatif, and bit de retenue • Architecture optimisée pour les compilateurs c
  • 22. Traduit et adapté de l’anglais MSP430F5438A Block Diagram 22 MSP-EXP430F5438 …
  • 23. Traduit et adapté de l’anglais Kits de démarrage (eZ430-RF2500) 1/2 • Outil de développement pour le microcontrôleur MSP430F2274 et le transmetteur sans fil 2.4 Ghz CC2500; • Circuit imprimé cible Z430-RF2500T détachable : peut être utilisé seul, intégré dans un système, ou avec l`interface de débogage USB; • Peut communiquer avec un PC par le bais du UART intégré dans le MSP430. • Alimentation autonome ou via le port USB • 50 $ 23
  • 24. Traduit et adapté de l’anglais Kit de démarrage eZ430-RF2500 : MSP430F2274 et périphériques 2/2 • Performance de 16-MIPS; • Convertisseur A-N à approximations successives avec 10 bits de résolution et fréquence d`échantillonnage jusqu’à 200 ke/s • Compteur/temporisateur de 16 bits • 2 amplificateur opérationnels intégrés • Compteur/temporisateur de 16 bits • Chien de garde (« Watchdog timer ») • Module sériel universel supportant UART/LIN, (2) SPI, I2C, or IrDA • Taux de transfert de données programmable jusqu’à 500 kb/s • 5 modes d’opération à faible courant (0.7 μA en mode standby) • Transmetteur RF 2.4-GHz externe (CC2500) 24
  • 25. Traduit et adapté de l’anglais Organisation de l’espace mémoire • Mémoire de travail (primaire) : Suite de locations ayant une adresse et un contenu – Le contenu peut être à lecture seule (ROM) ou lecture/ écriture (RAM) – Les mémoires à lecture seule sont préprogrammées • On peut aussi avoir des mémoires secondaires (pour l`emmagasinage de masse ou à long terme) : disque dur, DVD, flash, etc. – Le mémoires secondaires peuvent aussi être è lecture seule ou lecture/écriture
  • 26. Traduit et adapté de l’anglais Accès à la mémoire • Trois étapes : 1. Génération de l’adresse sur le bus de données; 2. Spécification du mode d’accès (ligne commune r/w ou lignes rd et wr) 3. Lecture/écriture vers ou à partir du bus de données
  • 27. Traduit et adapté de l’anglais Cycle de fonctionnement d’un CPU
  • 28. Traduit et adapté de l’anglais Notation en complément de X (a) Odomètre hypothétique montrant la notation en complément de 10; (b) Cercle de nombres de 8 bits montrant la notation en complément de 2.
  • 29. Traduit et adapté de l’anglais Addition et Soustraction de nombres entiers à 8-Bit unipolaires
  • 30. Traduit et adapté de l’anglais Addition et Soustraction de nombres entiers à 8-Bit bipolaires
  • 31. Traduit et adapté de l’anglais Notation en virgule flottante
  • 32. Traduit et adapté de l’anglais Perspective du programmeur pour un CPU simple ACC FLAGS R0 R1 R2 Registers R3 Memory 0000h FFFFh • Typique d’une architecture de Von Neumann
  • 33. Traduit et adapté de l’anglais Cycle de développement de programme en assembleur absolu Étapes de développement de programme • 017018117218619519 ?! • On rend le programme plus lisible en remplaçant les codes d’instructions par des représentations mnémoniques – Ex. : 017  mov @17,A • Un assembleur traduit à nouveau le programme obtenu (en langage « pour assembleur ») en langage machine avant l’exécution • Si les locations en mémoire sont fixées à l’avance, on a un assembleur absolu.
  • 34. Traduit et adapté de l’anglais Processus global de génération de code • Des fichiers intermédiaires sont générés • Des fichiers d’information sont aussi générés • Un fichier de configuration est aussi requis pour l’éditeur de liens EDITOR ASSEMBLER LINKER LOCATOR HEX Conversion source file (*.s) relocatable object file (*.o) relocatable linked object file absolute executable file (*.axf) HEX-ASCII object file (*.hex) DEVICE PROGRAMMER list file (*.lst) linker map file (*.map) locator map file (*.map) programmed device blank device Other object files from assembler or HLL compilers Target
  • 35. Traduit et adapté de l’anglais Processus global de génération de code EDITOR ASSEMBLER LINKER/ LOCATOR ADuC7026 Simulator source file (*.s) relocatable object file (*.o) absolute executable file (*.axf) ULink JTAG Pod list file (*.lst) map file (*.map) Other object files from assembler or HLL compilers ADuC7026 Hardware HEX conversion Device Programmer JTAG POD Device Simulator Target hardware Target computer
  • 36. Traduit et adapté de l’anglais Example de code source ; Filename: sample.s ; Author: ECE 353 Staff ; Description: sample program for a ARM7tdmi ; do **NOT** use this as the basis for any programming! EXPORT Reset_Handler ;make available to linker IOPORT_ADDRESS EQU 0x80001000 AREA Reset, CODE, READONLY ARM Reset_Handler LDR PC, aLoop ;load PC with program start address Loop LDR R0, aPort ;load address of port LDR R1, [R0] ;read switch state LSL R1, #8 ;shift left 8 bits to align MVN R1, R1 ;complement STR R1, [R0] ;write LEDs NOP ;do nothing B Loop ;repeat forever aLoop DCD Loop ; aPort DCD IOPORT_ADDRESS END
  • 37. Traduit et adapté de l’anglais Listage du code généré (1) 5 … 6 00000000 EXPORT Reset_Handler ;make available t o linker 7 00000000 8 00000000 80001000 IOPORT_ADDRESS EQU 0x80001000 9 00000000 10 00000000 AREA Reset, CODE, READONLY 11 00000000 ARM 12 00000000 13 00000000 Reset_Handler 14 00000000 E59FF018 LDR PC, aLoop 15 00000004 Loop 16 00000004 E59F0018 LDR R0, aPort ;load address of po rt 17 00000008 E5901000 LDR R1, [R0] ;read switch state 18 0000000C E1A01401 LSL R1, #8 ;shift left 8 bits to align 19 00000010 E1E01001 MVN R1, R1 ;complement 20 00000014 E5801000 STR R1, [R0] ;write LEDs 21 00000018 E1A00000 NOP ;do nothing 22 0000001C EAFFFFF8 B Loop ;repeat forever 23 00000020 24 00000020 00000000 aLoop DCD Loop 25 00000024 80001000 aPort DCD IOPORT_ADDRESS 26 00000028 27 00000028 END
  • 38. Traduit et adapté de l’anglais Test du design à l’aide d’une carte d’evaluation
  • 39. Traduit et adapté de l’anglais Allure dans une fenêtre de desassemblage 0x00080000 E59FF018 DD 0xE59FF018 0x00080004 E59F0018 LDR R0,[PC,#0x0018] 0x00080008 E5901000 LDR R1,[R0] 0x0008000C E1A01401 MOV R1,R1,LSL #8 0x00080010 E1E01001 MVN R1,R1 0x00080014 E5801000 STR R1,[R0] 0x00080018 E1A00000 NOP 0x0008001C EAFFFFF8 B 0x00080004 0x00080020 00080004 DD 0x00080004 0x00080024 80001000 ANDHI R1,R0,R0 0x00080028 00000000 ANDEQ R0,R0,R0 0x0008002C 00000000 ANDEQ R0,R0,R0 0x00080030 00000000 ANDEQ R0,R0,R0 0x00080034 00000000 ANDEQ R0,R0,R0 aPort aLoop Code machine Adresses Code Assembleur equivalent ?
  • 40. Traduit et adapté de l’anglais Débogage • Tout comme le génie, l’écriture de programmes exige 1% d’inspiration et 99% de transpiration  – Un code source fonctionne rarement du premier coup ! – Une fois devenu fonctionnel, il doit être validé – Ensuite, il faut le maintenir • Un débogueur permet de : – Charger un programme dans un environnement d’exécution contrôlé – Exécuter le programme pas à pas – Établir dynamiquement des points d’arrêt (« breakpoints ») – Afficher/modifier des valeurs de registres ou locations en mémoire
  • 41. Traduit et adapté de l’anglais 41 Le cycle de programmation High-Level Language Assembly Language Operating System Instruction Set Architecture Microarchitecture Digital Logic Level 0 Level 1 Level 2 Level 3 Level 4 Level 5
  • 42. Traduit et adapté de l’anglais L’usage de langages de haut niveau 42 High-Level Language Assembly Language Operating System Instruction Set Architecture Microarchitecture Digital Logic Level 0 Level 1 Level 2 Level 3 Level 4 Level 5 • Réduit la « distance cognitive » entre l’être humain et la machine • Augmente la productivité en utilisant des instructions « fonctionnelles » • Demande un compilateur ou un interpréteur pour traduire les instructions en langage assembleur Compilateur
  • 43. Traduit et adapté de l’anglais 43 Cycle de génération de programmes en langage de haut niveau Assembleur « linker » « loader » Source de haut niveau Fichier object Fichier objet exécutable • Charge le fichier objet exécutable en mémoire pour exécution par la machine cible • Agrège les fichiers objet générés • Génère l’information d’agrégation Machine cible Assembleur Source de haut niveau Compilateur Compilateur Fichier asm Source asm Assembleur • Traduit le code asm en code machine (obj) et génère un fichier de listage • Traduit le code de haut niveau en code assembleur (asm) et génère un fichier de listage
  • 44. Traduit et adapté de l’anglais Langages de haut niveau Code assembleur Code machine Langage Rom, Ram, “Firmware” fixe Compilé C, C++, Ada, Forth, etc. Interpreté (?) Perl, Python, Javascript À balises HTML, XML Java Finissent tous en code machine !
  • 45. Traduit et adapté de l’anglais Exigences pour le code d’un système embarqué • Densité • Rapidité • Accès direct au matériel (registres, bits, etc.) • Robustesse (redondance ?) Contraintes souvent contradictoires étant données les ressources