Vous êtes sur la page 1sur 200

Microprocesseurs-Microcontroleurs

ENSEA
ETIS / ENSEA
Mel : Bertrand.Granado@ensea.fr

Automne 2010

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

1 / 200

1 Pr
esentation
2 Embarquons

La e-Life
Les MicroControleurs
3 Le micro-contr
oleur STM32
4 Les interruptions
Reagir aux evenements externes ou aux fautes
Les interruption du microcontr
oleur STM32
Registres Speciaux lies aux interruptions
Deroulement dune interruption
Les priorites
Les vecteurs dinterruption
Fonctionnement des interruptions
Exceptions syst`eme
Syst`eme dexploitation
Controleur NVIC
5 Exemple de p
eripheriques
Le convertisseur Analogique-Numerique
Le DMA : Direct Memory Acces
ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

2 / 200

Pr
esentation

Sommaire

1 Presentation
2 Embarquons
3 Le micro-contr
oleur STM32
4 Les interruptions
5 Exemple de peripheriques

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

3 / 200

Pr
esentation

Les Chefs
Samuel Garcia
Mahmoud Karabernou
Lounis Kessal
Laurent Monchal
Nicolas Simond
Antoine Tauvel

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

4 / 200

Pr
esentation

La Sauce
10 h de Cours
4 h de TD
16 h de Mini-Projet

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

5 / 200

Pr
esentation

Le Dessert

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

6 / 200

Embarquons

Sommaire
1 Presentation
2 Embarquons
La e-Life
Les MicroContr
oleurs
3 Le micro-contr
oleur STM32
4 Les interruptions
5 Exemple de peripheriques

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

7 / 200

Embarquons

La e-Life

e-Life

1 ordinateur pour des


centaines de personnes

des dizaines d'quivalents


ordinateur pour une personne

2010

1964
ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

8 / 200

Embarquons

La e-Life

Support de la e-Life

MicroProcesseurs
Processeur Sp
ecialises : DSP,

GPU
Circuits Reconfigurables :

FPGA, PLD
Circuits Sp
ecifiques : ASIC,

ASIP
MicroContr
oleurs

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

9 / 200

Embarquons

Les MicroContr
oleurs

Les MicroControleurs

Interaction forte avec lenvironnement


Concevoir un composant qui associe 3 aspects
Acquisition
Traitement
Commande
Premier SoC (System on Chip ou syst`
eme sur puce)
Dans la pratique : faible capacit
e de traitement
D
edie plutot controle

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

10 / 200

Embarquons

Les MicroContr
oleurs

Les MicroControleurs : Principes

transformation
grandeur physique
grandeur lectrique

transformation
transformation
continu-discret
discret-continu
MicroContrleur
transformation
grandeur lectrique
grandeur physique
Capteur
Coeur Processeur Actionneur

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

11 / 200

Embarquons

Les MicroContr
oleurs

Les MicroControleurs : 8051


Intel 8051 Microarchitecture

Vcc
Vss

RAM Addr.
Register

RAM

P0.0 - P0.7

P2.0 - P2.7

Port 0
Drivers

Port 2
Drivers

Port 0
Latch

Port 2
Latch

EPROM/
ROM
8

Program
Address
Register

Stack
Pointer

ACC

B
Register

TMP2

TMP1

ALU

Buf f er

PC
Incrementer

Interrupt, Serial Port,


and Timer Blocks

PSEN#
Timing
and
Control

ALE/PROG#
EA# /VPP
RST

Instruction
Register

PSW

DPTR

Port 1
Latch

Port 3
Latch

Port 1
Drivers

Port 3
Drivers

P1.0 - P1.7

P3.0 - P3.7

OSC.

XTAL1

ENSEA (ETIS / ENSEA)

16

Program
Counter

XTAL2

Microprocesseurs-Microcontr
oleurs

Automne 2010

12 / 200

Embarquons

Les MicroContr
oleurs

Le marche des microcontroleurs

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

13 / 200

Le micro-contr
oleur STM32

Sommaire

1 Presentation
2 Embarquons
3 Le micro-contr
oleur STM32
4 Les interruptions
5 Exemple de peripheriques

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

14 / 200

Le micro-contr
oleur STM32

Le STM32 : presentation

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

15 / 200

Le micro-contr
oleur STM32

Le STM32 : presentation

MicroContr
oleur ST base sur le processeur ARM Cortex M3
Processeur RISC
Architecture Harvard : bus instructions et donn
ees separes
Mode de gestion de la consommation
Supporte uniquement le jeu dinstruction Thumb2
Cours Mahmoud Karabernou - Premi`
ere annee (MOODLE)

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

16 / 200

Le micro-contr
oleur STM32

Le STM32 : evolution architecture ARM

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

v7-M
(Microcontroller;
e.g., Cortex-M3)

Automne 2010

17 / 200

Le micro-contr
oleur STM32

Le STM32 : evolution architecture ARM

100


80


60

40
20
0
0

10

ENSEA (ETIS / ENSEA)

20

30

40

50

60

Microprocesseurs-Microcontr
oleurs

70

Automne 2010

18 / 200

Le micro-contr
oleur STM32

STM32 : Cortex M3

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

19 / 200

Le micro-contr
oleur STM32

Le STM32 : environnement

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

20 / 200

Le micro-contr
oleur STM32

Le STM32 : famille 2007

STM32F103RB
STM32F101RB

STM32F103VB
STM32F101VB
STM32F103V8
STM32F101V8

STM32F103C8
STM32F101C8

STM32F103R8
STM32F101R8

STM32F103C6
STM32F101C6

STM32F103R6
STM32F101R6

Performance line
Access line

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

21 / 200

Le micro-contr
oleur STM32

Le STM32 : famille 2007

Part number

Program
memory
type

Prog.
RAM
(Bytes) (Bytes)

Flash

Timer functions
Serial interface
12 or 16-bit
(IC/OC/PWM)

Others

I/Os
(High
current)

Packages

Supply
voltage

STM32 (ARM Cortex-M3) - 32-bit microcontrollers


48
pins
64
pins

STM32F101C6

32 K

6K

2x16-bit (8/8/8)

1xSPI/1xIC/2xUSART*

32(32)

LQFP48

2 to 3.6 V

STM32F101C8

64 K

10 K

3x16-bit (12/12/12)

2xSPI/2xIC/3xUSART*

32(32)

LQFP48

2 to 3.6 V

STM32F101R6

32 K

6K

2x16-bit (8/8/8)

1xSPI/1xIC/2xUSART*

49(49)

LQFP64

2 to 3.6 V

STM32F101R8

64 K

10 K

3x16-bit (12/12/12)

2xSPI/2xIC/3xUSART*

49(49)

LQFP64

2 to 3.6 V

STM32F101RB

128 K

16 K

3x16-bit (12/12/12)

2xSPI/2xIC/3xUSART*

49(49)

LQFP64

2 to 3.6 V

2xSPI/2xIC/3xUSART*

80(80)

LQFP100

2 to 3.6 V

2xSPI/2xIC/3xUSART*

80(80)

LQFP100

2 to 3.6 V

1xSPI/1xIC/2xUSART*/USB/CAN

32(32)

LQFP48

2 to 3.6 V

2xSPI/2xIC/3xUSART*/USB/CAN

32(32)

LQFP48

2 to 3.6 V

2xWDG,
RTC,
24-bit
down
counter

100
pins

STM32F101V8

64 K

10 K

3x16-bit (12/12/12)

STM32F101VB

128 K

16 K

3x16-bit (12/12/12)

48
pins

STM32F103C6

32 K

10 K

3x16-bit (12/12/14)

STM32F103C8

64 K

20 K

4x16-bit (16/16/18)

STM32F103R6

32 K

10 K

3x16-bit (12/12/14)

1xSPI/1xIC/2xUSART*/USB/CAN

49(49)

LQFP64

2 to 3.6 V

STM32F103R8

64 K

20 K

4x16-bit (16/16/18)

2xSPI/2xIC/3xUSART*/USB/CAN

49(49)

LQFP64

2 to 3.6 V

STM32F103RB

128 K

20 K

4x16-bit (16/16/18)

2xSPI/2xIC/3xUSART*/USB/CAN

49(49)

LQFP64

2 to 3.6 V

STM32F103V8

64 K

20 K

4x16-bit (16/16/18)

2xSPI/2xIC/3xUSART*/USB/CAN

80(80)

LQFP100/BGA100

2 to 3.6 V

STM32F103VB

128 K

20 K

4x16-bit (16/16/18)

2xSPI/2xIC/3xUSART*/USB/CAN

80(80)

LQFP100/BGA100

2 to 3.6 V

64
pins
100
pins

*(IrDA/ISO7816/LIN master/slave)

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

22 / 200

Le micro-contr
oleur STM32

Le STM32 : famille 2010


Table 3.

STM32F103xx family
Low-density
devices

Pinout

Medium-density
devices

32 KB
Flash(1)

64 KB
Flash

128 KB
Flash

256 KB
Flash

384 KB
Flash

512 KB
Flash

768 KB Flash

1 MB Flash

6 KB
RAM

10 KB
RAM

20 KB
RAM

20 KB
RAM

48 or
64 KB (2)
RAM

64 KB
RAM

64 KB
RAM

96 KB RAM

96 KB RAM

XL-density devices

16 KB
Flash

High-density devices

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

23 / 200

Le micro-contr
oleur STM32

Le STM32 : synoptique

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

24 / 200

Le micro-contr
oleur STM32

Le STM32 : Outils de Developpement

Fournisseur
Hitex : www.hitex.com
IAR : www.iar.com
Keil : www.keil.com
Raisonance : www.raisonance.com
Rowley : www.rowley.co.uk

ENSEA (ETIS / ENSEA)

Description
Atelier, GNU C/C++, USB/JTAG
Atelier, IAR C/C++, USB/JTAG
Atelier, ARM C/C++, USB/JTAG
Atelier, GNU C/C++, USB/JTAG
Atelier, GNU C/C++, JTAG

Microprocesseurs-Microcontr
oleurs

Automne 2010

25 / 200

Le micro-contr
oleur STM32

Le STM32 : Cartes de Developpement

Fournisseur
Hitex : www.hitex.com
IAR : www.iar.com
Keil : www.keil.com
Raisonance : www.raisonance.com
Raisonance : www.raisonance.com
ST : www.st.com
...

ENSEA (ETIS / ENSEA)

Description
STM3210B-SK/HIT
STM3210B-SK/IAR
STM3210B-SK/Keil
STM3210B-PRIMER
STM3210B-SK/RAIS
STM3210B-MCKIT
...

Microprocesseurs-Microcontr
oleurs

Automne 2010

26 / 200

Le micro-contr
oleur STM32

Le STM32 : Cartes de Developpement

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

27 / 200

Le micro-contr
oleur STM32

Le STM32 : Syst`eme dExploitation

Fournisseur
Micrium : www.micrium.com
IAR : www.iar.com
Keil : www.keil.com
www.FreeRTOS.org
Segger : www.segger.com
CMX Systems : www.cmx.com

ENSEA (ETIS / ENSEA)

RTOS
C/OS-II
PowerPac
ARTX-ARM
FreeRTOS
embOS
CMX-RTX

Microprocesseurs-Microcontr
oleurs

Automne 2010

28 / 200

Le micro-contr
oleur STM32

Le STM32 : mapping memoire CortexM3

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

29 / 200

Le micro-contr
oleur STM32

Le STM32 : mapping memoire

Reserved

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

30 / 200

Le micro-contr
oleur STM32

Le STM32 : Acc`es `a des bits

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

31 / 200

Le micro-contr
oleur STM32

Le STM32 : Acc`es `a des bits

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

32 / 200

Le micro-contr
oleur STM32

Le STM32 : les registres

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

33 / 200

Le micro-contr
oleur STM32

Le STM32 : le registre xPSR

31
APSR N

30

29

28

27

26:25

24

23:20

19:16

15:10

IPSR

4:0

Exception Number

EPSR

xPSR

ICI/IT

31

30

29

28

27

26:25

24

ICI/IT

ENSEA (ETIS / ENSEA)

ICI/IT

23:20

19:16

Microprocesseurs-Microcontr
oleurs

15:10
ICI/IT

4:0

Exception Number

Automne 2010

34 / 200

Les interruptions

Sommaire
1 Presentation
2 Embarquons
3 Le micro-contr
oleur STM32
4 Les interruptions
Reagir aux evenements externes ou aux fautes
Les interruption du microcontr
oleur STM32
Registres Speciaux lies aux interruptions
Deroulement dune interruption
Les priorites
Les vecteurs dinterruption
Fonctionnement des interruptions
Exceptions syst`eme
Syst`eme dexploitation
Controleur NVIC
ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

35 / 200

Les interruptions

R
eagir aux
ev
enements externes ou aux fautes

Evenements externes

Ev
enement externe est asynchrone
Impossibilit
e, en r`egle generale, de connatre le moment dapparition

de levenement
Difficile dinclure son traitement dans le flot synchrone dun

programme
N
ecessite de methodes pour capturer cet evenement
Fautes dex
ecution tel que division par zero peuvent etre synchrone

mais impredictible

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

36 / 200

Les interruptions

R
eagir aux
ev
enements externes ou aux fautes

Attente Active

D
etection dun appui sur un bouton
Scrutation p
eriodique

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

37 / 200

Les interruptions

R
eagir aux
ev
enements externes ou aux fautes

Attente Active
#include <stm32f10x_lib.h>
void S2appuye(void)
{
if (S2presse) {
if (!((GPIOA->IDR & 0x0001) == 0 )) {
S2presse = 0;
Tempo(500000);
}
}
else {
if (((GPIOA->IDR & 0x0001) == 0 )) {
S2presse = 1;
Tempo(500000);
}
}
}
int main(void)
{
while(1)
{
S2appuye();
}
}
ENSEA (ETIS / ENSEA)

// S2 nest pas appuy


e

// S2 est appuy
e

Microprocesseurs-Microcontr
oleurs

Automne 2010

38 / 200

Les interruptions

R
eagir aux
ev
enements externes ou aux fautes

Attente Active

Monopolise du temps processeur inutilement


Temps de r
eaction `a levenement possiblement long
Difficilement envisageable dans des syst`
emes temps reel

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

39 / 200

Les interruptions

R
eagir aux
ev
enements externes ou aux fautes

Une autre alternative

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

40 / 200

Les interruptions

R
eagir aux
ev
enements externes ou aux fautes

Interruptions : quest-ce que cest ?

Cest un
evenement qui provoque
larr
et de lexecution normale dun programme : le programme est
interrompu
la sauvegarde de l
etat du programme en cours dexecution : le
contexte dexecution
lex
ecution dune routine specifique liee `a cet evenement : la routine de
service de linterruption
la restauration du contexte dex
ecution
le retour `
a lexecution du programme interrompu

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

41 / 200

Les interruptions

R
eagir aux
ev
enements externes ou aux fautes

Interruptions : definitions
Interruptions : surviennent de facon asynchrones. Elles sont

commandees par le materiel (interruption externe) ou par le syst`eme


(interruption syst`eme ou exception). Aucune relation avec les
instructions en cours dexecution.
Exceptions : d
eclenchees par des accidents dans lexecution du

