H
o
u
s
s
e
m
L
A
H
M
E
R
Les systèmes embarqués
Houssem-eddine LAHMER
Houssem-eddine LAHMER Les systèmes embarqués 1 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Plan - Partie 1
1 Mise en situation
2 Histoire des calculateurs et
systèmes embarqués
Un peu d’histoire!
3 Les systèmes embarqués!
4 Fonctionnalités et Composants
5 Microprocesseur/Microcontrôleur
Microprocesseur
Microcontroleur
Vue matérielle
6 Stockage d’Information et
Représentation des Bits
7 ALU et Exécution d’Instructions
8 Registres
Mémoire et Types
Bascule D
Registre
Endiannes
Harvard VS Von Neumann
9 Péréphériques
GPIO
Module TIMER
Houssem-eddine LAHMER Les systèmes embarqués 2 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Plan - Partie 2
10 Protocoles de Communication
11 ARM et STM32
12 Micro-architecture et Pipeline
d’un ARM7
13 Horloge Processeur
14 Conversion
Analogique-Numérique
15 Les interrptions
Cycle d’interruption
Contrôleur d’interruptions
Niveaux de priorité et
interruptions imbriquées
Table des vecteurs
Exemple simple d’exécution
16 STM32 : Introduction et
Composants
Introduction aux STM32
GPIO (General Purpose
Input/Output)
Timers
Interruptions
17 Programmation C pour STM32
18 Programmation STM32 en C
Houssem-eddine LAHMER Les systèmes embarqués 3 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Mise en situation
Houssem-eddine LAHMER Les systèmes embarqués 4 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Mise en situation
Houssem-eddine LAHMER Les systèmes embarqués 5 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
La préhistoire des calculateurs
Contexte historique et origine des premiers dispositifs de calcul.
Premières machines à calculer
Évolution jusqu’aux premiers ordinateurs.
Houssem-eddine LAHMER Les systèmes embarqués 6 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Abaque : Antiquité (1500 av. J.-C.)
Description :
L’abaque est un outil de calcul simple
utilisé dès l’Antiquité pour effectuer
des opérations arithmétiques.
Intérêt :
Il constitue l’une des premières
tentatives d’automatisation dans le
domaine du calcul.
Houssem-eddine LAHMER Les systèmes embarqués 7 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Machine de Pascal (1642)
Description :
La machine de Pascal est une des
premières machines mécaniques
conçues pour réaliser des opérations
arithmétiques.
Intérêt :
Elle marque une étape essentielle
dans l’évolution des dispositifs de
calcul automatisé.
Houssem-eddine LAHMER Les systèmes embarqués 8 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Métier Jacquard (1801)
Description :
Le métier Jacquard est une machine
à tisser innovante qui utilise des
cartes perforées pour programmer des
motifs complexes.
Intérêt :
Il a révolutionné l’industrie textile et
a inspiré le développement des
premiers ordinateurs en introduisant
le concept de programmation.
Houssem-eddine LAHMER Les systèmes embarqués 9 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
ENIAC (1945)
Description :
L’ENIAC est l’un des premiers
ordinateurs électroniques. Conçu en
1945, il pesait environ 30 tonnes et
était destiné à réaliser des calculs
complexes.
Intérêt :
Sa conception a ouvert la voie à
l’informatique moderne en
démontrant les possibilités du
traitement électronique des données.
Houssem-eddine LAHMER Les systèmes embarqués 10 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Apollo Guidance Computer (AGC) (1965)
Description :
Conçu pour les missions lunaires,
l’AGC est un ordinateur embarqué
qui, en 1965, ne pesait que 4 kg,
offrant une puissance de calcul
surprenante pour sa taille.
Intérêt :
Sa miniaturisation et son efficacité
ont révolutionné le domaine des
systèmes embarqués, préparant le
terrain pour les technologies actuelles
(avec des performances pouvant être
comparées à celles de 100 000
smartphones modernes).
Houssem-eddine LAHMER Les systèmes embarqués 11 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Intel 4004 et la Calculatrice Busicom (1971)
Description :
En 1971, l’Intel 4004 inaugure l’ère
du microprocesseur. Conçu pour la
calculatrice Busicom 141-PF, il
intègre la logique informatique dans
un format miniaturisé.
Intérêt :
La réduction de taille et le coût de
fabrication de cette puce ont permis
la démocratisation des systèmes
embarqués, transformant
durablement l’industrie électronique.
© Intel
Houssem-eddine LAHMER Les systèmes embarqués 12 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Intel 8008 et l’Aube de l’Informatique Grand Public (1972)
Description :
Lancé en 1972, l’Intel 8008 est une
puce 8 bits qui suit le 4004. Cette
avancée a considérablement amélioré
la puissance de calcul et a permis la
création des premiers
micro-ordinateurs.
Intérêt :
Le 8008 ouvre la voie à l’informatique
grand public, posant les bases pour
les évolutions futures, notamment
avec le 8080 et les systèmes
personnels.
Houssem-eddine LAHMER Les systèmes embarqués 13 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Origines et avantages des systèmes embarqués
Héritage historique : De l’abaque antique aux premières machines
mécaniques, l’humain a toujours cherché à automatiser le calcul.
Naissance de l’informatique embarquée : L’Intel 4004 marque
l’émergence des microprocesseurs.
Démocratisation : L’avènement des microcontrôleurs à bas coût a
permis d’intégrer l’informatique dans de nombreux appareils.
Optimisation : Ces systèmes offrent efficacité énergétique,
maintenance à distance et fiabilité accrue.
Houssem-eddine LAHMER Les systèmes embarqués 14 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Définition d’un système embarqué
Système embarqué =
Une intégration d’électronique et d’informatique, issue de l’évolution des
microprocesseurs vers les microcontrôleurs, composée de :
Un calculateur spécialisé (microprocesseur ou microcontrôleur)
Un logiciel dédié optimisé pour des tâches spécifiques
Des interfaces E/S facilitant l’interaction avec le monde physique
Des contraintes strictes :
Temps réel
Consommation minimale
Encombrement réduit
Houssem-eddine LAHMER Les systèmes embarqués 15 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Systèmes Embarqués
Houssem-eddine LAHMER Les systèmes embarqués 16 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Systèmes Embarqués
"Depuis l’abaque antique jusqu’à
l’ère des microcontrôleurs, notre
quête de contrôle sur le monde
physique a donné naissance à des
systèmes essentiels pour notre
avenir."
Houssem-eddine LAHMER Les systèmes embarqués 17 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Fonctionnalités d’un système embarqué
Traitement de données
Stockage de données
Interaction avec le monde extérieur
Acquisition (capteurs, ADC)
Actions (moteurs, LED)
Communication (I2C, SPI, CAN, Ethernet, WiFi, etc.)
Houssem-eddine LAHMER Les systèmes embarqués 18 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Systèmes Embarqués
Houssem-eddine LAHMER Les systèmes embarqués 19 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Systèmes Embarqués
Houssem-eddine LAHMER Les systèmes embarqués 20 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Composants matériels
Processeur/Microcontrôleur/SoC (Traitement)
Stockage
Volatile : RAM, cache, registres
Non volatile : ROM, PROM, EPROM, EEPROM, Flash
Périphériques d’interaction
Communication : I2C, SPI, CAN, Ethernet, WiFi, ZigBee, LoRaWAN
Acquisition : Capteurs, ADC, GPIO
Sortie : DAC, LED, pilotage de moteurs
Interconnexion via bus (processeur, mémoire, périphériques)
Houssem-eddine LAHMER Les systèmes embarqués 21 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Microprocesseur
lit séquentiellement des instructions et des données à partir d’une
mémoire.
décode les instructions
fait des calculs sur des données en internes
écrit des données en mémoire
Houssem-eddine LAHMER Les systèmes embarqués 22 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Microcontroleur (MCU:Microcontroller Unit)
Regroupe dans le même circuit:
un cœur de processeur
des mémoires (RAM/ROM)
des périphériques (entrée/sorties, timers. . . )
Houssem-eddine LAHMER Les systèmes embarqués 23 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Vue matérielle schématique
Houssem-eddine LAHMER Les systèmes embarqués 24 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Vocabulaire – Périphériques courants
GPIO (General-Purpose
Input/Output)
Patte (pin) d’un circuit intégré
ou connecteur d’une carte
électronique.
Peut être configuré en entrée ou
en sortie numérique.
Permet de contrôler les
entrées-sorties.
UART (Universal Asynchronous
Receiver Transmitter)
Périphérique gérant la
communication série.
Transfert des bits d’un mot sur
un seul fil, les uns après les
autres.
Mode asynchrone : l’horloge
n’est pas transmise ; elle est
reconstituée par le récepteur en
détectant le début de la
transmission et en utilisant le
débit binaire configuré.
Houssem-eddine LAHMER Les systèmes embarqués 25 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Communication CPU - Mémoire
Opérations : Lecture / Écriture
Adresse : Localisation de la donnée
Données : Transfert entre CPU et mémoire
Houssem-eddine LAHMER Les systèmes embarqués 26 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Les Bases du Stockage d’Information
Un bit : unité minimale (2 états possibles : 0 ou 1)
Les données sont des séquences finies de bits
Exemples : 4 bits → 0110 ; 8 bits → 11010011
Houssem-eddine LAHMER Les systèmes embarqués 27 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Séquences de Bits et Leur Capacité
Une séquence de N bits peut représenter jusqu’à 2N éléments
Exemples d’interprétation :
1001 : Nombre 9 (base 2)
000010000000 : Peut représenter "Mai"
Une séquence de bits = ce que vous décidez d’en faire
Houssem-eddine LAHMER Les systèmes embarqués 28 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Systèmes Numériques et Interprétation
Une séquence de N bits peut être lue comme un nombre en base 2
Attention : la valeur brute n’est pas toujours un nombre (ex.
000010000000 peut signifier "Mai")
Il faut indiquer à l’ordinateur comment interpréter les bits
Houssem-eddine LAHMER Les systèmes embarqués 29 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Représentations Classiques
Binaire : b7b6 . . . b0 interprété en base 2
Complément à 2 : pour représenter les nombres négatifs
ASCII : codage des symboles (ex. %, A, 7)
http://en.wikipedia.org/wiki/ASCII
Houssem-eddine LAHMER Les systèmes embarqués 30 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Organisation des Bits
Un octet = 8 bits (granularité usuelle)
L’écriture en base 16 est plus pratique (symboles : 0-9, A-F)
Houssem-eddine LAHMER Les systèmes embarqués 31 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
ALU : Le Cœur Calculant du CPU
Définition
Circuit combinatoire numérique
Effectue opérations arithmétiques & logiques
Manipule des entiers binaires (32 bits sur Cortex-M)
Houssem-eddine LAHMER Les systèmes embarqués 32 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Anatomie d’une Instruction Cortex-M
Opcode (4-16 bits) Operande 1 Operande 2 Résultat
ADD R0 R1, #42 R0 = R1 + 42
AND R2 R3, R4 R2 = R3 & R4
Houssem-eddine LAHMER Les systèmes embarqués 33 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Cycle d’Exécution d’une Instruction
1 Fetch : Chargement instruction depuis la mémoire
2 Decode : Décodage opcode & opérandes
3 Execute : Traitement par l’ALU
4 Writeback : Stockage résultat
Houssem-eddine LAHMER Les systèmes embarqués 34 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Exemple Concret : Addition en Assembleur
Décomposition binaire
Opcode ADD : 0100 0101
Registres : R0=001, R1=010
Résultat : R2=011 (si a=1, b=2)
Houssem-eddine LAHMER Les systèmes embarqués 35 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Flags et Prise de Décision
Flag Signification
Z (Zero) Résultat = 0
N (Negative) Résultat < 0
C (Carry) Dépassement
V (Overflow) Débordement signé
Houssem-eddine LAHMER Les systèmes embarqués 36 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Types de mémoire
Mémoire volatile
DRAM
SRAM
Mémoire non volatile
ROM
EEPROM
Flash (Nor)
Houssem-eddine LAHMER Les systèmes embarqués 37 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Mémoires dans les systèmes embarqués
Type Volatilité Utilisation typique Embarqué
SRAM Volatile Cache/Mémoire rapide ✓(mémoire principale)
DRAM Volatile Mémoire système - (trop gourmande)
Flash NOR Non-volatile Stockage firmware ✓(exécution XIP)
EEPROM Non-volatile Paramètres système ✓(mises à jour rares)
ROM Non-volatile Firmware fixe ✓(coût minimal)
Pour les microcontrôleurs
SRAM : Mémoire de travail rapide (taille limitée)
Flash NOR : Stockage programme (accès direct)
EEPROM : Conservation données critiques
Houssem-eddine LAHMER Les systèmes embarqués 38 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Bascule D - D Flip-Flop
D flip-flop (dff, registre, etc.)
Fonctionnement :
Au front montant de l’horloge (clk passant de 0 à 1) : la valeur de D
est capturée et copiée sur Q (échantillonnage).
Sinon : Q conserve sa valeur (mémorisation).
Houssem-eddine LAHMER Les systèmes embarqués 39 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Table de vérité du D flip-flop
D clk Q Opération
0 ↑ 0 D est copié sur Q (échantillonnage)
1 ↑ 1 D est copié sur Q (échantillonnage)
× 0 Q Q conserve sa valeur (mémorisation)
× 1 Q Q conserve sa valeur (mémorisation)
× ↓ Q Q conserve sa valeur (mémorisation)
Houssem-eddine LAHMER Les systèmes embarqués 40 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Registre
Un registre est un ensemble de flip-flops utilisés en parallèle.
Exemple : Registre 4 bits
Fonctionnement : L’horloge (clk) déclenche simultanément
l’échantillonnage des entrées D de chaque flip-flop, et leurs valeurs sont
stockées dans les sorties Q.
Houssem-eddine LAHMER Les systèmes embarqués 41 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Endianness
Endianness
Supposons que nous souhaitions
stocker une variable 32 bits (4
octets).
Il est logique de les stocker dans
des emplacements mémoire
contigus.
Mais où placer le bit le plus
significatif (MSB) ?
Houssem-eddine LAHMER Les systèmes embarqués 42 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Big Endian vs Little Endian
« D » fait référence au mot de données 32 bits, et les indices en subscript
indiquent les bits individuels, du bit le plus significatif (D31) au bit le moins
significatif (D0).
Houssem-eddine LAHMER Les systèmes embarqués 43 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
types de Microcontrôleurs
Deux architectures de mémoire existent :
L’architecture Harvard
L’architecture Von Neumann
Houssem-eddine LAHMER Les systèmes embarqués 44 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Architecture Von Neumann
Architecture Von Neumann :
La même mémoire et le même bus servent à stocker les instructions et
les données.
L’accès simultané à la mémoire de programme et à la mémoire de
données n’est pas possible.
Cette architecture est sujette aux goulets d’étranglement, affectant
ainsi les performances du système.
Houssem-eddine LAHMER Les systèmes embarqués 45 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Architecture Harvard
Les instructions et les données sont stockées dans des unités mémoire
séparées, reliées par des bus différents.
Il existe au moins deux espaces d’adressage mémoire distincts.
Possibilité d’exécuter un programme et d’accéder aux données de
manière indépendante et simultanée.
Houssem-eddine LAHMER Les systèmes embarqués 46 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Harvard vs Von Neumann
Architecture Von Neumann
Utilise la même adresse mémoire
pour les instructions et les
données.
Le processeur nécessite deux
cycles d’horloge pour exécuter
une instruction.
Unité de contrôle simple, ce qui
rend le développement moins
coûteux.
Les transferts de données et la
récupération d’instructions ne
sont pas simultanés.
Utilisé dans les PC (Intel).
Architecture Harvard
Utilise des adresses mémoire
séparées pour les instructions et
les données.
Le processeur nécessite un seul
cycle d’horloge pour compléter
une instruction.
L’unité de contrôle est plus
complexe, augmentant le coût
de développement.
Les transferts de données et la
récupération d’instructions
peuvent être effectués
simultanément.
Utilisé dans les microcontrôleurs.
Houssem-eddine LAHMER Les systèmes embarqués 47 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Harvard vs Von Neumann
Houssem-eddine LAHMER Les systèmes embarqués 48 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Les GPIO
C’est quoi un GPIO?
Port d’Entrée/Sortie à usage général
Interface entre le programme et le monde physique
Comme des interrupteurs virtuels connectés aux pattes du
microcontrôleur
Houssem-eddine LAHMER Les systèmes embarqués 49 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Structure des ports GPIO
8 ports (A à H)
Jusqu’à 16 pins par port
Mais attention :
Disponibilité limitée!
Modèle de circuit
Fonctions système
Houssem-eddine LAHMER Les systèmes embarqués 50 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
4 modes principaux
Entrée Sortie
Alternatif Analogique
Houssem-eddine LAHMER Les systèmes embarqués 51 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Comparaison des modes
Mode Utilisation typique Caractéristiques
Entrée Lire bouton/capteur Pull-up/down configurables
Sortie Piloter LED/relais Vitesse configurable
Alternatif Communication (UART, SPI) Dépend du périphérique
Analogique Capteur analogique Convertisseur ADC/DAC
Attention
Un pin ne peut pas être dans deux modes en même temps!
Houssem-eddine LAHMER Les systèmes embarqués 52 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Exemple pratique
PA5 : LED (sortie)
PC13 : Bouton (entrée)
Programme :
Si bouton appuyé : LED ON
Sinon : LED OFF
Houssem-eddine LAHMER Les systèmes embarqués 53 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
TIMER - À quoi ça sert?
Compte le temps comme un chronomètre
Déclenche des actions automatiquement
Génère des signaux précis
Analogie
Comme un minuteur de cuisine programmable
Houssem-eddine LAHMER Les systèmes embarqués 54 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Composants clés d’un TIMER
Prédiviseur : Adapte la vitesse (ex: /16)
Compteur : Valeur qui augmente à chaque tick
Comparateur : Déclenche une action quand seuil atteint
Houssem-eddine LAHMER Les systèmes embarqués 55 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
PWM - Contrôle intelligent
t
V
τ
T
Paramètres clés
T : Période (ARR)
τ : Temps actif (CCR)
Rapport cyclique = τ/T
Applications
- Contrôle de moteur -
Gradation LED - Générateur
son
Houssem-eddine LAHMER Les systèmes embarqués 56 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Modes de fonctionnement
Mode Description Utilisation
Compteur Incrémente à chaque tick Mesure temps/délais
PWM Génère signal modulé Contrôle moteur/LED
Input Capture Mesure durée d’impulsion Encodeur rotatif
Output Compare Déclenchement périodique Pilote périphériques
Bon à savoir
Jusqu’à 17 timers sur certains microcontrôleurs
Résolution jusqu’à 32 bits
Synchronisation possible entre timers
Houssem-eddine LAHMER Les systèmes embarqués 57 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Communiquer : comme une conversation
Les 3 éléments essentiels
Un langage commun (protocole)
Un support (fils, radio...)
Des règles de dialogue (qui parle
quand ?)
Émetteur Récepteur
Canal
Houssem-eddine LAHMER Les systèmes embarqués 58 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Parallèle vs Série : Le combat des câbles
Parallèle
Autoroute à 8 voies
Rapide mais encombrant
Idéal courtes distances
Série
Route à 1 voie
Plus lent mais flexible
Longues distances
Houssem-eddine LAHMER Les systèmes embarqués 59 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Les 3 grands protocoles série
UART SPI I2C
Simple point-à-point Haute vitesse Bus multi-
périphériques
2 fils + GND 4 fils 2 fils
Asynchrone Synchrone Synchrone
Houssem-eddine LAHMER Les systèmes embarqués 60 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Principe de base du UART
Universal Asynchronous Receiver-Transmitter
Protocole série asynchrone (pas de signal d’horloge)
Communication full-duplex (émission/réception simultanées)
Débit standard : 9600 à 115200 bauds
Schéma d’interconnexion
TX (Transmit) → RX (Receive)
RX ← TX (Transmit)
Masse commune (GND)
Houssem-eddine LAHMER Les systèmes embarqués 61 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
UART : Configuration type
Configuration type
Baud rate : 9600
8 bits de données
Pas de parité
1 bit de stop
Houssem-eddine LAHMER Les systèmes embarqués 62 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
SPI : La formule 1 des bus
Caractéristiques clés (Partie 1)
Vitesse jusqu’à 10+ MHz
Communication full-duplex
Caractéristiques clés (Partie 2)
Utilise 4 fils :
MOSI (Master Out Slave In)
MISO (Master In Slave Out)
SCK (Serial Clock)
SS (Slave Select)
Figure: Schéma maître/esclaves du bus SPI
Houssem-eddine LAHMER Les systèmes embarqués 63 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
ARM - Le concepteur invisible
Fiche d’identité
Fondation : 1990
Propriétaire : SoftBank (2016)
Spécialité : Cœurs RISC 32 bits
Philosophie de conception
Performance/énergie optimisée
Architecture modulaire
Licence de propriété intellectuelle (IP)
Houssem-eddine LAHMER Les systèmes embarqués 64 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Modèle économique : ARM vs Fabricants
Rôle d’ARM
Design de cores CPU
Licence d’IP aux fabricants
Pas de production physique
Exemple concret
ARM : Cortex-M4
STMicro : STM32F4
NXP : LPC4000
Avantage clé
Standardisation + personnalisation
Houssem-eddine LAHMER Les systèmes embarqués 65 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Architecture simplifiée d’un ARM
Caractéristiques clés
Fonctionnement du banc de registres
Lecture simultanée sur 2 registres
Écriture sur 1 registre/cycle
Accès mémoire 32 bits :
Adresse : 32 bits
Données : 32 bits bidirectionnel
Particularité ARM
Registre r15 = PC (Program Counter)
Houssem-eddine LAHMER Les systèmes embarqués 66 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Pipeline à 3 étages
Les trois étapes clés
1 FETCH : Charge l’instruction
2 DECODE : Décode l’opération
3 EXECUTE : Exécute la
commande
Avantages
Parallélisme d’instructions
Débit = 1 instruction/cycle
Optimisation des ressources
Houssem-eddine LAHMER Les systèmes embarqués 67 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
PWM : Modulation de largeur d’impulsion – Définition et
Principe
Principe de base
La PWM (Pulse Width Modulation) est une technique qui contrôle la
puissance délivrée à une charge en modulant la durée d’activation (temps
ON) d’un signal périodique par rapport à sa période totale.
Rapport Cyclique
Rapport cyclique =
TON
T
× 100%
Où TON est le temps pendant lequel le signal est actif, et T la période
complète du signal.
Avantages de la PWM
Contrôle précis de la puissance
Réduction des pertes énergétiques
Houssem-eddine LAHMER Les systèmes embarqués 68 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
PWM
Houssem-eddine LAHMER Les systèmes embarqués 69 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
PWM : Applications
Applications courantes
Contrôle de la vitesse des moteurs
Gradation de l’intensité lumineuse des LED
Positionnement précis des servomoteurs
Houssem-eddine LAHMER Les systèmes embarqués 70 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Contrôle moteur avec L298N
Configuration minimale
IN1/IN2 : Direction
EN A/B : PWM vitesse
Alim séparée moteur
Astuce STM32
Utiliser les timers matériels :
TIM1/2/3/4
Channels PWM dédiés
Schéma de connexion L298N
Houssem-eddine LAHMER Les systèmes embarqués 71 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
L’horloge : Le métronome du processeur
Analogie musicale
Comme un métronome
pour musicien
Donne le rythme des
opérations
1 cycle = 1 "temps"
élémentaire
Exemple concret
Microcontrôleur à 16 MHz :
16 millions de cycles par seconde
Chaque cycle dure 62.5 ns
Houssem-eddine LAHMER Les systèmes embarqués 72 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Cas concrets
Arduino Uno (16 MHz) STM32 (72 MHz) Raspberry Pi (1.5 GHz)
Équilibre important
↑ Fréquence ⇒ ↑ Performance
↑ Fréquence ⇒ ↑ Consommation
Houssem-eddine LAHMER Les systèmes embarqués 73 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
ADC : Analog To Digital Cnversion
Fonction principale
Convertir des tensions réelles
en valeurs numériques
Exemple concret
Potentiomètre ->
Microcontrôleur
Température -> Valeur
12 bits
0-3.3V -> 0-4095
Houssem-eddine LAHMER Les systèmes embarqués 74 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Caractéristiques clés d’un ADC
Résolution : 8/10/12/16 bits
Précision : ±1-3 LSB
Temps de conversion : 1us à
1ms
Houssem-eddine LAHMER Les systèmes embarqués 75 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
DAC : La voix analogique du numérique
Fonction principale
Convertir des valeurs
numériques en tensions réelles
Applications typiques
Contrôle de moteur
Génération audio
Lissage PWM
Houssem-eddine LAHMER Les systèmes embarqués 76 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Spécifications importantes d’un DAC
Résolution : 8/10/12 bits
Temps d’établissement :
1us-10us
Tension de sortie : 0-3.3V
Buffer de sortie
Interface : Parallel/SPI/I2C
Linéarité : ±1 LSB
Houssem-eddine LAHMER Les systèmes embarqués 77 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Comparaison ADC/DAC
Paramètre ADC DAC
Résolution typique 12 bits 12 bits
Temps de conversion 1us-1ms 1us-10us
Interfaces GPIO, DMA SPI, I2C
Consommation 1-10mA 5-50mA
Coût $0.10-$10 $0.50-$20
Applications Capteurs, Mesure Audio, Contrôle
Houssem-eddine LAHMER Les systèmes embarqués 78 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Qu’est-ce qu’une interruption ?
Définition : Mécanisme permettant à un périphérique ou un
événement externe d’interrompre le flot normal d’exécution du
processeur.
Avantage : Réagir rapidement à des événements sans scruter en
permanence (polling).
Exemples : Timer, réception de données sur un port série, etc.
Houssem-eddine LAHMER Les systèmes embarqués 79 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Cycle d’interruption sur Cortex-M
Détection de l’interruption par le contrôleur.
Empilement automatique de registres (PC, LR, etc.).
Saut vers la routine de service (ISR).
À la fin, restauration du contexte et reprise du programme principal.
Figure: Cycle d’interruption (ARM Cortex-M).
Houssem-eddine LAHMER Les systèmes embarqués 80 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Schéma global
Le contrôleur d’interruptions gère les demandes provenant de
plusieurs périphériques.
Il informe le CPU lorsque la demande la plus prioritaire doit être
traitée.
Le CPU lit la table de vecteurs pour connaître l’adresse de l’ISR
associée.
Figure: Interaction CPU - Contrôleur d’interruptions - Périphériques.
Houssem-eddine LAHMER Les systèmes embarqués 81 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Interruptions imbriquées
Priorité : Certaines interruptions peuvent interrompre une ISR moins
prioritaire.
Nesting (imbriquées) : Le processeur empile le contexte de l’ISR en
cours pour traiter l’ISR plus prioritaire.
Après traitement, on revient à l’ISR initial puis au programme
principal.
Figure: Exemple d’interruptions imbriquées selon la priorité.
Houssem-eddine LAHMER Les systèmes embarqués 82 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Table des vecteurs et adresses ISR
Table des vecteurs : Zone mémoire contenant les adresses de
chaque ISR.
L’adresse de l’ISR associée à un événement se trouve à un index
déterminé par l’ID de l’interruption.
Figure: Table des vecteurs (exemple simplifié).
Houssem-eddine LAHMER Les systèmes embarqués 83 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Événement, INT, ISR et retour
INT : Saut vers l’ISR.
IRET (ou BX LR en ARM) : Retour au programme principal.
Figure: Événement déclencheur, exécution de l’ISR, puis retour.
Houssem-eddine LAHMER Les systèmes embarqués 84 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Introduction aux STM32
Les STM32 sont des microcontrôleurs 32 bits basés sur l’architecture
ARM Cortex.
Ils sont utilisés dans des applications embarquées nécessitant
performance, réactivité et faible consommation.
Leur grande richesse fonctionnelle permet d’intégrer de multiples
périphériques et modules (GPIO, Timers, Clock, Interruptions, etc.).
Houssem-eddine LAHMER Les systèmes embarqués 85 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
GPIO
Les GPIO permettent la communication avec des périphériques
externes (capteurs, actionneurs, LED, etc.).
Ils sont configurables en mode entrée, sortie ou en mode alternatif
pour des fonctions spécifiques.
Ils constituent la base de l’interaction entre le microcontrôleur et le
monde extérieur.
Houssem-eddine LAHMER Les systèmes embarqués 86 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Timers
Les Timers gèrent la mesure du temps et la génération de signaux,
notamment en PWM (Pulse Width Modulation).
Ils permettent la création de délais précis et la synchronisation
d’opérations périodiques.
Utiles pour des tâches comme le contrôle moteur ou le déclenchement
d’événements à intervalles réguliers.
Houssem-eddine LAHMER Les systèmes embarqués 87 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Interruptions
Les interruptions permettent de répondre immédiatement à des
événements externes ou internes.
Elles interrompent le déroulement normal du programme pour
exécuter des routines spécifiques (ISR : Interrupt Service Routines).
Cruciales pour la gestion en temps réel et la réactivité des systèmes
embarqués.
Houssem-eddine LAHMER Les systèmes embarqués 88 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
PINOUT
Houssem-eddine LAHMER Les systèmes embarqués 89 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Introduction
Les STM32 :
Microcontrôleurs fabriqués par STMicroelectronics, reconnus pour leur
performance et faible consommation.
Largement utilisés dans les applications embarquées.
Pourquoi le C ?
Langage bas niveau permettant un contrôle précis du matériel.
Facilité d’intégration avec les bibliothèques fournies par ST.
Houssem-eddine LAHMER Les systèmes embarqués 90 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Environnement de développement
IDE et Compilateurs :
STM32CubeIDE (environnement officiel gratuit)
Alternatives : Keil MDK-ARM, IAR Embedded Workbench, ou la
toolchain GCC.
Outils complémentaires :
CubeMX pour configurer graphiquement les périphériques et générer
le code d’initiation.
ST-Link pour la programmation et le débogage.
Houssem-eddine LAHMER Les systèmes embarqués 91 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Architecture des Couches Logicielles
Houssem-eddine LAHMER Les systèmes embarqués 92 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Architecture des Couches Logicielles
Couche Analogie
Assembleur Instructions machine directes
C pur Piloter manuellement une voiture
HAL (Hardware Abstraction Layer) Tableau de bord avec compteurs
Middleware (RTOS, USB) Système GPS intégré
Houssem-eddine LAHMER Les systèmes embarqués 93 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Pourquoi le C bas niveau en embarqué ?
Contrôle total nécessaire
Délais garantis (ex : airbag < 1
ms)
Optimisation mémoire (96 KB
Flash)
Consommation en µA précise
Houssem-eddine LAHMER Les systèmes embarqués 94 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Types de données en C embarqué
Standard C C embarqué Taille
char uint8_t / int8_t 8 bits
short uint16_t 16 bits
long uint32_t 32 bits
float float IEEE 754
Bonnes pratiques
Toujours spécifier signed/unsigned
Utiliser stdint.h
Éviter les types variables
Houssem-eddine LAHMER Les systèmes embarqués 95 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Structure d’un programme C pour STM32
Fonction principale (main) : Point d’entrée du programme.
Initialisation du système :
Appel à HAL_Init() pour initialiser la couche d’abstraction matérielle.
Configuration de l’horloge avec SystemClock_Config().
Initialisation des périphériques (GPIO, ADC, timers, etc.) via des
fonctions spécifiques.
Boucle infinie : Permet l’exécution continue des tâches de
l’application.
Houssem-eddine LAHMER Les systèmes embarqués 96 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Utilisation de la bibliothèque HAL
Rôle de HAL :
Simplifie l’accès et la configuration des périphériques matériels.
Fournit des fonctions standardisées pour gérer les interfaces (GPIO,
UART, SPI, I2C, etc.).
Avantages :
Réduction de la complexité du code.
Meilleure portabilité et maintenance du logiciel.
Houssem-eddine LAHMER Les systèmes embarqués 97 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Outils de débogage et bonnes pratiques
Débogage :
Utilisation du débogueur intégré dans STM32CubeIDE (points d’arrêt,
inspection des variables, etc.).
Analyse des messages d’erreur et suivi en temps réel via ST-Link.
Bonnes pratiques :
Structurer le code en modules pour faciliter la maintenance.
Tester chaque composant individuellement avant l’intégration globale.
Se référer à la documentation officielle ST et aux exemples fournis dans
STM32CubeFirmware.
Houssem-eddine LAHMER Les systèmes embarqués 98 / 99
H
o
u
s
s
e
m
L
A
H
M
E
R
Conclusion
La programmation en C pour STM32 offre un contrôle précis du
matériel et permet de développer des applications embarquées
performantes.
L’utilisation d’outils comme STM32CubeIDE et CubeMX simplifie le
processus de développement.
Maîtriser la bibliothèque HAL et les bonnes pratiques de débogage est
essentiel pour la réussite des projets embarqués.
Houssem-eddine LAHMER Les systèmes embarqués 99 / 99

