Partie 2 — FreeRTOS et mémoire
Dans la première partie, une seule boucle fait tout, et une attente bloque le reste. Avec FreeRTOS, le programme se découpe en tâches qui s’exécutent ensemble : un clignotement, la lecture d’un capteur et une liaison série avancent chacun à son rythme.
Cette partie aborde aussi ce qui fait la vitesse d’un programme sur un Cortex-M7 : le DMA, qui transfère des données sans occuper le processeur, l”exécution depuis la flash externe, qui donne de la place au programme mais le ralentit, et les mémoires rapides ITCM et DTCM, où placer ce qui doit aller vite.
Vue d’ensemble :
TP |
Sujet |
Ce qu’on apprend |
|---|---|---|
1 |
Premières tâches |
deux clignotements indépendants, l’ordonnanceur, |
2 |
Priorités et ordonnancement |
préemption, famine, tâche périodique ( |
3 |
Communiquer entre tâches |
files de messages (bouton → LED), sémaphore donné par une interruption |
4 |
Partager une ressource |
mutex sur la liaison série, inversion de priorité |
5 |
Timers logiciels et chien de garde |
minuterie, chien de garde qui surveille toutes les tâches |
6 |
Le DMA |
émettre sans occuper le processeur, interruption de fin de transfert, mémoires accessibles, cohérence avec le cache de données |
7 |
Un programme en flash externe |
chargeur d’amorçage, exécution directe depuis la flash QSPI, script d’édition de liens, coût des défauts de cache |
8 |
Les mémoires ITCM et DTCM |
placer le code critique et ses données en mémoire rapide, mesurer le gain |
9 |
Charge du processeur |
mesurer ce que coûte chaque tâche, et la charge totale |
10 |
Des tâches pour les capteurs I²C |
température et gyroscope à deux rythmes, état partagé et événements, le bus partagé |
11 |
Une tâche pour l’écran SPI |
une tâche d’affichage, l’image envoyée par DMA, le double tampon |
12 |
Mini-projet : le tableau de bord |
capteurs, écran, actionneurs et surveillance organisés en tâches |
Les TP 7 et 8 se répondent : le même programme, d’abord exécuté depuis la flash externe, puis avec sa partie critique en ITCM. La différence de cadence se mesure.
- TP 1 — Premières tâches
- TP 2 — Priorités et ordonnancement
- TP 3 — Communiquer entre tâches
- TP 4 — Partager une ressource
- TP 5 — Timers logiciels et chien de garde
- TP 6 — Le DMA
- TP 7 — Un programme en flash externe
- TP 8 — Les mémoires ITCM et DTCM
- TP 9 — Charge du processeur
- TP 10 — Des tâches pour les capteurs I²C
- TP 11 — Une tâche pour l’écran SPI
- TP 12 — Mini-projet : le tableau de bord