programme : debordement arithmetique, erreur de bus, tentative


dutilisation dinstructions reservees, erreur dadressage, defaut de
cache, defaut de page...
Gestion Pr
ecise : letat du processeur qui resulterait de lexecution

sequentielle de toutes les instructions anterieures `a linstruction


provoquant linterruption peut etre reconstruit dans tous les cas.
Gestion Impr
ecise : Impossibilite de reconstruction de letat du

processeur.
ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

42 / 200

Les interruptions

Les interruption du microcontr


oleur STM32

Interruptions STM32

INTERRUPTION

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

43 / 200

Les interruptions

Les interruption du microcontr


oleur STM32

Interruptions STM32

Les interruptions du STM32 sont dites vectoris


ees
A chaque source dinterruption correspond un vecteur dinterruption

sur 32 bits
Le vecteur dinterruption contient ladresse de la routine de service de

linterruption
Pour lexception syst`
eme reset, la valeur du vecteur est la valeur

initiale du compteur de programme


Les vecteurs dinterruption sont contenus dans une table qui est

relogeable

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

44 / 200

Les interruptions

Les interruption du microcontr


oleur STM32

Interruptions STM32

Pour la gestion des interruption le microcontr


oleur STM32 via le

CortexM3 fournit
Sauvegarde et restauration automatique du contexte dex
ecution.
Le processeur empile les registres avant de servir linterruption et les
depile apr`es execution de la routine de service de linterruption. Pas de
necessite dinstruction specifique, cest automatique et transparent
pour le programmeur.
Lecture automatique dune table dite de table de vecteur qui contient

les adresses des routines de service des interruptions.


Effectue en parall`ele de la sauvegarde de contexte.

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

45 / 200

Les interruptions

Les interruption du microcontr


oleur STM32

Interruption STM32

Le microcontr
oleur STM32 a deux types dinterruptions :
les exceptions syst`
eme
les interruptions externes num
erotees de 0 `a 59
le num
ero de linterruption en cours de service peut-etre connue par
le registre sp
ecial IPSR (Interrupt Program Status Register)
le registre ICSR (Interrupt Control State Register) du NVIC (Nested
Vectored Interrupt Controller) dans le champs VECTACTIVE
les interruptions ont des priorit
es permettant davoir un syst`eme

preemptif

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

46 / 200

Les interruptions

Les interruption du microcontr


oleur STM32

Exceptions syst`eme
Liste
Numero
Exception

Type

Priorite

Description

1
2
3

Reset
NMI
Hard Fault

-3 (Plus elevee)
-2
-1

MemManageFault

Programmable

BusFault

Programmable

6
7-10
11
12
13
14

UsageFault
Reserved
SVC
DebugMonitor
Reserved
PendSV

Programmable
Pas utilisee
Programmable
Programmable
Pas utilisee
Programmable

15

SYSTICK

Programmable

Reset
Exception Non Masquable
Toutes les exceptions
materielles
Exception du `
a la gestion
memoire
Erreur materielle du au
bus
Erreur du au programme

Appel syst`eme
Moniteur de mise au point

Requete
de
service
dexception
Timer interne cortex M3

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

47 / 200

Les interruptions

Les interruption du microcontr


oleur STM32

Interruptions externes

Liste
Numero
Exception

Type

Priorite

0
1
2
...
58
59

Watchdog
PVD
TAMPER
...
DMA2 Channel3
DMA2 Channel4 5

Programmable
Programmable
Programmable
...
Programmable
Programmable

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

48 / 200

Les interruptions

Les interruption du microcontr


oleur STM32

Priority

Position

Table Vecteur Compl`ete


Type of
priority

Acronym

Description

Address

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

49 / 200

Les interruptions

Les interruption du microcontr


oleur STM32

Position

Priority

Table Vecteur Compl`ete


Type of
priority

Description

Address

ENSEA (ETIS / ENSEA)

Acronym


Microprocesseurs-Microcontr
oleurs

Automne 2010

50 / 200

Les interruptions

Les interruption du microcontr


oleur STM32

Position

Priority

