MINISTRE DE L ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE SCIENTIFIQUE
UNIVERSITÉ DE SOUSSE
Plan du cours : Architecture et programmation STM32
École supérieure des sciences et de DÉPARTEMENT D LECTRONIQUE ET D NFORMATIQUE
la technologie de Hammam Sousse
Partie_1 : Rappel
Partie_2 : Architecture ARM
Famille ARM
Famille Cortex-M
Partie_3 : Cortex M4 :
Architecture et programmation Architecture et programmation assembleur
des processeurs ARMs Présenté par :
Mme. Randa KHEMIRI Partie_4 : Atelier :
Parcours : LSE [Link]@[Link]
Niveau : 3 [Link]@[Link] STM32F407 Discovery & Nucléo64 STM32F401
Semestre : 1
AU. 2024/2025 Mme. Randa Khemiri
Partie 2 : Architecture ARM Partie 2 : Architecture ARM
stm32
Famille ARM Famille ARM
Les processeurs ARM sont devenus dominants
dans le domaine de l'informatique embarquée, en
particulier les tablettes électroniques et la
téléphonie mobile, les cameras numériques etc.
..
Advanced RISC Machines
1 Mme. Randa Khemiri 2 Mme. Randa Khemiri
Partie 2 : Architecture ARM Partie 2 : Architecture ARM
Famille ARM Famille ARM
3 Mme. Randa Khemiri 4
2 Mme. Randa Khemiri
Partie 2 : Architecture ARM Partie 2 : Architecture ARM
Famille ARM Famille ARM
Il existe de nombreux types de processeurs ARM
...........
5 Mme. Randa Khemiri 6 Mme. Randa Khemiri
Partie 2 : Architecture ARM Partie 2 : Architecture ARM
Famille ARM Famille ARM
La meilleure façon de comprendre l'ensemble de la famille de processeurs ARM est de
classer ces types de processeurs par application.
7 Mme. Randa Khemiri 8 Mme. Randa Khemiri
Partie 2 : Architecture ARM Partie 2 : Architecture ARM
Famille ARM Famille ARM
La meilleure façon de comprendre l'ensemble de la famille de processeurs ARM est de classer ces
types de processeurs par application. ..
9 Mme. Randa Khemiri 10
Partie 2 : Architecture ARM Partie 2 : Architecture ARM
Le MDR est le registre qui permet les
Famille ARM Famille ARM
accès en lecture ou écriture dans la Main
Memory (Contient donnée/Instruction a
être stockée/lu)
MMU (Memory Management Unit) :
Caractéristique des Cortex-M, Cortex-R et Cortex-A
Le positionnement dans la Main Memory
se fait
de la mémoire où sera stockée la donnée .
Fréquence de fonctionnement
(MHz)
Dhrystone..
, créé par Reinhold Weiker
Cortex-A
en 1984.
ARM/Thumb/Thumb-2
Dhrystone tente, via les DMIPS, de
GIC
représenter le résultat de façon plus Cortex-R MMU
significative que les MIPS (millions
Neon (SIMD)
d'instructions par seconde) car MIPS ne Cortex-M Thumb/Thumb-2 DSP
peut pas être utilisé dans les différents GIC VFP
ensembles d'instructions (par exemple ARM/Thumb-2 MPU Jazelle
RISC vs CISC) pour la même exigence NVIC FP Unit 13 Stages Pipeline
de calcul de la part des utilisateurs MPU 8 Stages Pipeline Multi-Core (1-4)
3 Stages Pipeline
11 12 Mme. Randa Khemiri
Partie 2 : Architecture ARM Partie 2 : Architecture ARM
Le MDR est le registre qui permet les
Famille ARM Famille ARM
accès en lecture ou écriture dans la Main
Memory (Contient donnée/Instruction a
être stockée/lu) GIC (Generic Interrupt Controller)
Le positionnement dans la Main Memory ...............................................................................
se fait
de la mémoire où sera stockée la donnée . (Interrupt ReQuest ou IRQ)
..
Une interruption FIQ
..
Cortex-A
Dans un système typique, il y aura une source FIQ ARM/Thumb/Thumb-2
GIC
(la priorité la plus élevée ou l'interruption la plus Cortex-R MMU
critique) et un certain nombre de sources IRQ, Neon (SIMD)
Cortex-M Thumb/Thumb-2 DSP
arbitrées par un gestionnaire d'interruption. GIC VFP
ARM/Thumb-2 MPU Jazelle
NVIC FP Unit 13 Stages Pipeline
MPU 8 Stages Pipeline Multi-Core (1-4)
3 Stages Pipeline
13 Mme. Randa Khemiri 14 Mme. Randa Khemiri
Partie 2 : Architecture ARM Partie 2 : Architecture ARM
Famille ARM Famille ARM
MPU (Memory Protect Unit) : Sert à protéger les régions de mémoire en définissant différentes autorisations d'accès dans les
niveaux d'accès privilégiés et non privilégiés pour certains systèmes d'exploitation (OS) intégrés (MPU est un composant SIMD (Single Instruction/Multiple Data)
optionnel du microcontrôleur ARM® Cortex®-M4). (prononcé "seem-dee") est l'acronyme de (instruction
unique/données multiples) qui est une des catégories
FPU (Floating-Point Unit) : est une partie d'un processeur, spécialement conçue pour effectuer des opérations sur des nombres d'architecture d'ordinateurs.
à virgule flottante.
VFP ( Vector Floating Point) : La technologie virgule flottante vectorielle est une extension du coprocesseur de
type FPU dans les architectures ARM. Cortex-A
ARM/Thumb/Thumb-2
GIC
Cortex-R MMU
Neon (SIMD)
Cortex-M Thumb/Thumb-2 DSP
GIC VFP
ARM/Thumb-2 MPU Jazelle
NVIC FP Unit 13 Stages Pipeline
MPU 8 Stages Pipeline Multi-Core (1-4)
3 Stages Pipeline
15 Mme. Randa Khemiri 16 Mme. Randa Khemiri
Partie 2 : Architecture ARM Partie 2 : Architecture ARM
Famille ARM Famille ARM
Jazelle : (exécution directe de bytecode) est une extension qui permet à certains processeurs ARM d'exécuter du bytecode DSP (Digital Signal Processor) : qu'on pourrait traduire par « processeur de signal numérique », « processeur de traitement de
Java dans le matériel en tant que troisième état d'exécution aux côtés des modes ARM et Thumb existants. signal numérique » ou « processeur de traitement numérique de signal ») est un
..
Cortex-A Cortex-A
ARM/Thumb/Thumb-2 ARM/Thumb/Thumb-2
GIC GIC
Cortex-R MMU MMU
Neon (SIMD) Neon (SIMD)
Cortex-M Thumb/Thumb-2 DSP DSP
GIC VFP VFP
ARM/Thumb-2 MPU Jazelle Jazelle
NVIC FP Unit 13 Stages Pipeline 13 Stages Pipeline
MPU 8 Stages Pipeline Multi-Core (1-4) Multi-Core (1-4)
3 Stages Pipeline
17 Mme. Randa Khemiri 18 Mme. Randa Khemiri
Partie 2 : Architecture ARM Partie 2 : Architecture ARM
Famille Cortex-M Famille Cortex-M
Les MCU 32 bits génèrent des rendements bien plus élevés que les autres MCU en termes de ventes. Il
acquiert également une croissance de volume unitaire de 20 % supérieure à celle des MCU 8/16 bits.
19 Mme. Randa Khemiri 20 Mme. Randa Khemiri
Partie 2 : Architecture ARM Partie 2 : Architecture ARM
Famille Cortex-M Famille Cortex-M
21 Mme. Randa Khemiri 22 Mme. Randa Khemiri
Partie 2 : Architecture ARM Partie 2 : Architecture ARM
Famille Cortex-M Famille Cortex-M
Architecture RISC 32 bits
[Link] [Link]
Architecture de Harvard
3 étages de pipeline 3 étages de pipeline
Cortex-M4F contient : une unité de traitement des nombres flottants (FPU) +
capacités de traitement (DSP) 1.
2. Thumb
ARM
Une unité de protection de mémoire (MPU) option
Thumb
23 Mme. Randa Khemiri 24 Mme. Randa Khemiri
Partie 2 : Architecture ARM Partie 2 : Architecture ARM
Famille Cortex-M Famille Cortex-M
Le passage entre le mode ARM et le mode Thumb
1. Thumb
compilateur génère un code ayant :
2.
Thumb
31 0
ARM
A partir du Cortex- -2 qui est un
Thumb)
Thumb2
15 0
ADD r2, #1
25 Mme. Randa Khemiri 26 Mme. Randa Khemiri
Partie 2 : Architecture ARM Partie 2 : Architecture ARM
Famille Cortex-M Famille Cortex-M
NVIC (Nested Vectored Interrupt Controller)
sans NVIC
avec NVIC
Comme chaque périphérique est
relié à une entrée numérotée du
NVIC, ce dernier connait le
périphérique, il transmet donc
directement au processeur le
numéro correspondant. interroger chaque périphérique ( via
27 Mme. Randa Khemiri 28 Mme. Randa Khemiri
Bon courage et bonne révision
Mme. Randa Khemiri