Embedded SystemsModelsjjjhhhjjjjjjbbbbbbj.pdf.pdf

  • 1.
    H o u s s e m L A H M E R Les systèmes embarqués Houssem-eddineLAHMER Houssem-eddine LAHMER Les systèmes embarqués 1 / 99
  • 2.
    H o u s s e m L A H M E R Plan - Partie1 1 Mise en situation 2 Histoire des calculateurs et systèmes embarqués Un peu d’histoire! 3 Les systèmes embarqués! 4 Fonctionnalités et Composants 5 Microprocesseur/Microcontrôleur Microprocesseur Microcontroleur Vue matérielle 6 Stockage d’Information et Représentation des Bits 7 ALU et Exécution d’Instructions 8 Registres Mémoire et Types Bascule D Registre Endiannes Harvard VS Von Neumann 9 Péréphériques GPIO Module TIMER Houssem-eddine LAHMER Les systèmes embarqués 2 / 99
  • 3.
    H o u s s e m L A H M E R Plan - Partie2 10 Protocoles de Communication 11 ARM et STM32 12 Micro-architecture et Pipeline d’un ARM7 13 Horloge Processeur 14 Conversion Analogique-Numérique 15 Les interrptions Cycle d’interruption Contrôleur d’interruptions Niveaux de priorité et interruptions imbriquées Table des vecteurs Exemple simple d’exécution 16 STM32 : Introduction et Composants Introduction aux STM32 GPIO (General Purpose Input/Output) Timers Interruptions 17 Programmation C pour STM32 18 Programmation STM32 en C Houssem-eddine LAHMER Les systèmes embarqués 3 / 99
  • 4.
    H o u s s e m L A H M E R Mise en situation Houssem-eddineLAHMER Les systèmes embarqués 4 / 99
  • 5.
    H o u s s e m L A H M E R Mise en situation Houssem-eddineLAHMER Les systèmes embarqués 5 / 99
  • 6.
    H o u s s e m L A H M E R La préhistoire descalculateurs Contexte historique et origine des premiers dispositifs de calcul. Premières machines à calculer Évolution jusqu’aux premiers ordinateurs. Houssem-eddine LAHMER Les systèmes embarqués 6 / 99
  • 7.
    H o u s s e m L A H M E R Abaque : Antiquité(1500 av. J.-C.) Description : L’abaque est un outil de calcul simple utilisé dès l’Antiquité pour effectuer des opérations arithmétiques. Intérêt : Il constitue l’une des premières tentatives d’automatisation dans le domaine du calcul. Houssem-eddine LAHMER Les systèmes embarqués 7 / 99
  • 8.
    H o u s s e m L A H M E R Machine de Pascal(1642) Description : La machine de Pascal est une des premières machines mécaniques conçues pour réaliser des opérations arithmétiques. Intérêt : Elle marque une étape essentielle dans l’évolution des dispositifs de calcul automatisé. Houssem-eddine LAHMER Les systèmes embarqués 8 / 99
  • 9.
    H o u s s e m L A H M E R Métier Jacquard (1801) Description: Le métier Jacquard est une machine à tisser innovante qui utilise des cartes perforées pour programmer des motifs complexes. Intérêt : Il a révolutionné l’industrie textile et a inspiré le développement des premiers ordinateurs en introduisant le concept de programmation. Houssem-eddine LAHMER Les systèmes embarqués 9 / 99
  • 10.
    H o u s s e m L A H M E R ENIAC (1945) Description : L’ENIACest l’un des premiers ordinateurs électroniques. Conçu en 1945, il pesait environ 30 tonnes et était destiné à réaliser des calculs complexes. Intérêt : Sa conception a ouvert la voie à l’informatique moderne en démontrant les possibilités du traitement électronique des données. Houssem-eddine LAHMER Les systèmes embarqués 10 / 99
  • 11.
    H o u s s e m L A H M E R Apollo Guidance Computer(AGC) (1965) Description : Conçu pour les missions lunaires, l’AGC est un ordinateur embarqué qui, en 1965, ne pesait que 4 kg, offrant une puissance de calcul surprenante pour sa taille. Intérêt : Sa miniaturisation et son efficacité ont révolutionné le domaine des systèmes embarqués, préparant le terrain pour les technologies actuelles (avec des performances pouvant être comparées à celles de 100 000 smartphones modernes). Houssem-eddine LAHMER Les systèmes embarqués 11 / 99
  • 12.
    H o u s s e m L A H M E R Intel 4004 etla Calculatrice Busicom (1971) Description : En 1971, l’Intel 4004 inaugure l’ère du microprocesseur. Conçu pour la calculatrice Busicom 141-PF, il intègre la logique informatique dans un format miniaturisé. Intérêt : La réduction de taille et le coût de fabrication de cette puce ont permis la démocratisation des systèmes embarqués, transformant durablement l’industrie électronique. © Intel Houssem-eddine LAHMER Les systèmes embarqués 12 / 99
  • 13.
    H o u s s e m L A H M E R Intel 8008 etl’Aube de l’Informatique Grand Public (1972) Description : Lancé en 1972, l’Intel 8008 est une puce 8 bits qui suit le 4004. Cette avancée a considérablement amélioré la puissance de calcul et a permis la création des premiers micro-ordinateurs. Intérêt : Le 8008 ouvre la voie à l’informatique grand public, posant les bases pour les évolutions futures, notamment avec le 8080 et les systèmes personnels. Houssem-eddine LAHMER Les systèmes embarqués 13 / 99
  • 14.
    H o u s s e m L A H M E R Origines et avantagesdes systèmes embarqués Héritage historique : De l’abaque antique aux premières machines mécaniques, l’humain a toujours cherché à automatiser le calcul. Naissance de l’informatique embarquée : L’Intel 4004 marque l’émergence des microprocesseurs. Démocratisation : L’avènement des microcontrôleurs à bas coût a permis d’intégrer l’informatique dans de nombreux appareils. Optimisation : Ces systèmes offrent efficacité énergétique, maintenance à distance et fiabilité accrue. Houssem-eddine LAHMER Les systèmes embarqués 14 / 99
  • 15.
    H o u s s e m L A H M E R Définition d’un systèmeembarqué Système embarqué = Une intégration d’électronique et d’informatique, issue de l’évolution des microprocesseurs vers les microcontrôleurs, composée de : Un calculateur spécialisé (microprocesseur ou microcontrôleur) Un logiciel dédié optimisé pour des tâches spécifiques Des interfaces E/S facilitant l’interaction avec le monde physique Des contraintes strictes : Temps réel Consommation minimale Encombrement réduit Houssem-eddine LAHMER Les systèmes embarqués 15 / 99
  • 16.
  • 17.
    H o u s s e m L A H M E R Systèmes Embarqués "Depuis l’abaqueantique jusqu’à l’ère des microcontrôleurs, notre quête de contrôle sur le monde physique a donné naissance à des systèmes essentiels pour notre avenir." Houssem-eddine LAHMER Les systèmes embarqués 17 / 99
  • 18.
    H o u s s e m L A H M E R Fonctionnalités d’un systèmeembarqué Traitement de données Stockage de données Interaction avec le monde extérieur Acquisition (capteurs, ADC) Actions (moteurs, LED) Communication (I2C, SPI, CAN, Ethernet, WiFi, etc.) Houssem-eddine LAHMER Les systèmes embarqués 18 / 99
  • 19.
  • 20.
  • 21.
    H o u s s e m L A H M E R Composants matériels Processeur/Microcontrôleur/SoC (Traitement) Stockage Volatile: RAM, cache, registres Non volatile : ROM, PROM, EPROM, EEPROM, Flash Périphériques d’interaction Communication : I2C, SPI, CAN, Ethernet, WiFi, ZigBee, LoRaWAN Acquisition : Capteurs, ADC, GPIO Sortie : DAC, LED, pilotage de moteurs Interconnexion via bus (processeur, mémoire, périphériques) Houssem-eddine LAHMER Les systèmes embarqués 21 / 99
  • 22.
    H o u s s e m L A H M E R Microprocesseur lit séquentiellement desinstructions et des données à partir d’une mémoire. décode les instructions fait des calculs sur des données en internes écrit des données en mémoire Houssem-eddine LAHMER Les systèmes embarqués 22 / 99
  • 23.
    H o u s s e m L A H M E R Microcontroleur (MCU:Microcontroller Unit) Regroupedans le même circuit: un cœur de processeur des mémoires (RAM/ROM) des périphériques (entrée/sorties, timers. . . ) Houssem-eddine LAHMER Les systèmes embarqués 23 / 99
  • 24.
  • 25.
    H o u s s e m L A H M E R Vocabulaire – Périphériquescourants GPIO (General-Purpose Input/Output) Patte (pin) d’un circuit intégré ou connecteur d’une carte électronique. Peut être configuré en entrée ou en sortie numérique. Permet de contrôler les entrées-sorties. UART (Universal Asynchronous Receiver Transmitter) Périphérique gérant la communication série. Transfert des bits d’un mot sur un seul fil, les uns après les autres. Mode asynchrone : l’horloge n’est pas transmise ; elle est reconstituée par le récepteur en détectant le début de la transmission et en utilisant le débit binaire configuré. Houssem-eddine LAHMER Les systèmes embarqués 25 / 99
  • 26.
    H o u s s e m L A H M E R Communication CPU -Mémoire Opérations : Lecture / Écriture Adresse : Localisation de la donnée Données : Transfert entre CPU et mémoire Houssem-eddine LAHMER Les systèmes embarqués 26 / 99
  • 27.
    H o u s s e m L A H M E R Les Bases duStockage d’Information Un bit : unité minimale (2 états possibles : 0 ou 1) Les données sont des séquences finies de bits Exemples : 4 bits → 0110 ; 8 bits → 11010011 Houssem-eddine LAHMER Les systèmes embarqués 27 / 99
  • 28.
    H o u s s e m L A H M E R Séquences de Bitset Leur Capacité Une séquence de N bits peut représenter jusqu’à 2N éléments Exemples d’interprétation : 1001 : Nombre 9 (base 2) 000010000000 : Peut représenter "Mai" Une séquence de bits = ce que vous décidez d’en faire Houssem-eddine LAHMER Les systèmes embarqués 28 / 99
  • 29.
    H o u s s e m L A H M E R Systèmes Numériques etInterprétation Une séquence de N bits peut être lue comme un nombre en base 2 Attention : la valeur brute n’est pas toujours un nombre (ex. 000010000000 peut signifier "Mai") Il faut indiquer à l’ordinateur comment interpréter les bits Houssem-eddine LAHMER Les systèmes embarqués 29 / 99
  • 30.
    H o u s s e m L A H M E R Représentations Classiques Binaire :b7b6 . . . b0 interprété en base 2 Complément à 2 : pour représenter les nombres négatifs ASCII : codage des symboles (ex. %, A, 7) http://en.wikipedia.org/wiki/ASCII Houssem-eddine LAHMER Les systèmes embarqués 30 / 99
  • 31.
    H o u s s e m L A H M E R Organisation des Bits Unoctet = 8 bits (granularité usuelle) L’écriture en base 16 est plus pratique (symboles : 0-9, A-F) Houssem-eddine LAHMER Les systèmes embarqués 31 / 99
  • 32.
    H o u s s e m L A H M E R ALU : LeCœur Calculant du CPU Définition Circuit combinatoire numérique Effectue opérations arithmétiques & logiques Manipule des entiers binaires (32 bits sur Cortex-M) Houssem-eddine LAHMER Les systèmes embarqués 32 / 99
  • 33.
    H o u s s e m L A H M E R Anatomie d’une InstructionCortex-M Opcode (4-16 bits) Operande 1 Operande 2 Résultat ADD R0 R1, #42 R0 = R1 + 42 AND R2 R3, R4 R2 = R3 & R4 Houssem-eddine LAHMER Les systèmes embarqués 33 / 99
  • 34.
    H o u s s e m L A H M E R Cycle d’Exécution d’uneInstruction 1 Fetch : Chargement instruction depuis la mémoire 2 Decode : Décodage opcode & opérandes 3 Execute : Traitement par l’ALU 4 Writeback : Stockage résultat Houssem-eddine LAHMER Les systèmes embarqués 34 / 99
  • 35.
    H o u s s e m L A H M E R Exemple Concret :Addition en Assembleur Décomposition binaire Opcode ADD : 0100 0101 Registres : R0=001, R1=010 Résultat : R2=011 (si a=1, b=2) Houssem-eddine LAHMER Les systèmes embarqués 35 / 99
  • 36.
    H o u s s e m L A H M E R Flags et Prisede Décision Flag Signification Z (Zero) Résultat = 0 N (Negative) Résultat < 0 C (Carry) Dépassement V (Overflow) Débordement signé Houssem-eddine LAHMER Les systèmes embarqués 36 / 99
  • 37.
    H o u s s e m L A H M E R Types de mémoire Mémoirevolatile DRAM SRAM Mémoire non volatile ROM EEPROM Flash (Nor) Houssem-eddine LAHMER Les systèmes embarqués 37 / 99
  • 38.
    H o u s s e m L A H M E R Mémoires dans lessystèmes embarqués Type Volatilité Utilisation typique Embarqué SRAM Volatile Cache/Mémoire rapide ✓(mémoire principale) DRAM Volatile Mémoire système - (trop gourmande) Flash NOR Non-volatile Stockage firmware ✓(exécution XIP) EEPROM Non-volatile Paramètres système ✓(mises à jour rares) ROM Non-volatile Firmware fixe ✓(coût minimal) Pour les microcontrôleurs SRAM : Mémoire de travail rapide (taille limitée) Flash NOR : Stockage programme (accès direct) EEPROM : Conservation données critiques Houssem-eddine LAHMER Les systèmes embarqués 38 / 99
  • 39.
    H o u s s e m L A H M E R Bascule D -D Flip-Flop D flip-flop (dff, registre, etc.) Fonctionnement : Au front montant de l’horloge (clk passant de 0 à 1) : la valeur de D est capturée et copiée sur Q (échantillonnage). Sinon : Q conserve sa valeur (mémorisation). Houssem-eddine LAHMER Les systèmes embarqués 39 / 99
  • 40.
    H o u s s e m L A H M E R Table de véritédu D flip-flop D clk Q Opération 0 ↑ 0 D est copié sur Q (échantillonnage) 1 ↑ 1 D est copié sur Q (échantillonnage) × 0 Q Q conserve sa valeur (mémorisation) × 1 Q Q conserve sa valeur (mémorisation) × ↓ Q Q conserve sa valeur (mémorisation) Houssem-eddine LAHMER Les systèmes embarqués 40 / 99
  • 41.
    H o u s s e m L A H M E R Registre Un registre estun ensemble de flip-flops utilisés en parallèle. Exemple : Registre 4 bits Fonctionnement : L’horloge (clk) déclenche simultanément l’échantillonnage des entrées D de chaque flip-flop, et leurs valeurs sont stockées dans les sorties Q. Houssem-eddine LAHMER Les systèmes embarqués 41 / 99
  • 42.
    H o u s s e m L A H M E R Endianness Endianness Supposons que noussouhaitions stocker une variable 32 bits (4 octets). Il est logique de les stocker dans des emplacements mémoire contigus. Mais où placer le bit le plus significatif (MSB) ? Houssem-eddine LAHMER Les systèmes embarqués 42 / 99
  • 43.
    H o u s s e m L A H M E R Big Endian vsLittle Endian « D » fait référence au mot de données 32 bits, et les indices en subscript indiquent les bits individuels, du bit le plus significatif (D31) au bit le moins significatif (D0). Houssem-eddine LAHMER Les systèmes embarqués 43 / 99
  • 44.
    H o u s s e m L A H M E R types de Microcontrôleurs Deuxarchitectures de mémoire existent : L’architecture Harvard L’architecture Von Neumann Houssem-eddine LAHMER Les systèmes embarqués 44 / 99
  • 45.
    H o u s s e m L A H M E R Architecture Von Neumann ArchitectureVon Neumann : La même mémoire et le même bus servent à stocker les instructions et les données. L’accès simultané à la mémoire de programme et à la mémoire de données n’est pas possible. Cette architecture est sujette aux goulets d’étranglement, affectant ainsi les performances du système. Houssem-eddine LAHMER Les systèmes embarqués 45 / 99
  • 46.
    H o u s s e m L A H M E R Architecture Harvard Les instructionset les données sont stockées dans des unités mémoire séparées, reliées par des bus différents. Il existe au moins deux espaces d’adressage mémoire distincts. Possibilité d’exécuter un programme et d’accéder aux données de manière indépendante et simultanée. Houssem-eddine LAHMER Les systèmes embarqués 46 / 99
  • 47.
    H o u s s e m L A H M E R Harvard vs VonNeumann Architecture Von Neumann Utilise la même adresse mémoire pour les instructions et les données. Le processeur nécessite deux cycles d’horloge pour exécuter une instruction. Unité de contrôle simple, ce qui rend le développement moins coûteux. Les transferts de données et la récupération d’instructions ne sont pas simultanés. Utilisé dans les PC (Intel). Architecture Harvard Utilise des adresses mémoire séparées pour les instructions et les données. Le processeur nécessite un seul cycle d’horloge pour compléter une instruction. L’unité de contrôle est plus complexe, augmentant le coût de développement. Les transferts de données et la récupération d’instructions peuvent être effectués simultanément. Utilisé dans les microcontrôleurs. Houssem-eddine LAHMER Les systèmes embarqués 47 / 99
  • 48.
    H o u s s e m L A H M E R Harvard vs VonNeumann Houssem-eddine LAHMER Les systèmes embarqués 48 / 99
  • 49.
    H o u s s e m L A H M E R Les GPIO C’est quoiun GPIO? Port d’Entrée/Sortie à usage général Interface entre le programme et le monde physique Comme des interrupteurs virtuels connectés aux pattes du microcontrôleur Houssem-eddine LAHMER Les systèmes embarqués 49 / 99
  • 50.
    H o u s s e m L A H M E R Structure des portsGPIO 8 ports (A à H) Jusqu’à 16 pins par port Mais attention : Disponibilité limitée! Modèle de circuit Fonctions système Houssem-eddine LAHMER Les systèmes embarqués 50 / 99
  • 51.
    H o u s s e m L A H M E R 4 modes principaux EntréeSortie Alternatif Analogique Houssem-eddine LAHMER Les systèmes embarqués 51 / 99
  • 52.
    H o u s s e m L A H M E R Comparaison des modes ModeUtilisation typique Caractéristiques Entrée Lire bouton/capteur Pull-up/down configurables Sortie Piloter LED/relais Vitesse configurable Alternatif Communication (UART, SPI) Dépend du périphérique Analogique Capteur analogique Convertisseur ADC/DAC Attention Un pin ne peut pas être dans deux modes en même temps! Houssem-eddine LAHMER Les systèmes embarqués 52 / 99
  • 53.
    H o u s s e m L A H M E R Exemple pratique PA5 :LED (sortie) PC13 : Bouton (entrée) Programme : Si bouton appuyé : LED ON Sinon : LED OFF Houssem-eddine LAHMER Les systèmes embarqués 53 / 99
  • 54.
    H o u s s e m L A H M E R TIMER - Àquoi ça sert? Compte le temps comme un chronomètre Déclenche des actions automatiquement Génère des signaux précis Analogie Comme un minuteur de cuisine programmable Houssem-eddine LAHMER Les systèmes embarqués 54 / 99
  • 55.
    H o u s s e m L A H M E R Composants clés d’unTIMER Prédiviseur : Adapte la vitesse (ex: /16) Compteur : Valeur qui augmente à chaque tick Comparateur : Déclenche une action quand seuil atteint Houssem-eddine LAHMER Les systèmes embarqués 55 / 99
  • 56.
    H o u s s e m L A H M E R PWM - Contrôleintelligent t V τ T Paramètres clés T : Période (ARR) τ : Temps actif (CCR) Rapport cyclique = τ/T Applications - Contrôle de moteur - Gradation LED - Générateur son Houssem-eddine LAHMER Les systèmes embarqués 56 / 99
  • 57.
    H o u s s e m L A H M E R Modes de fonctionnement ModeDescription Utilisation Compteur Incrémente à chaque tick Mesure temps/délais PWM Génère signal modulé Contrôle moteur/LED Input Capture Mesure durée d’impulsion Encodeur rotatif Output Compare Déclenchement périodique Pilote périphériques Bon à savoir Jusqu’à 17 timers sur certains microcontrôleurs Résolution jusqu’à 32 bits Synchronisation possible entre timers Houssem-eddine LAHMER Les systèmes embarqués 57 / 99
  • 58.
    H o u s s e m L A H M E R Communiquer : commeune conversation Les 3 éléments essentiels Un langage commun (protocole) Un support (fils, radio...) Des règles de dialogue (qui parle quand ?) Émetteur Récepteur Canal Houssem-eddine LAHMER Les systèmes embarqués 58 / 99
  • 59.
    H o u s s e m L A H M E R Parallèle vs Série: Le combat des câbles Parallèle Autoroute à 8 voies Rapide mais encombrant Idéal courtes distances Série Route à 1 voie Plus lent mais flexible Longues distances Houssem-eddine LAHMER Les systèmes embarqués 59 / 99
  • 60.
    H o u s s e m L A H M E R Les 3 grandsprotocoles série UART SPI I2C Simple point-à-point Haute vitesse Bus multi- périphériques 2 fils + GND 4 fils 2 fils Asynchrone Synchrone Synchrone Houssem-eddine LAHMER Les systèmes embarqués 60 / 99
  • 61.
    H o u s s e m L A H M E R Principe de basedu UART Universal Asynchronous Receiver-Transmitter Protocole série asynchrone (pas de signal d’horloge) Communication full-duplex (émission/réception simultanées) Débit standard : 9600 à 115200 bauds Schéma d’interconnexion TX (Transmit) → RX (Receive) RX ← TX (Transmit) Masse commune (GND) Houssem-eddine LAHMER Les systèmes embarqués 61 / 99
  • 62.
    H o u s s e m L A H M E R UART : Configurationtype Configuration type Baud rate : 9600 8 bits de données Pas de parité 1 bit de stop Houssem-eddine LAHMER Les systèmes embarqués 62 / 99
  • 63.
    H o u s s e m L A H M E R SPI : Laformule 1 des bus Caractéristiques clés (Partie 1) Vitesse jusqu’à 10+ MHz Communication full-duplex Caractéristiques clés (Partie 2) Utilise 4 fils : MOSI (Master Out Slave In) MISO (Master In Slave Out) SCK (Serial Clock) SS (Slave Select) Figure: Schéma maître/esclaves du bus SPI Houssem-eddine LAHMER Les systèmes embarqués 63 / 99
  • 64.
    H o u s s e m L A H M E R ARM - Leconcepteur invisible Fiche d’identité Fondation : 1990 Propriétaire : SoftBank (2016) Spécialité : Cœurs RISC 32 bits Philosophie de conception Performance/énergie optimisée Architecture modulaire Licence de propriété intellectuelle (IP) Houssem-eddine LAHMER Les systèmes embarqués 64 / 99
  • 65.
    H o u s s e m L A H M E R Modèle économique :ARM vs Fabricants Rôle d’ARM Design de cores CPU Licence d’IP aux fabricants Pas de production physique Exemple concret ARM : Cortex-M4 STMicro : STM32F4 NXP : LPC4000 Avantage clé Standardisation + personnalisation Houssem-eddine LAHMER Les systèmes embarqués 65 / 99
  • 66.
    H o u s s e m L A H M E R Architecture simplifiée d’unARM Caractéristiques clés Fonctionnement du banc de registres Lecture simultanée sur 2 registres Écriture sur 1 registre/cycle Accès mémoire 32 bits : Adresse : 32 bits Données : 32 bits bidirectionnel Particularité ARM Registre r15 = PC (Program Counter) Houssem-eddine LAHMER Les systèmes embarqués 66 / 99
  • 67.
    H o u s s e m L A H M E R Pipeline à 3étages Les trois étapes clés 1 FETCH : Charge l’instruction 2 DECODE : Décode l’opération 3 EXECUTE : Exécute la commande Avantages Parallélisme d’instructions Débit = 1 instruction/cycle Optimisation des ressources Houssem-eddine LAHMER Les systèmes embarqués 67 / 99
  • 68.
    H o u s s e m L A H M E R PWM : Modulationde largeur d’impulsion – Définition et Principe Principe de base La PWM (Pulse Width Modulation) est une technique qui contrôle la puissance délivrée à une charge en modulant la durée d’activation (temps ON) d’un signal périodique par rapport à sa période totale. Rapport Cyclique Rapport cyclique = TON T × 100% Où TON est le temps pendant lequel le signal est actif, et T la période complète du signal. Avantages de la PWM Contrôle précis de la puissance Réduction des pertes énergétiques Houssem-eddine LAHMER Les systèmes embarqués 68 / 99
  • 69.
  • 70.
    H o u s s e m L A H M E R PWM : Applications Applicationscourantes Contrôle de la vitesse des moteurs Gradation de l’intensité lumineuse des LED Positionnement précis des servomoteurs Houssem-eddine LAHMER Les systèmes embarqués 70 / 99
  • 71.
    H o u s s e m L A H M E R Contrôle moteur avecL298N Configuration minimale IN1/IN2 : Direction EN A/B : PWM vitesse Alim séparée moteur Astuce STM32 Utiliser les timers matériels : TIM1/2/3/4 Channels PWM dédiés Schéma de connexion L298N Houssem-eddine LAHMER Les systèmes embarqués 71 / 99
  • 72.
    H o u s s e m L A H M E R L’horloge : Lemétronome du processeur Analogie musicale Comme un métronome pour musicien Donne le rythme des opérations 1 cycle = 1 "temps" élémentaire Exemple concret Microcontrôleur à 16 MHz : 16 millions de cycles par seconde Chaque cycle dure 62.5 ns Houssem-eddine LAHMER Les systèmes embarqués 72 / 99
  • 73.
    H o u s s e m L A H M E R Cas concrets Arduino Uno(16 MHz) STM32 (72 MHz) Raspberry Pi (1.5 GHz) Équilibre important ↑ Fréquence ⇒ ↑ Performance ↑ Fréquence ⇒ ↑ Consommation Houssem-eddine LAHMER Les systèmes embarqués 73 / 99
  • 74.
    H o u s s e m L A H M E R ADC : AnalogTo Digital Cnversion Fonction principale Convertir des tensions réelles en valeurs numériques Exemple concret Potentiomètre -> Microcontrôleur Température -> Valeur 12 bits 0-3.3V -> 0-4095 Houssem-eddine LAHMER Les systèmes embarqués 74 / 99
  • 75.
    H o u s s e m L A H M E R Caractéristiques clés d’unADC Résolution : 8/10/12/16 bits Précision : ±1-3 LSB Temps de conversion : 1us à 1ms Houssem-eddine LAHMER Les systèmes embarqués 75 / 99
  • 76.
    H o u s s e m L A H M E R DAC : Lavoix analogique du numérique Fonction principale Convertir des valeurs numériques en tensions réelles Applications typiques Contrôle de moteur Génération audio Lissage PWM Houssem-eddine LAHMER Les systèmes embarqués 76 / 99
  • 77.
    H o u s s e m L A H M E R Spécifications importantes d’unDAC Résolution : 8/10/12 bits Temps d’établissement : 1us-10us Tension de sortie : 0-3.3V Buffer de sortie Interface : Parallel/SPI/I2C Linéarité : ±1 LSB Houssem-eddine LAHMER Les systèmes embarqués 77 / 99
  • 78.
    H o u s s e m L A H M E R Comparaison ADC/DAC Paramètre ADCDAC Résolution typique 12 bits 12 bits Temps de conversion 1us-1ms 1us-10us Interfaces GPIO, DMA SPI, I2C Consommation 1-10mA 5-50mA Coût $0.10-$10 $0.50-$20 Applications Capteurs, Mesure Audio, Contrôle Houssem-eddine LAHMER Les systèmes embarqués 78 / 99
  • 79.
    H o u s s e m L A H M E R Qu’est-ce qu’une interruption? Définition : Mécanisme permettant à un périphérique ou un événement externe d’interrompre le flot normal d’exécution du processeur. Avantage : Réagir rapidement à des événements sans scruter en permanence (polling). Exemples : Timer, réception de données sur un port série, etc. Houssem-eddine LAHMER Les systèmes embarqués 79 / 99
  • 80.
    H o u s s e m L A H M E R Cycle d’interruption surCortex-M Détection de l’interruption par le contrôleur. Empilement automatique de registres (PC, LR, etc.). Saut vers la routine de service (ISR). À la fin, restauration du contexte et reprise du programme principal. Figure: Cycle d’interruption (ARM Cortex-M). Houssem-eddine LAHMER Les systèmes embarqués 80 / 99
  • 81.
    H o u s s e m L A H M E R Schéma global Le contrôleurd’interruptions gère les demandes provenant de plusieurs périphériques. Il informe le CPU lorsque la demande la plus prioritaire doit être traitée. Le CPU lit la table de vecteurs pour connaître l’adresse de l’ISR associée. Figure: Interaction CPU - Contrôleur d’interruptions - Périphériques. Houssem-eddine LAHMER Les systèmes embarqués 81 / 99
  • 82.
    H o u s s e m L A H M E R Interruptions imbriquées Priorité :Certaines interruptions peuvent interrompre une ISR moins prioritaire. Nesting (imbriquées) : Le processeur empile le contexte de l’ISR en cours pour traiter l’ISR plus prioritaire. Après traitement, on revient à l’ISR initial puis au programme principal. Figure: Exemple d’interruptions imbriquées selon la priorité. Houssem-eddine LAHMER Les systèmes embarqués 82 / 99
  • 83.
    H o u s s e m L A H M E R Table des vecteurset adresses ISR Table des vecteurs : Zone mémoire contenant les adresses de chaque ISR. L’adresse de l’ISR associée à un événement se trouve à un index déterminé par l’ID de l’interruption. Figure: Table des vecteurs (exemple simplifié). Houssem-eddine LAHMER Les systèmes embarqués 83 / 99
  • 84.
    H o u s s e m L A H M E R Événement, INT, ISRet retour INT : Saut vers l’ISR. IRET (ou BX LR en ARM) : Retour au programme principal. Figure: Événement déclencheur, exécution de l’ISR, puis retour. Houssem-eddine LAHMER Les systèmes embarqués 84 / 99
  • 85.
    H o u s s e m L A H M E R Introduction aux STM32 LesSTM32 sont des microcontrôleurs 32 bits basés sur l’architecture ARM Cortex. Ils sont utilisés dans des applications embarquées nécessitant performance, réactivité et faible consommation. Leur grande richesse fonctionnelle permet d’intégrer de multiples périphériques et modules (GPIO, Timers, Clock, Interruptions, etc.). Houssem-eddine LAHMER Les systèmes embarqués 85 / 99
  • 86.
    H o u s s e m L A H M E R GPIO Les GPIO permettentla communication avec des périphériques externes (capteurs, actionneurs, LED, etc.). Ils sont configurables en mode entrée, sortie ou en mode alternatif pour des fonctions spécifiques. Ils constituent la base de l’interaction entre le microcontrôleur et le monde extérieur. Houssem-eddine LAHMER Les systèmes embarqués 86 / 99
  • 87.
    H o u s s e m L A H M E R Timers Les Timers gèrentla mesure du temps et la génération de signaux, notamment en PWM (Pulse Width Modulation). Ils permettent la création de délais précis et la synchronisation d’opérations périodiques. Utiles pour des tâches comme le contrôle moteur ou le déclenchement d’événements à intervalles réguliers. Houssem-eddine LAHMER Les systèmes embarqués 87 / 99
  • 88.
    H o u s s e m L A H M E R Interruptions Les interruptions permettentde répondre immédiatement à des événements externes ou internes. Elles interrompent le déroulement normal du programme pour exécuter des routines spécifiques (ISR : Interrupt Service Routines). Cruciales pour la gestion en temps réel et la réactivité des systèmes embarqués. Houssem-eddine LAHMER Les systèmes embarqués 88 / 99
  • 89.
  • 90.
    H o u s s e m L A H M E R Introduction Les STM32 : Microcontrôleursfabriqués par STMicroelectronics, reconnus pour leur performance et faible consommation. Largement utilisés dans les applications embarquées. Pourquoi le C ? Langage bas niveau permettant un contrôle précis du matériel. Facilité d’intégration avec les bibliothèques fournies par ST. Houssem-eddine LAHMER Les systèmes embarqués 90 / 99
  • 91.
    H o u s s e m L A H M E R Environnement de développement IDEet Compilateurs : STM32CubeIDE (environnement officiel gratuit) Alternatives : Keil MDK-ARM, IAR Embedded Workbench, ou la toolchain GCC. Outils complémentaires : CubeMX pour configurer graphiquement les périphériques et générer le code d’initiation. ST-Link pour la programmation et le débogage. Houssem-eddine LAHMER Les systèmes embarqués 91 / 99
  • 92.
    H o u s s e m L A H M E R Architecture des CouchesLogicielles Houssem-eddine LAHMER Les systèmes embarqués 92 / 99
  • 93.
    H o u s s e m L A H M E R Architecture des CouchesLogicielles Couche Analogie Assembleur Instructions machine directes C pur Piloter manuellement une voiture HAL (Hardware Abstraction Layer) Tableau de bord avec compteurs Middleware (RTOS, USB) Système GPS intégré Houssem-eddine LAHMER Les systèmes embarqués 93 / 99
  • 94.
    H o u s s e m L A H M E R Pourquoi le Cbas niveau en embarqué ? Contrôle total nécessaire Délais garantis (ex : airbag < 1 ms) Optimisation mémoire (96 KB Flash) Consommation en µA précise Houssem-eddine LAHMER Les systèmes embarqués 94 / 99
  • 95.
    H o u s s e m L A H M E R Types de donnéesen C embarqué Standard C C embarqué Taille char uint8_t / int8_t 8 bits short uint16_t 16 bits long uint32_t 32 bits float float IEEE 754 Bonnes pratiques Toujours spécifier signed/unsigned Utiliser stdint.h Éviter les types variables Houssem-eddine LAHMER Les systèmes embarqués 95 / 99
  • 96.
    H o u s s e m L A H M E R Structure d’un programmeC pour STM32 Fonction principale (main) : Point d’entrée du programme. Initialisation du système : Appel à HAL_Init() pour initialiser la couche d’abstraction matérielle. Configuration de l’horloge avec SystemClock_Config(). Initialisation des périphériques (GPIO, ADC, timers, etc.) via des fonctions spécifiques. Boucle infinie : Permet l’exécution continue des tâches de l’application. Houssem-eddine LAHMER Les systèmes embarqués 96 / 99
  • 97.
    H o u s s e m L A H M E R Utilisation de labibliothèque HAL Rôle de HAL : Simplifie l’accès et la configuration des périphériques matériels. Fournit des fonctions standardisées pour gérer les interfaces (GPIO, UART, SPI, I2C, etc.). Avantages : Réduction de la complexité du code. Meilleure portabilité et maintenance du logiciel. Houssem-eddine LAHMER Les systèmes embarqués 97 / 99
  • 98.
    H o u s s e m L A H M E R Outils de débogageet bonnes pratiques Débogage : Utilisation du débogueur intégré dans STM32CubeIDE (points d’arrêt, inspection des variables, etc.). Analyse des messages d’erreur et suivi en temps réel via ST-Link. Bonnes pratiques : Structurer le code en modules pour faciliter la maintenance. Tester chaque composant individuellement avant l’intégration globale. Se référer à la documentation officielle ST et aux exemples fournis dans STM32CubeFirmware. Houssem-eddine LAHMER Les systèmes embarqués 98 / 99
  • 99.
    H o u s s e m L A H M E R Conclusion La programmation enC pour STM32 offre un contrôle précis du matériel et permet de développer des applications embarquées performantes. L’utilisation d’outils comme STM32CubeIDE et CubeMX simplifie le processus de développement. Maîtriser la bibliothèque HAL et les bonnes pratiques de débogage est essentiel pour la réussite des projets embarqués. Houssem-eddine LAHMER Les systèmes embarqués 99 / 99