Table Vecteur Compl`ete


Type of
priority

Description

Address

ENSEA (ETIS / ENSEA)

Acronym

Microprocesseurs-Microcontr
oleurs

Automne 2010

51 / 200

Les interruptions

Registres Sp
eciaux li
es aux interruptions

le registre xPSR

31
APSR N

30

29

28

27

26:25

24

23:20

19:16

15:10

IPSR

4:0

Exception Number

EPSR

xPSR

ICI/IT

31

30

29

28

27

26:25

24

ICI/IT

ENSEA (ETIS / ENSEA)

ICI/IT

23:20

19:16

Microprocesseurs-Microcontr
oleurs

15:10
ICI/IT

4:0

Exception Number

Automne 2010

52 / 200

Les interruptions

Registres Sp
eciaux li
es aux interruptions

PRIMASK, FAULTMASK, BASEPRI


Nom
PRIMASK

Valeur Initiale
0

FAULTMASK

BASEPRI

ENSEA (ETIS / ENSEA)

Description
Registre 1 bit.
Autorise
linterruption NMI et les exceptions materielles. Toutes les
autres interruptions sont interdites
Registre 1 bit.
Autorise
seulement linterruption NMI.
Toutes les autres interruptions
sont interdites
Registre 8 bits. Defini le niveau
de priorite. Permet dinterdire
toute interruption de niveau
meme niveau ou de niveau
plus faible. Les interruptions
de niveau plus haut sont auMicroprocesseurs-Microcontr
Automne 2010
torisees. oleurs

53 / 200

Les interruptions

Registres Sp
eciaux li
es aux interruptions

Registre CONTROL

bit
1

ENSEA (ETIS / ENSEA)

Description
Etat de la Pile
= 0 Pile principale MSP
= 1 Pile alternative
= 0 Mode superviseur
= 1 Mode utilisateur

Microprocesseurs-Microcontr
oleurs

Automne 2010

54 / 200

Les interruptions

Registres Sp
eciaux li
es aux interruptions

Registre CONTROL

Interruption
Programme Principal

ENSEA (ETIS / ENSEA)

Superviseur
mode Handler
CONTROL[1]=0
mode Thread
CONTROL[0]=0
CONTROL[1]=0(1)

Microprocesseurs-Microcontr
oleurs

Utilisateur
Non Autorise
mode Thread
CONTROL[0]=1
CONTROL[1]=0(1)

Automne 2010

55 / 200

Les interruptions

D
eroulement dune interruption

Deroulement


ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

56 / 200

Les interruptions

D
eroulement dune interruption

Deroulement





ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

57 / 200

Les interruptions

Les priorit
es

Le besoin de priorites
Certains
evenements provoquant des interruptions sont plus critiques

que dautres

Premier Ev
enement : Demande daffichage dun message de controle

sur lecran du pilote dun avion de ligne


Seconde Ev
enement : Extinction dun reacteur de cet avion

Il semble quil soit plus urgent de red


emarrer le reacteur que dafficher

des informations
ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

58 / 200

Les interruptions

Les priorit
es

Le besoin de priorites

N
ecessite de definir une politique de gestion des priorites
Elle doit permettre quune interruption plus prioritaire interrompe une

interruption moins prioritaire en cours dexecution


Elle doit interdire quune interruption moins prioritaire interrompe une

interruption plus prioritaire en cours dexecution


Elle peut fixer des priorit
es non modifiables
Cas du reset par exemple

Pour plus de souplesse de programmation elle doit offrir la possibilit


e

de choisir le niveau de priorite de la plupart des sources dinterruption

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

59 / 200

Les interruptions

Les priorit
es

Schema des priorites du STM32

Priorites `a 3 bits
Bit 7

Bit 6 Bit 5 Bit 4


Actifs
8 niveaux de priorit
es

Bit 3

Bit 2
Inactifs

Bit 1

Bit 0

Priorites `a 4 bits
Bit 7

Bit 6 Bit 5 Bit 4


Actifs
16 niveaux de priorit
es

ENSEA (ETIS / ENSEA)

Bit 3

Bit 2 Bit 1
Inactifs

Microprocesseurs-Microcontr
oleurs

Bit 0

Automne 2010

60 / 200

Les interruptions

Les priorit
es

Registre AIRCR
Adresse : 0xE000ED0C
Bits

Nom

Type

Valeur Reset

Description

31:16
15

VECTKEY
ENDIANNESS

R/W
R

10:8

PRIGROUP

R/W

SYSRESETREQ

VECTCLRACTIVE

VECTRESET

0x05FA
Indique larrangement
des octets : 1 pour
Big Endian, 0 pour
Little Endian
Numero du groupe de
priorites
Requete de contr
ole
du circuit pour generer
un reset
Efface toutes les informations sur letat des
exceptions
Reset du coeur du processeur CortexM3

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

61 / 200

Les interruptions

Les priorit
es

Schema des priorites avec utilisation des


groupes de priorites

liste

Groupe de
Priorite

Priorite

Sous-Priorite

Nombre
Priorites

0
1
2
3
4
5
6
7

Bit[7:1]
Bit[7:2]
Bit[7:3]
Bit[7:4]
Bit[7:5]
Bit[7:6]
Bit[7]
Aucune

Bit[0]
Bit[1:0]
Bit[2:0]
Bit[3:0]
Bit[4:0]
Bit[5:0]
Bit[6:0]
Bit[7:0]

128
64
32
16
8
4
2
0

ENSEA (ETIS / ENSEA)

de

Microprocesseurs-Microcontr
oleurs

Nombre
de
Sous-Priorites
2
4
8
16
32
64
128
256

Automne 2010

62 / 200

Les interruptions

Les priorit
es

Schema des priorites avec utilisation des


groupes de priorites
Priorites `a 3 bits avec Groupe de priorite egal `a 5
Bit 7

Bit 6

Priorit
e

Bit 5

Bit 4

Bit 3

Sous-

Bit 2

Bit 1

Bit 0

Inactifs

Priorit
e

4 niveaux de priorit
es et 2 niveaux de sous-priorites

Priorites `a 3 bits avec Groupe egal `a 1


Bit 7

Bit 6

Bit 5

Priorit
e

Bit 4

Bit 3

Bit 2

Priorit
e toujours `
a0

Bit 1

Bit 0

Sous Priorit
e toujours `
a
0

8 niveaux de priorit
es

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

63 / 200

Les interruptions

Les priorit
es

Schema des priorites avec utilisation des


groupes de priorites

Priorites `a 3 bits avec Groupe egal `a 1


Bit 7

Bit 6

Bit 5

Bit 4

Bit 3

Bit 2

Priorit
e

Bit 1

Bit 0
Sous
Priorit
e

8 niveaux de priorit
es

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

64 / 200

Les interruptions

Les vecteurs dinterruption

Vectorisation dans le STM32


Quand une interruption intervient il est n
ecessaire didentifier la

bonne routine de service


Pour cela il faut d
eterminer ladresse du programme correspondant `a

cette routine
Cette information est stock
ee dans une table des vecteurs

dinterruption
Par d
efaut cette table est stockee `a ladresse 0
Cette table est relogeable via le registre VTOR (Vector Table Offset

Register)
La table est organis
ee en mot de 4 octets (32 bits)
Ladresse du vecteur dune interruption est calcul
ee en multipliant par

4 son numero.
ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

65 / 200

Les interruptions

Les vecteurs dinterruption

Vecteur Interruption

Table des vecteurs dexception apr`es mise sous tension


Adresse

Numero Valeur
de
lexception

0x00000000
0x00000004

0x00000008
0x0000000C

2
3

...

...

ENSEA (ETIS / ENSEA)

Valeur initiale de MSP


Valeur initiale du Compteur de Programme (vecteur
de Reset)
Adresse de la fonction de gestion de lexception NMI
Adresse de la fonction de gestion de lexception
HardFault
Autres adresse des fonctions de gestion des exceptions

Microprocesseurs-Microcontr
oleurs

Automne 2010

66 / 200

Les interruptions

Les vecteurs dinterruption

Registre VTO

Adresse 0xE000ED08
Bits

Nom

Type

Valeur
initiale

Description

29

TBLBASE

R/W

28:7

TBLOFF

R/W

Base de la table : 0 pour ROM, 1


pour RAM
Valeur du decalage de la table des
vecteurs dexceptions

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

67 / 200

Les interruptions

Fonctionnement des interruptions

Traitement dune interruption

Quand une interruption est servie il est r


ealise :
Lempilement de 8 registres
Le chargement du vecteur de la routine dinterruption
La mise `
a jour du pointeur de pile, du registre de lien (LR) et du
compteur de programme(PC)

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

68 / 200

Les interruptions

Fonctionnement des interruptions

Empilement des registres

Empilement des registres R0 `


a R3,R12,LR, PC et PSR
Utilisation de la Pile utilisateur PSP si le code du programme
etait

execute en mode utilisateur


Utilisation de la Pile principale MSP si le code du programme
etait

execute en mode superviseur


Pendant le service de linterruption dans tous les cas seule la pile

principale MSP sera utilisee


Pour plus defficacit
e les valeurs de PC et PSR sont les premi`eres `a

etre empilees

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

69 / 200

Les interruptions

Fonctionnement des interruptions

Empilement des registres


Adresse
Ancien SP(N)
N-4
N-8
N-12
N-16
N-20
N-24
N-28
Nouveau SP(N-32)

ENSEA (ETIS / ENSEA)

Donnees

Ordre dempilement

PSR
PC
LR
R12
R3
R2
R1
R0

2
1
8
7
6
5
4
3

Microprocesseurs-Microcontr
oleurs

Automne 2010

70 / 200

Les interruptions

Fonctionnement des interruptions

Chargement du vecteur dinterruption

Le bus de donn
ees est occupe aux empilements de registres
Sur le bus dinstruction est charg
e le vecteur dinterruption
Puisque les deux op
erations utilisent deux bus disctinct elles sont

realisees en parall`ele

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

71 / 200

Les interruptions

Fonctionnement des interruptions

Mise `a jour des registres


Le pointeur de pile (MSP ou PSP) est actualis
e apr`es empilement des

registres
La partie IPSR du registre d
etat PSR est mise `a jour avec le numero

de linterruption
Le compteur de programme est mise `
a la valeur de ladresse de la

routine de service de linterruption via le vecteur dinterruption


Le registre de lien LR est mis `
a jour avec une valeur speciale appelee

EXC RETURN permettant de gerer les retours dinterruption. Les 4


bits de poids faible de ce nouveau LR contiennent linformation de
retour.

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

72 / 200

Les interruptions

Fonctionnement des interruptions

Valeur EXC RETURN

Bits

31 `
a4

Description

0xFFFFFFF

Mode de retour
(Thread/Handler)

Pile de retour
(MSP/PSP)

Etat Processus
(Thumb/ARM)

Valeur

Condition

0xFFFFFFF1
0xFFFFFFF9
0xFFFFFFFD

Retour `
a une routine de service dinterruption
Retour `
a un programme principal en mode superviseur
Retour `
a un programme principal en mode utilisateur

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

