Le paradigme embarqué
Programmer une machine contrainte : boucle principale sans système, interruptions et drapeaux, noyau temps réel et échéances, registres et masques de bits, budget d'énergie et chien de garde.
- 25 cartes
- 5 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Les chiffres
- Mises en situation
Quelques cartes du deck
Interruption : de quoi s'agit-il ?
Voir la réponse
Signal matériel qui suspend le programme en cours pour exécuter tout de suite une routine dédiée, puis reprend là où il s'était arrêté.
Elle évite de tester un bouton ou un capteur en boucle. La routine doit rester courte : pendant son exécution, le reste du programme est arrêté.
Que vaut
regaprès ces lignes en C ?
```c
unsigned char reg = 0x41;
reg |= (1 << 5);`0x610x200x460x40
Voir la réponse
0x611 << 5vaut 0x20 (le bit 5). Le OU met ce bit à 1 sans toucher aux autres : 0x41 | 0x20 = 0x61.reg = 1 << 5aurait donné 0x20 en effaçant le reste.Une routine d'interruption se contente de positionner un … ; la … fait ensuite le vrai travail.
Voir la réponse
Une routine d'interruption se contente de positionner un drapeau ; la boucle principale fait ensuite le vrai travail.
La routine doit être brève, sans attente ni affichage. Le drapeau partagé doit être déclaré
volatile, sinon le compilateur peut ne jamais relire sa valeur dans la boucle.Contrainte temps réel : de quoi s'agit-il ?
Voir la réponse
Exigence qu'un traitement soit terminé avant une échéance fixée ; ce qui compte est la date du résultat autant que sa valeur.
« Rapide » ne suffit pas : il faut une durée bornée dans le pire cas. Dur, la manquer est une défaillance (airbag) ; souple, elle dégrade seulement la qualité (vidéo).