73 / 200

Les interruptions

Fonctionnement des interruptions

Augmenter la reactivite du service des


interruptions

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

74 / 200

Les interruptions

Fonctionnement des interruptions

Augmenter la reactivite du service des


interruptions

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

75 / 200

Les interruptions

Fonctionnement des interruptions

Determiner les retours dinterruption en


mode superviseur





ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

76 / 200

Les interruptions

Fonctionnement des interruptions

Determiner les retours dinterruption en


mode utilisateur





ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

77 / 200

Les interruptions

Fonctionnement des interruptions

Mise en attente interruption

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

78 / 200

Les interruptions

Fonctionnement des interruptions

Mise en attente interruption avec raz


avant service

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

79 / 200

Les interruptions

Fonctionnement des interruptions

Requete maintenue lors du debut de


service de linterruption

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

80 / 200

Les interruptions

Fonctionnement des interruptions

Requete maintenue apr`es service de


linterruption

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

81 / 200

Les interruptions

Fonctionnement des interruptions

Requete hoquetante

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

82 / 200

Les interruptions

Fonctionnement des interruptions

Requete pendant service

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

83 / 200

Les interruptions

Exceptions syst`
eme

Gestion des exceptions syst`eme

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

84 / 200

Les interruptions

Exceptions syst`
eme

registre BFS

Adresse 0xE000ED29
Bits

Nom

Type

Valeur
Initiale

Description

BFARVALID

6:5
4
3
2

STKERR
UNSTKERR
IMPRECISERR

R/Wc
R/Wc
R/Wc

0
0
0

1
0

PRECISERR
IBUSERR

R/Wc
R/Wc

0
0

Indique si le contenu du registre


BFAR est valide

Erreur dempilement
Erreur de depilement
Violation dacc`es aux donnees
imprecis
Violation dacc`es aux donnees precis
Violation dacc`es aux instructions

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

85 / 200

Les interruptions

Exceptions syst`
eme

registre MMS

Adresse 0xE000ED28
Bits

Nom

Type

Valeur
Initiale

Description

MMARVALID

6:5
4
3
2
1
0

MSTKERR
MUNSTKERR

DACCVIOL
IACCVIOL

R/Wc
R/Wc

R/Wc
R/Wc

0
0

0
0

Indique si le contenu du registre


MMAR est valide

Erreur dempilement
Erreur de depilement

Violation dacc`es aux donnees


Violation dacc`es aux instructions

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

86 / 200

Les interruptions

Exceptions syst`
eme

registre UFS
Adresse 0xE000ED2A
Bits

Nom

Type

Valeur
Initiale

Description

DIVBYZERO

UNALIGNED

R/Wc

7:4
3

NOCP

R/Wc

INVCP

R/Wc

INVSTATE

R/Wc

UNDEFINSTR

R/Wc

Indique si quune division par zero


a eu lieu (necessite que DIV 0 TRP
soit positionne)
Indique quun acc`es aux donnee nonaligne a eu lieu

Indique un essai dexecution dune instruction coprocesseur


Indique un essai de retour dexception
avec une valeur erronee du PC
Indique un essai de changement
detat invalide (etat ARM)
Indique un essai dexecution dune instruction non definie

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

87 / 200

Les interruptions

Exceptions syst`
eme

registre HFS
Adresse 0xE000ED2C
Bits

Nom

Type

Valeur
Initiale

Description

31

DEBUGEVT

R/Wc

30

FORCED

R/Wc

29:2
1

VECTL

R/Wc

Indique quune faute materielle est


declenche par un evenement de debug
Indique quune faute materielle est
declenchee du `
a une faute memoire,
de bus ou dusage

Indique une faute materielle causee


par lechec du chargement de la table des vecteurs dexception

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

88 / 200

Les interruptions

Syst`
eme dexploitation

Syst`eme dexploitation

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

89 / 200

Les interruptions

Syst`
eme dexploitation

Utilisation de SVC

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

90 / 200

Les interruptions

Syst`
eme dexploitation

Simple Scenario avc SYSTICK

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

91 / 200

Les interruptions

Syst`
eme dexploitation

Probl`eme lors dune arrive dinterruption

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

92 / 200

Les interruptions

Syst`
eme dexploitation

Utilisation de SVC et PendSV

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

93 / 200

Les interruptions

Contr
oleur NVIC

Le controleur dinterruption du STM32

Le STM32 h
erite du contr
oleur dinterruption du CortexM3
Le NVIC (Nested Vectored Interrupt Controller)
Il contr
ole les interruptions via des registres de configurations
Autorisation ou Interdiction dune source dinterruption
R
eglage du niveau de priorite des sources dinterruption
Il contr
ole aussi un timer syst`eme nomme SYSTICK

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

94 / 200

Les interruptions

Contr
oleur NVIC

Fonctionnement de base du NVIC

Registres de configuration pour autoriser et interdire les sources

dinterruptions
Registres de configuration pour positionner ou annuler une demande

dinterruption
Registres de configuration des niveaux de priorit
e des sources

dinterruptions
Registre d
etat dactivite des routines de service des interruptions

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

95 / 200

Les interruptions

Contr
oleur NVIC

Registres de configuration dautorisation


dinterruptions : NVIC ISER0
Adresse

Nom

Type

Valeur Description
Init.

0xE000E100

SETENA

R/W

ENSEA (ETIS / ENSEA)

Autorisation source interruption num


ero 0 `
a
31
bit[0] pour linterruption num
ero 0 (Watchdog)
bit[1] pour linterruption num
ero 1 (PVD)
...
bit[31] pour linterruption num
ero 31
(I2C1 EV)
Ecrire 1 pour autoriser - Ecrire 0 na aucun
effet

Microprocesseurs-Microcontr
oleurs

Automne 2010

96 / 200

Les interruptions

Contr
oleur NVIC

Registres de configuration dautorisation


dinterruptions : NVIC ISER1

0xE000E104

SETENA

ENSEA (ETIS / ENSEA)

R/W

Autorisation source interruption num


ero 32
`
a 63
bit[0] pour linterruption num
ero 32
(I2C1 ER)
bit[1] pour linterruption num
ero 33
(I2C2 EV)
...
bit[27] pour linterruption num
ero 59
(DMA2 Channel4 5)
Ecrire 1 pour autoriser - Ecrire 0 na aucun
effet

Microprocesseurs-Microcontr
oleurs

Automne 2010

97 / 200

Les interruptions

Contr
oleur NVIC

Registres de configuration dinterdiction


dinterruptions : NVIC ICER0
Adresse

Nom

Type

Valeur Description
Init.

0xE000E180

CLRENA

R/W

ENSEA (ETIS / ENSEA)

Interdiction source interruption num


ero 0 `
a
31
bit[0] pour linterruption num
ero 0 (Watchdog)
bit[1] pour linterruption num
ero 1 (PVD)
...
bit[31] pour linterruption num
ero 31
(I2C1 EV)
Ecrire 1 pour autoriser - Ecrire 0 na aucun
effet

Microprocesseurs-Microcontr
oleurs

Automne 2010

98 / 200

Les interruptions

Contr
oleur NVIC

Registres de configuration dinterdiction


dinterruptions : NVIC ICER1
Adresse

Nom

Type

Valeur Description
Init.

0xE000E184

CLRENA

R/W

ENSEA (ETIS / ENSEA)

Interdiction source interruption num


ero 32 `
a
63
bit[0] pour linterruption num
ero 32
(I2C1 ER)
bit[1] pour linterruption num
ero 33
(I2C2 EV)
...
bit[27] pour linterruption num
ero 59
(DMA2 Channel4 5)
Ecrire 1 pour autoriser - Ecrire 0 na aucun
effet

Microprocesseurs-Microcontr
oleurs

Automne 2010

99 / 200

Les interruptions

Contr
oleur NVIC

Registre de demande dinterruption :


NVIC ISPR0

Adresse

Nom

Type

Valeur Description
Init.

0xE000E200

SETPEND

R/W

ENSEA (ETIS / ENSEA)

Demande dinterruption des num


ero 0 `
a 31
bit[0] pour linterruption num
ero 0 (Watchdog)
...
bit[31] pour linterruption num
ero 31
(I2C1 EV)
Ecrire 1 pour autoriser - Ecrire 0 na aucun
effet
La lecture indique les demandes en cours

Microprocesseurs-Microcontr
oleurs

Automne 2010

100 / 200

Les interruptions

Contr
oleur NVIC

Registre de demande dinterruption :


NVIC ISPR1

Adresse

Nom

Type

Valeur Description
Init.

0xE000E204

SETPEND

R/W

ENSEA (ETIS / ENSEA)

Demande dinterruption des num


ero 32 `
a 63
bit[0] pour linterruption num
ero 32
(I2C1 ER)
...
bit[27] pour linterruption num
ero 59
(DMA2 Channel4 5)
Ecrire 1 pour autoriser - Ecrire 0 na aucun
effet
La lecture indique les demandes en cours

Microprocesseurs-Microcontr
oleurs

Automne 2010

101 / 200

Les interruptions

Contr
oleur NVIC

Registre dinvalidation de demande


dinterruption : NVIC ICPR0
Adresse

Nom

Type

Valeur Description
Init.

0xE000E280

CLRPEND

R/W

ENSEA (ETIS / ENSEA)

Invalidation demande dinterruption des


num
ero 0 `
a 31
bit[0] pour linterruption num
ero 0 (Watchdog)
...
bit[31] pour linterruption num
ero 31
(I2C1 EV)
Ecrire 1 pour autoriser - Ecrire 0 na aucun
effet
La lecture indique les demandes en cours

Microprocesseurs-Microcontr
oleurs

Automne 2010

102 / 200

Les interruptions

Contr
oleur NVIC

Registre dinvalidation de demande


dinterruption : NVIC ICPR1
Adresse

Nom

Type

Valeur Description
Init.

0xE000E284

CLRPEND

R/W

ENSEA (ETIS / ENSEA)

Invalidation demande dinterruption des


num
ero 32 `
a 63
bit[0] pour linterruption num
ero 32
(I2C1 ER)
...
bit[27] pour linterruption num
ero 59
(DMA2 Channel4 5)
Ecrire 1 pour autoriser - Ecrire 0 na aucun
effet
La lecture indique les demandes en cours

Microprocesseurs-Microcontr
oleurs

Automne 2010

103 / 200

Les interruptions

Contr
oleur NVIC

Registre de priorite des interruptions :


NVIC IPR0
Adresse

Nom

Type

Valeur
Init.

Description

0xE000E400

IP[0]

R/W

0(8bits)

IP[1]

R/W

0(8bits)

IP[2]

R/W

0(8bits)

IP[3]

R/W

0(8bits)

Niveau
num
ero
Niveau
num
ero
Niveau
num
ero
Niveau
num
ero

de priorit
e de
0 (Watchdog)
de priorit
e de
1 (PVD)
de priorit
e de
2 (TAMPER)
de priorit
e de
3 (RTC)

linterruption
linterruption
linterruption
linterruption

NVIC IPR0, NVIC IPR1 `


a NVIC IPR14

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

104 / 200

Les interruptions

Contr
oleur NVIC

Registre de priorite des interruptions :


NVIC IPR8

Adresse

Nom

Type

Valeur
Init.

Description

0xE000E420

IP[32]

R/W

0(8bits)

IP[33]

R/W

0(8bits)

IP[34]

R/W

0(8bits)

IP[35]

R/W

0(8bits)

Niveau
num
ero
Niveau
num
ero
Niveau
num
ero
Niveau
num
ero

ENSEA (ETIS / ENSEA)

de priorit
e
32 (I2C1 ER)
de priorit
e
33 (I2C1 EV)
de priorit
e
34 (I2C1 ER)
de priorit
e
35 (SPI1)

Microprocesseurs-Microcontr
oleurs

de linterruption
de linterruption
de linterruption
de linterruption

Automne 2010

105 / 200

Les interruptions

Contr
oleur NVIC

Registre de priorite des interruptions :


NVIC IPR14

Adresse

Nom

Type

Valeur
Init.

Description

0xE000E438

IP[56]

R/W

0(8bits)

IP[57]

R/W

0(8bits)

IP[58]

R/W

0(8bits)

IP[59]

R/W

0(8bits)

Niveau
num
ero
Niveau
num
ero
Niveau
num
ero
Niveau
num
ero

ENSEA (ETIS / ENSEA)

de priorit
e de linterruption
56 (DMA2 Channel1)
de priorit
e de linterruption
57 (DMA2 Channel2)
de priorit
e de linterruption
58 (DMA2 Channel3)
de priorit
e de linterruption
59 (DMA2 Channel4 5)

Microprocesseurs-Microcontr
oleurs

Automne 2010

106 / 200

Les interruptions

Contr
oleur NVIC

Registre dactivite des interruptions :


NVIC IABR0

Adresse

Nom

Type

Valeur Description
Init.

0xE000E300

ACTIVE

ENSEA (ETIS / ENSEA)

Etat dactivit
e des interruptions 0 `
a 31
bit[0] pour linterruption num
ero 0 (Watchdog)
...
bit[31] pour linterruption num
ero 31
(I2C1 EV)

Microprocesseurs-Microcontr
oleurs

Automne 2010

107 / 200

Les interruptions

Contr
oleur NVIC

Registre dactivite des interruptions :


NVIC IABR1

Adresse

Nom

Type

Valeur Description
Init.

0xE000E304

ACTIVE

ENSEA (ETIS / ENSEA)

Etat dactivit
e des interruptions 32 `
a 59
bit[0] pour linterruption num
ero 32
(I2C1 ER)
...
bit[27] pour linterruption num
ero 59
(DMA2 Channel4 5)

Microprocesseurs-Microcontr
oleurs

Automne 2010

108 / 200

Exemple de p
eriph
eriques

Sommaire
1 Presentation
2 Embarquons
3 Le micro-contr
oleur STM32
4 Les interruptions
5 Exemple de peripheriques
Le convertisseur Analogique-Numerique
Le DMA : Direct Memory Acces
Les Timers
Ledition de lien

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

109 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

Convetisseur Analogique Numerique ou


ADC (Analog Digital Conversion)

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

110 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

ADC : Definitions
Signal continu
Signal chantillonn
Signal quantifi

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

111 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

ADC : Caracteristiques

R
esolution : Amplitude de la plus petite variation. Correspond au

LSB (Least Significant Bit)


Temps de conversion : Temps de stabilisation de la donn
ee en sortie
Erreur de Quantification : Incertitude du `
a la conversion
Pleine Echelle : Etendue de la grandeur Analogique dentr
ee

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

112 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

ADC : Types

Il exite diff
erents type de conversion
La conversion `
a rampe
La conversion `
a double rampe
La conversion `
a approximation successive
La conversion Flash
La conversion Sigma-Delta

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

113 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

La conversion `a approximations
successives

Vin

Registre

Horloge

CNA

Controle

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

114 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

La conversion `a approximations
successives

D
etermination des valeurs de bits de N les unes apr`es les autres en

commencant par le bit de poids fort


On fixe le bit de poids fort `
a 1 et les autres `a 0. Conversion NA du

registre et comparaison `a Vin


Si Vin est plus grand alors le bit reste `
a 1 sinon il passe `a 0.
On garde la valeur du bit de poids fort et on passe au bit suivant
On refait le m
eme traitement que precedemment pour ce bit et ainsi

de suite jusquau bit de poids faible.

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

115 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

La conversion `a approximations
successives
Exemple : Convertisseur 8 bits, Vref =10 V
Tension `
a convertir 6,92 V
10000000 = 5V < 6, 92 B7 = 1
11000000 = 7, 5V > 6, 92 B6 = 0
10100000 = 6, 25V < 6, 92 B5 = 1
10110000 = 6, 675V < 6, 92 B4 = 1
10111000 = 7, 1875V > 6, 92 B3 = 0
10110100 = 7, 03125V > 6, 92 B2 = 0
10110010 = 6, 95312V > 6, 92 B1 = 0
10110001 = 6, 91406V < 6, 92 B0 = 1
Valeur Num
erique :10110001
ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

116 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

ADC STM32 : Caracteristiques Principales


R
esolution de 12 bits
Interruption de fin de conversion
Mode simple conversion ou conversion continue
Mode de balayage multi-canal
Auto-Calibration
Alignement des donn
ees sur 16 bits (droite ou gauche)
Temps de conversion programmable canal par canal
D
eclenchement par signal externe
Mode de conversion discontinue lors de balayage
Chainage de convertisseur (si le circuit en poss`
ede au moins 2)
Tension requise entre 2,4 V et 3,6V
Plage de conversion entre Vref 6 Vin 6 Vref +
Requ
ete DMA pour la conversion reguli`ere
ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

117 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

ADC STM32 : Schema

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

118 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

ADC STM32 : Description Fonctionnelle


Horloge

Mise sous tension


Mise sous tension via la mise `
a

1 du bit ADON (registre CR2


de lADC)
La premi`
ere mise `a 1 du bit

ADON met sous tension lADC


La seconde mise `
a 1 du bit

ADON demarre la conversion


La mise hors tension et larr
et

de la conversion seffectue en
mettant `a 0 le bit ADON

lhorloge ADCCLK du

convertisseur est synchrone


avec celle du bus APB2,
lhorloge PCLK2
Il est possible de programmer

un prediviseur, par rapport `a


PCLK2, pour lhorloge
ADCCLK dans le controleur
RCC

En mode hors tension lADC ne

consomme que quelques A


ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

119 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

ADC STM32 : Description Fonctionnelle


Selection des Canaux
Il y a 16 canaux de conversions

multiplexes

Capteur de Temperature/Tension
Un capteur de temp
erature

Organisation possible en deux

interne est connecte au canal


16

groupes : reguliers et injectes

Une tension Vrefint interne est

Un groupe est une s


equence de

connectee au canal 17

conversions (16 au plus pour


reguliers, 4 au plus pour
injectes)

Accessible avec lADC1

Une s
equence peut-etre realisee

dans un ordre aleatoire


Le nombre de conversions,

lordre de conversion sont fixes


via les
JSQR
ENSEA
(ETISregistres
/ ENSEA) SQRx et
Microprocesseurs-Microcontr
oleurs

Automne 2010

120 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

ADC STM32 : Description Fonctionnelle


Mode Conversion Continue

Mode Simple Conversion


Bit CONT `
a 0 (registre CR2)

Bit CONT `
a 1 (registre CR2)

D
emarrage par bit ADON

D
emarrage par bit ADON

uniquement pour groupe


reguliers
Une fois le canal converti

uniquement pour groupe


reguliers
Une fois le canal converti

La donn
ee convertie est

La donn
ee convertie est

stockee dans le registre


16bits DR
Le drapeau EOC est
positionnee
Une interruption est g
eneree
si le bit EOCIE est `a 1

stockee dans le registre


16bits DR
Le drapeau EOC est
positionnee
Une interruption est g
eneree
si le bit EOCIE est `a 1

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

121 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

ADC STM32 : Description Fonctionnelle


Diagramme Temporel Simple Conversion




ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

122 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

ADC STM32 : Description Fonctionnelle


Mode Discontinu

Balayage Multi-Canaux
Bit SCAN `a 1 (registre CR1)
Conversion des canaux selectionnes via

Bit DISCEN `a 1 (registre CR1)


Conversion dun sous ensemble de
canaux dun groupe

les registres SQRx et JSQR

Une conversion est effectuee pour


chaque canal du groupe

Apr`es la fin de conversion dun canal, le


canal suivant est directement traite

Necessite dutiliser le DMA pour


recuperer les donnees

Taille du sous ensemble n 6 8


Taille specifiee via les bits
DISCNUM[2:0] (registre CR1)

Pilote par un evenement externe


Lors de levenement, conversion des n
canaux parmi le groupe

Une interruption est generee, si EOCIE


est `
a 1, apr`es la derni`ere conversion

Exemple : n = 3, groupe
canal=[0,1,2,3,6,7,9,10]

ENSEA (ETIS / ENSEA)

1er
ev
enement, conv. des canaux [0,1,2]
2ieme
ev
enement, conv. des canaux [3,6,7]

3ieme
ev
enement, conv. des canaux [9,10] et EOC
Microprocesseurs-Microcontr
oleurs ieme
Automne 2010
123 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

ADC STM32 : Description Fonctionnelle


Alignement des Donnees

Calibration
Proc
edure dauto-calibration

Bit ALIGN (registre CR2)

R
eduction des erreurs de

Alignement `
a droite si ALIGN

precision du aux variations des


capacites internes
Calcul de lerreur pour chaque

=0
Alignement `
a gauche si ALIGN

=1

capacite
D
emarrage par mise `a 1 du bit

CAL (registre CR2)


Remise `
a zero automatique du

bit CAL apr`es calibration


Proc
edure recommandee `a la

mise sous tension de lADC


ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

124 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

ADC STM32 : Description Fonctionnelle

Declenchement externe

Temps de Conversion
Echantillonage sur n ADCCLK

Conversion pilotable par

evenement externe

cycles
n modifiable

Entr
ee EXTI

bits SMPx[2:0] pour le canal x

bit EXTTRIG `
a 1 (registre

(registres SMPR1 et SMPR2)


Diff
erenciation du temps par

CR2)
bits EXTSEL[2:0] pour

selectionner le type de
levenement

canal
Temps Total
Tconv = Tps Echant.+12, 5 cycles

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

125 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

ADC STM32 : Description Fonctionnelle

Source de levenement
TIM1 CC1
TIM1 CC2
TIM1 CC3
TIM2 CC2
TIM3 TRGO
TIM4 CC4
EXTI line11/TIM8 TRGO
SWSTART

ENSEA (ETIS / ENSEA)

Type
Interne
Interne
Interne
Interne
Interne
Interne
Externe/Interne
Logiciel

Microprocesseurs-Microcontr
oleurs

Valeur EXTSEL[2:0]
000
001
010
011
100
101
110
111

Automne 2010

126 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

ADC STM32 : Description Fonctionnelle


Requete DMA

Interruptions de lADC

R
esultat de la conversion pour

Possibilit
e de generer une

groupe regulier stocke dans un


unique registre DR

interruption `a la fin de la
conversion

Eviter la perte des donn


ees
EOC dun canal g
en`ere une

requete DMA permettant le


transfert du registre DR en
memoire
Emplacement m
emoire specifie

Autorisation par bit EOCIE

(groupe regulier) ou JEOCIE


(groupe injecte)
Les interruption de lADC1 et

ADC2 sont mappees sur le


meme vecteur dinterruption

par lutilisateur
ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

127 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

ADC STM32 : Registre Horloge RCC

CFGR, Adresse Base ADC1 = 0x4001 2400, Offset = 0x04, Valeur Initiale =

ENSEA (ETIS / ENSEA)

0x0000 0000

Microprocesseurs-Microcontr
oleurs

Automne 2010

128 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

ADC STM32 : Registre Horloge RCC

APB2ENR, Adresse Base ADC1 = 0x4001 2400, Offset = 0x18, Valeur Initiale =

0x0000

0000

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

129 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

ADC STM32 : Registre

SR, Adresse Base ADC1 = 0x4001 2400, Offset = 0x00, Valeur Initiale =

0x0000 0000

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

130 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

ADC STM32 : Registre


CR1, Adresse Base ADC1 = 0x4001 2400, Offset = 0x04, Valeur Initiale =

CR2, Adresse Base ADC1 = 0x4001 2400, Offset = 0x08, Valeur Initiale =

ENSEA (ETIS / ENSEA)

0x0000 0000

Microprocesseurs-Microcontr
oleurs

0x0000 0000

Automne 2010

131 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

ADC STM32 : Registre


SMPR1, Adresse Base ADC1 = 0x4001 2400, Offset = 0x0C, Valeur Initiale =

SMPR2, Adresse Base ADC1 = 0x4001 2400, Offset = 0x10, Valeur Initiale =

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

0x0000 0000

0x0000 0000

Automne 2010

132 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

ADC STM32 : Registre


SQR1, Adresse Base ADC1 = 0x4001 2400, Offset = 0x2C, Valeur Initiale =

SQR2, Adresse Base ADC1 = 0x4001 2400, Offset = 0x30, Valeur Initiale =

0x0000 0000

0x0000 0000

SQR3, Adresse Base ADC1 = 0x4001 2400, Offset = 0x34, Valeur Initiale =

0x0000 0000

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

133 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

ADC STM32 : Registre

DR, Adresse Base ADC1 = 0x4001 2400, Offset = 0x4C, Valeur Initiale =

0x0000 0000

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

134 / 200

Exemple de p
eriph
eriques

Le convertisseur Analogique-Num
erique

ADC STM32 : Registre

Autres Registres
JOFR1, JOFR2, JOFR3, JOFR4
Offset pour groupe inject
e. A soustraire de la valeur convertie
HTR, LTR
Seuils Haut (HTR) et Bas (LTR) des tensions pour le watchdog
JSQR
Nombre de conversion en groupe inject
e
JDR1, JDR2, JDR3, JDR4
Donn
ees lors de conversion groupe injecte

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

135 / 200

Exemple de p
eriph
eriques

Le DMA : Direct Memory Acces

DMA STM32 : Caracteristiques


Principales
12 canaux ind
ependants, 7 pour DMA1 et 5 pour DMA2
Connect
es sur les peripheriques du STM32
Priorit
es programmables entre canaux
Adressage circulaire support
e
3
evenements possible : demi-transfert DMA, transfert complet DMA

et erreur de transfert
Transferts m
emoire-memoire, peripherique-peripherique
Transferts p
eripherique-memoire, memoire-peripherique
Nombre de donn
ees `a transferer programmable jusqu`a 65536

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

136 / 200

Exemple de p
eriph
eriques

Le DMA : Direct Memory Acces

DMA STM32 : Description fonctionnelle


le DMA r
ealise des transferts directs en memoire en partageant le bus

Syst`eme avec le Cortex-M3


Apr`
es un evenement (fin de conversion par exemple) le peripherique

envoie une requete au DMA


Le DMA traite la requ
ete en fonction de la priorite du canal lie
Le transfert seffectue suivant 3
etapes :
Chargement de la donn
ee `a transferer. Adresse specifiee par le registre
DMA CPARx (peripherique) ou DMA CMARx (memoire)
Sauvegarde de la donn
ee transferee. Adresse specifiee par le registre
DMA CPARx (peripherique) ou DMA CMARx (memoire)
D
ecrementation du registre contenant le nombre de transferts `a realiser
DMA CNDTRx

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

137 / 200

Exemple de p
eriph
eriques

Le DMA : Direct Memory Acces

DMA STM32 : Controleur


Fixed hardware priority

Peripheral
request signals

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

138 / 200

Exemple de p
eriph
eriques

Le DMA : Direct Memory Acces

DMA STM32 : Canaux DMA1

Peripherals Channel 1

Channel 2

Channel 3

Channel 4

Channel 5

Channel 6

Channel 7

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

139 / 200

Exemple de p
eriph
eriques

Le DMA : Direct Memory Acces

DMA STM32 : Canaux DMA2


Peripherals

Channel 1

Channel 2

Channel 3

Channel 4

Channel 5

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

140 / 200

Exemple de p
eriph
eriques

Le DMA : Direct Memory Acces

DMA STM32 : Registre

ISR, Adresse Base DMA1 = 0x4002 0000, Offset = 0x00, Valeur Initiale = 0x0000 0000

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

141 / 200

Exemple de p
eriph
eriques

Le DMA : Direct Memory Acces

DMA STM32 : Registre

CCRx, Adresse Base DMA1 = 0x4002 0000, Offset = 0x08 + 20d * Numero Canal,
Valeur Initiale = 0x0000 0000

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

142 / 200

Exemple de p
eriph
eriques

Le DMA : Direct Memory Acces

DMA STM32 : Registre

CNDTRx, Adresse Base DMA1 = 0x4002 0000, Offset = 0x0C + 20d * Numero Canal,
Valeur Initiale = 0x0000 0000

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

143 / 200

Exemple de p
eriph
eriques

Le DMA : Direct Memory Acces

DMA STM32 : Registre

CPARx, Adresse Base DMA1 = 0x4002 0000, Offset = 0x010 + 20d * Numero Canal,
Valeur Initiale = 0x0000 0000

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

144 / 200

Exemple de p
eriph
eriques

Le DMA : Direct Memory Acces

DMA STM32 : Registre

CMARx, Adresse Base DMA1 = 0x4002 0000, Offset = 0x010 + 20d * Numero Canal,
Valeur Initiale = 0x0000 0000

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

145 / 200

Exemple de p
eriph
eriques

Les Timers

Timer STM32 : Caracteristiques Generales


Compteur/D
ecompteur 16 bits rechargeable automatiquement.
Pr
ediviseur 16 bits programmable
Jusqu`
a 4 canaux indepandant permettant :
La capture d
evenements
La comparaison avec le compteur
Un mode PWM (Pulse Width Modulation)
Mode one-pulse
Circuit de synchronisation externe et chainage des diff
erents timers

possible
G
eneration dInterruption ou de requete DMA sur differents

evenements :
Recyclage du compteur, initialisation du compteur
D
eclenchemebt (Start, Stop, initialisation ou declenchement

interne/externe)
Capture d
evenement
Comparaison
ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

146 / 200

Exemple de p
eriph
eriques

Les Timers

Timer STM32 : Schema Fonctionnel

Internal Clock (CK_INT)

ETRF
ETRP

ETR

TRGO

ITR0
ITR1

TGI

ITR

ITR2

TRC

TRGI

ITR3
TI1F_ED

TI1FP1

Diviseur de
Frquence

PSC

TI1FP1
TI1FP2

TRC

TI2

TI2FP1
TI2FP2

IC1PS U

CC1I
OC1REF

OC1

CC2I

IC2PS U

Compteur

CC2I

IC2

UI
U

CNT

+/-

CC1I

IC1

TI1

TI2FP2

OC2REF

OC2

TRC
CC3I

TI3

TI3FP3
TI3FP4

IC3

TRC
TI4

TI4FP3
TI4FP4

IC3PS

CC3I

CC4I

IC4

IC4PS

OC3REF

OC3

CC4I

OC4REF

OC4

TRC
ETRF

Analyse signaux
entre (dtection
vnements)

ENSEA (ETIS / ENSEA)

Gnration de signaux
de sortie
Capture du timer

Microprocesseurs-Microcontr
oleurs

Automne 2010

147 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Description Fonctionnelle


Unite de base

Fonctionnement

Le composant principal : un

est precharge

compteur 16 bits
Mode d
ecompteur/compteur -

Auto chargement
Pr
ediviseur de lhorloge du

compteur
Les registres
Registre du compteur :

TIMx CNT
Registre du pr
ediviseur :

TIMx PSC
Registre dauto chargement :

TIMx ARR
ENSEA (ETIS / ENSEA)

Le registre dauto-chargement (ARR)


Lire ou ecrire dans le registre
dauto-chargement revient `
a acceder
au registre de prechargement

Le contenu du registre de
prechargement est transferer dans le
registre dauto-chargement (Shadow)
soit de facon permanente ou `
a
chaque evenement de mise `
a jour
(bit UEV) en fonction du bit ARPE
dans le registre CR1

Levenement de mise `a jour est

genere quand le compteur recycle


(ou logiciellement) et que le bit
UDIS
est2010
`
a 0 148 / 200
Microprocesseurs-Microcontr
oleurs du registre CR1
Automne

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Description Fonctionnelle


Prediviseur

Mode compteur

Le compteur est pilote par une horloge


pr
edivis
e CK CNT

CR1)

Cette horloge est activee uniquement si


le bit CEN du registre CR1 est `
a1

Remarque : le signal CNT EN relie `a


CK CNT passe `
a 1 apr`
es 1 cycle
dhorloge suite `
a la mise `
a 1 du bit CEN.

Il peut diviser lhorloge dun facteur

Dans ce mode le compteur compte de 0


`
a la valeur du registre
dauto-chargement (registre ARR)

Arrivee `a la valeur du registre ARR il


recycle en red
emarrant un cycle de
comptage de 0

Au recyclage un evenement de

compris entre 1 et 65536

Cest un compteur 16 bits controler par


le registre 16 bits PSC

Sa valeur peut etre changee au fil de


leau elle sera alors prise en compte au
prochain
ev
enement de mise `
a jour

ENSEA (ETIS / ENSEA)

Bit CMS = 00 et bit DIR = 0 (registre

d
epassement de capacit
e est g
en
er
e
(Overflow)

Un evenement de mise `a jour peut etre


g
en
er
e`
a chaque recyclage ou en
positionnant le bit UG du registre EGR

Microprocesseurs-Microcontr
oleurs

Automne 2010

149 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Description Fonctionnelle


Mode Compteur
L
evenement de mise `a jour

peut etre desactive via le bit


UDIS du registre CR1

Mode compteur - Mise `a jour


Le registre tampon du

prediviseur est recharge avec la


valeur du registre PSC

Si le bit URS (registre CR1) est

Le registre dauto-chargement

`a 1, positionner le bit UG
genere un evenement de mise `a
jour sans generer dinterruption

est recharge avec la valeur du


registre ARR

Quand un
evenement de mise `a

jour survient, tous les registres


sont mise `a jour et le bit
dinterruption IUF du registre
SR est mis `a 1 en fonction de
la valeur du bit URS. Microprocesseurs-Microcontroleurs
ENSEA (ETIS / ENSEA)

Automne 2010

150 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Description Fonctionnelle

Mode Compteur
Predivision par 1

Mode compteur
Predivision par 2

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

151 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Description Fonctionnelle

Mode Compteur
Predivision par 4

Mode compteur
Predivision par N

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

152 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Description Fonctionnelle

Mode Compteur
UEV quand ARPE=0

Mode compteur
UEV quand ARPE=1

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

153 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Description Fonctionnelle


Mode Compteur - Changement Predivision de 1 `a 2

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

154 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Description Fonctionnelle


Mode decompteur

Mode Alterne

Bit CMS = 00 et bit DIR = 0

Bit CMS = 01, 10 ou 11

(registre CR1)

(registre CR1)
Idem mode compteur sauf que

comptage de la valeur du
registre de pre-chargement `a 0

Dans un premier temps mode

compteur de 0 `a valeur
dauto-chargement
Puis recyclage
Dans un second temps mode

decompteur de valeur
dauto-chargement `a 0
Puis recyclage
et reprise en mode compteur et

ainsi de suite
ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

155 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Description Fonctionnelle

Mode Decompteur - Predivision par 1

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

156 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Description Fonctionnelle


Mode Alterne - ARR = 6

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

157 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Description Fonctionnelle


Selection dhorloge

Selection dhorloge
Lhorloge du compteur peut provenir

Une seconde horloge externe sur une


entree de declenchement ETR

de
Lhorloge interne par d
efaut

CK INT qui est generee par :


HSI par defaut Oscillateur
8 MHz (bits SW = 00
registre CFGR unite CRR)
HSE oscillateur externe
(bits SW = 01 registre
CFGR unite CRR)
PLL (bits SW = 10
registre CFGR unite CRR)
Une premi`
ere horloge externe

sur une broche TIx


ENSEA (ETIS / ENSEA)

Un signal de declenchement interne


(ITRx) utilisant un timer comme
prediviseur pour un autre timer. Par
exemple le Timer1 sert de prediviseur
au Timer2.

Selection de CK INT quand le


champs SMS=000 dans le registre
SMCR

Selection premi`ere horloge externe


quand SMS=111

Selection seconde horloge externe


quand ECE=1 dans le registre SMCR

Microprocesseurs-Microcontr
oleurs

Automne 2010

158 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Description Fonctionnelle


Arbre dHorloge du STM32

Legend:

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

159 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Description Fonctionnelle


Arbre dHorloge du bus APB1

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

160 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Description Fonctionnelle


Arbre dHorloge des Timerx - HSI - Horloge par Defaut

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

161 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Description Fonctionnelle


Arbre dHorloge des Timerx - HSE

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

162 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Description Fonctionnelle

Selection dhorloge

Selection dhorloge

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

163 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Registre Horloge RCC

CFGR, Adresse Base RCC = 0x4002 1000, Offset = 0x04, Valeur Initiale = 0x0000 0000

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

164 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Registre Horloge RCC

APB1ENR, Adresse Base RCC = 0x4002 1000, Offset = 0x1C, Valeur Initiale = 0x0000
0000

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

165 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Registre

CR1, Adresse Base TIM2 = 0x4000 0000, Offset = 0x00, Valeur Initiale = 0x0000

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

166 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Registre

CR2, Adresse Base TIM2 = 0x4000 0000, Offset = 0x04, Valeur Initiale = 0x0000

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

167 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Registre

CR2, Adresse Base TIM2 = 0x4000 0000, Offset = 0x08, Valeur Initiale = 0x0000

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

168 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Registre

DIER, Adresse Base TIM2 = 0x4000 0000, Offset = 0x0C, Valeur Initiale = 0x0000

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

169 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Registre

SR, Adresse Base TIM2 = 0x4000 0000, Offset = 0x10, Valeur Initiale = 0x0000

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

170 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Registre

EGR, Adresse Base TIM2 = 0x4000 0000, Offset = 0x14, Valeur Initiale = 0x0000

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

171 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Registre

CNT, Adresse Base TIM2 = 0x4000 0000, Offset = 0x24, Valeur Initiale = 0x0000

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

172 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Registre

PSC, Adresse Base TIM2 = 0x4000 0000, Offset = 0x28, Valeur Initiale = 0x0000

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

173 / 200

Exemple de p
eriph
eriques

Les Timers

TIMx STM32 : Registre

ARR, Adresse Base TIM2 = 0x4000 0000, Offset = 0x2C, Valeur Initiale = 0x0000

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

174 / 200

Exemple de p
eriph
eriques

Les Timers

Capture Compare TIMx STM32 :


Description Fonctionnelle
Apr`es le minuteur
Les unit
es TIMx du STM32 ont hormis le mode minuteur basique

deux autres mode dutilisation :


Le mode Capture-Compare. Dans ce mode il est possible dune part de

capturer en fonction dun evenement la valeur du compteur du Timer,


dautre part de comparer la valeur du compteur `a une valeur
prealablement charger dans le registre Capture-Compare.
Le mode PWM : Pulse Width Modulation, qui permet de g
enerer des
signaux periodiques ayant un rapport cyclique variable.
Ces fonctions sont mises en uvre `
a laide de 4 canaux independants.

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

175 / 200

Exemple de p
eriph
eriques

Les Timers

Capture Compare TIMx STM32


Bloc dentree
Echantillonage de lentr
ee TIx correspondant au canal (TI1 pour le

canal1)
Filtrage de cette entr
ee pour creer le signal TIxF
G
eneration dun signal TIxFPx apr`es detection de front et selection de

polarite.
Le signal TIxFPx peut
etre utilise comme un declencheur ou comme

une commande de capture.


Il est pr
edivise avant detre envoye vers le registre de capture (ICxPS)

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

176 / 200

Exemple de p
eriph
eriques

Les Timers

Capture Compare TIMx STM32

Bloc dentree

TI1F_ED
to the slave mode controller

TI1
fDTS

filter
downcounter

ICF[3:0]
TIMx_CCMR1

TI1F

TI1F_Rising
Edge
Detector

TI1F_Falling

CC1P

(from channel 2)

TI1FP1

01

TI2FP1

10

IC1

divider
/1, /2, /4, /8

IC1PS

TRC
11
(from slave mode
controller)

TIMx_CCER
TI2F_rising
(from channel 2)
TI2F_falling

ENSEA (ETIS / ENSEA)

0
CC1S[1:0] ICPS[1:0]
1

Microprocesseurs-Microcontr
oleurs

TIMx_CCMR1

CC1E
TIMx_CCER

Automne 2010

177 / 200

Exemple de p
eriph
eriques

Les Timers

Capture Compare TIMx STM32


Bloc Principal
Le bloc principal est compos
e:
dun registre capture/compare de pr
echargement
dun registre capture/compare fant
ome
Les acc`
es en lecture et ecriture seffectue dans le registre

capture/compare de prechargement
En mode capture, les captures seffectue dans le registre

capture/compare fant
ome, qui est ensuite copie dans le registre
capture/compare de prechargement
En mode compare, le contenu du registre capture/compare de

prechargement est copie dans le registre capture/compare fantome


qui est ensuite compare au compteur
Le registre capture/compare est nomm
e TIM CCRx
ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

178 / 200

Exemple de p
eriph
eriques

Les Timers

Capture Compare TIMx STM32


Bloc Principal

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

179 / 200

Exemple de p
eriph
eriques

Les Timers

Capture Compare TIMx STM32

Bloc de sortie
Dans le bloc de sortie est g
enere un signal intermediaire OCxRef
OCxRef est actif `
a letat haut
Il est utilis
e comme reference
La polarit
e intervient en bout de chane.

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

180 / 200

Exemple de p
eriph
eriques

Les Timers

Capture Compare TIMx STM32

Bloc de sortie

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

181 / 200

Exemple de p
eriph
eriques

Les Timers

Capture Compare TIMx STM32


Capture
En mode capture, le registre TIMx CCRx copie la valeur du compteur

apr`es la detection dune transition sur le signal ICx


Quand une capture est r
ealisee, le drapeau correspondant CCxIF du

registre TIMx SR est mis `a 1


Une interruption ou une requ
ete DMA peut etre prise en compte si

elle est autorisee (bits CCxIE et CCxDE du registre TIMx DIER).


Si une capture intervient alors que le drapeau CCxIF est `
a 1, alors le

drapeau CCxOF (over-capture) du registre TIM SR est mis `a 1.


Le drapeau CCxIF est mis `
a 0 soit par logiciel, soit en lisant la valeur

du registre TIMx CCR.


Le drapeau CCxOF est mis 0 par logiciel.
ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

182 / 200

Exemple de p
eriph
eriques

Les Timers

Capture Compare TIMx STM32


Capture

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

183 / 200

Exemple de p
eriph
eriques

Les Timers

Capture Compare TIMx STM32


Compare
Mode utilis
e pour contr
oler un signal de sortie ou indique une

echeance temporelle.
Quand une correspondance est trouv
ee entre le registre de
capture/compare et le compteur
La sortie correspondante (d
ependant du canal) est mise `a une valeur

definie par le mode de comparaison (les bits OCxM du registre


TIMx CCMRx) et la polarite de sortie (le bit CCxP du registre
TIMx CCER)
Le bit dinterruption CCxIF du registre TIMx SR est mis `
a1
Linterruption est prise en compte si le bit CCxIE du registre
TIMx DIER est `a 1
Une requ
ete DMA est generee sur le bit CCxDE du registre
TIMx DIER et le bit CCDS du registre TIMX CR2 sont `a 1.
ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

184 / 200

Exemple de p
eriph
eriques

Les Timers

Capture Compare TIMx STM32


Compare

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

185 / 200

Exemple de p
eriph
eriques

Les Timers

Capture Compare TIMx STM32


PWM
Ce mode permet de g
enerer un signal periodique de frequence fixe par

le registre TIMx ARR et de rapport cyclique fixe par le registre


TIMx CCRx.
Les 4 canaux peuvent
etre independamment initialises dans ce mode

en mettant les valeurs 110 ou 111 dans les bits OCxM du


registre TIMx CCMRx.
Il faut autoriser la sortie via le bit OCxPE du registre TIMx CCMRx
Possibilit
e dutiliser le mode Capture pour specifier la valeur de la

frequence et du rapport cyclique

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

186 / 200

Exemple de p
eriph
eriques

Les Timers

Capture Compare TIMx STM32

PWM - Mode Comptage

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

187 / 200

Exemple de p
eriph
eriques

Les Timers

Capture Compare TIMx STM32

PWM - Mode Alterne

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

188 / 200

Exemple de p
eriph
eriques

Les Timers

Capture Compare TIMx STM32

PWM - Capture Frequence et Rapport Cyclique

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

189 / 200

Exemple de p
eriph
eriques

L
edition de lien

Chaine de Developpement
Microcontroller Development Kit (MDK)
n
n
n
n

Best-in-class ARM C/C++CompilationTools.


Genuine Keil Vision4 IDE/Debugger/Simulator.
Royalty-free RTX Real-Time Operating System.
Easy device configuration with Device Database support
for more than 500 ARM-Powered devices.
MDK-ARM

Microcontroller Development Kit

Royalty-Free RT X RTOS
Vision
Device Database & IDE
Vision
Debugger & AnalysisTools

Examples and Templates

ARM C/C++Compilers

A/D Converter

I/O Ports

Debug
Run-Control

T imer/Counter

Interrupt System

Debug
Channel

ULINK USB Adapters


n

PW M

Flash ROM

n
n

UART

Device Peripheral Simulation

CPU

RAM

Real-T ime
Clock

I 2C/SPI
DMA

RL-ARM

Ethernet

Real-T ime Library

SD/MMC
Interface

USB

CAN

n
n

JTAG & Serial Wire Interface.


Flash Programming.
On-the-fly Target Debugging.
Real-Time Data Trace.
ETM InstructionTrace (ULINKpro

Evaluation Boards

T CPnet Networking Suite

Flash File System

USB Device Interface

CAN Interface

ENSEA (ETIS / ENSEA)

Examples and Templates

RT X RTOS Source Code

RTOS and Middleware


n
n
n
n

RTX Real-Time OS with Source Code.


TCP/IP Suite with Server Applications.
File System for ROM and Memory Cards.
Direct suport for USB and CAN interfaces.

Microprocesseurs-Microcontr
oleurs

Keil provides a wide range of evaluation boards


for 8, 16 and 32-bit devices

Automne 2010

190 / 200

Exemple de p
eriph
eriques

L
edition de lien

Chaine de Compilation

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

191 / 200

Exemple de p
eriph
eriques

L
edition de lien

Editeur de lien

Cr
ee les liens entre les differents fichiers objets
R
esoud les references
G
enere les adresses finales de variables et fonction
Sappuie sur un fichier de description du mappage entre la m
emoire et

les donnees (fonctions et variables)

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

192 / 200

Exemple de p
eriph
eriques

L
edition de lien

Editeur de Lien

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

193 / 200

Exemple de p
eriph
eriques

L
edition de lien

Editeur de Lien

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

194 / 200

Exemple de p
eriph
eriques

L
edition de lien

Editeur de Lien

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

195 / 200

Exemple de p
eriph
eriques

L
edition de lien

Editeur de Lien

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

196 / 200

Exemple de p
eriph
eriques

L
edition de lien

Editeur de Lien : regions contigues


LR_1 0x040000

; Definition dune region de chargement nommee LR_1,


; placement `
a ladresse 0x040000.

{
ER_RO +0

; Region appel
ee ER_RO qui debute a
` la fin de la region precedente.
; Comme il ny a pas de region avant ladresse est 0x040000.

* (+RO) ; Toutes les sections RO vont dans cette r


egion.
}
; Elles sont plac
ees cons
ecutivement.
ER_RW +0
; Region appel
ee ER_RW, qui debute `
a la fin de la region precedente.
; Ladresse est donc 0x040000 + la taille de la region ER_RO .
{
* (+RW) ; Toutes les sections RW vont dans cette r
egion.
}
; Elles sont plac
ees cons
ecutivement.
ER_ZI +0
; Derniere region ER_ZI, qui debute `
a la fin de la region precedente.
; Ladresse est donc 0x040000 + la taille de la region ER_RO +
; la taille de la region ER_RW.
{
* (+ZI) ; Toutes les sections ZI vont dans cette r
egion.
}
; Elles sont plac
ees cons
ecutivement.
}
ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

197 / 200

Exemple de p
eriph
eriques

L
edition de lien

Editeur de lien : regions non-contigues

LR_1 0x010000
{
ER_RO +0
{
* (+RO)
}
ER_RW 0x040000
{
* (+RW)
}
ER_ZI +0
{
* (+ZI)
}
}

ENSEA (ETIS / ENSEA)

Definition region chargement LR_1

; Region ER_RO. Adresse=0x010000.


;

Toutes les sections R0

; Region ER_RW. Adresse fix


ee = 0x040000.
;

Toutes les sections RW

Region ER_ZI. Adresse = 0x40000 + Taille de la region ER_RW

Toutes les sections ZI.

Microprocesseurs-Microcontr
oleurs

Automne 2010

198 / 200

Exemple de p
eriph
eriques

L
edition de lien

Editeur de lien : regions non-contigues


LR_1 0x010000
{
ER_RO +0
{
* (+RO)
}
}
LR_2 0x040000
{
ER_RW +0
{
* (+RW)
}
ER_ZI +0
{
* (+ZI)
}
}

Definition premiere region chargement 0x010000.

Region ER_RO. Adresse=0x010000.

; Toutes les sections RO.

Definition seconde region chargement 0x040000.

Region ER_RW. Adresse=0x040000.

; Toutes les section RW.


;

Region ER_ZI. Adresse=0x040000 + Taille region ER_RW

; Toutes les sections ZI.

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

199 / 200

Exemple de p
eriph
eriques

L
edition de lien

Editeur de lien : placer un fichier objet


dans une region
ROM_LOAD 0x0000 0x4000 ; region de chargement ROM_LOAD
{
ROM_EXEC 0x0000 0x4000
; region ROM_EXEC `
a 0x0
{
vectors.o (Vect, +FIRST) ; Table des vecteurs dinterruption
* (InRoot$$Sections)
; Toutes les sections qui doivent
; etre dans une region maitre, par exemple __main.o,
; __scatter*.o, __dc*.o, and * Region$$Table
}
RAM 0x10000 0x8000
; region RAM `
a 0x10000
{
* (+RO, +RW, +ZI)
; Toutes les autres sections
}
}

ENSEA (ETIS / ENSEA)

Microprocesseurs-Microcontr
oleurs

Automne 2010

200 / 200