WFI |
Attendre pour l'interruption |
| ARM |
Syntaxe
Paramètres
| Nom |
Description |
| cond |
Ce paramètre optionnel permet d'indiquer le code de condition |
Description
Cette instruction permet d'attendre après une interruption.
Remarques
- Instruction utilisée pour économiser l'énergie : WFI permet de mettre le processeur en état de veille jusqu'à ce qu'une interruption survienne. Elle
est largement utilisée dans les systèmes embarqués pour réduire la consommation énergétique lorsque le CPU n'a aucune tâche active à exécuter.
- Réagit immédiatement à une interruption : Dès qu'une interruption est détectée (et non masquée), le processeur quitte l'état de veille et reprend
l'exécution normale du code. Cela permet de réduire le temps d'attente actif tout en assurant la réactivité du système.
- Différente de l'instruction WFE (Wait For Event) : Contrairement à WFE, attendant un événement, WFI attend spécifiquement une interruption matérielle.
Cette distinction est importante dans les systèmes à événements complexes où les interruptions et les signaux logiciels coexistent.
- Peut être conditionnelle grâce au suffixe {cond} : La présence du champ optionnel {cond} permet d'exécuter l'instruction uniquement si certaines
conditions sont remplies. Cela peut être utile pour gérer finement l'entrée en veille, par exemple dans une condition d'attente contrôlée.
- Très utilisée dans les microcontrôleurs ARM Cortex-M : Dans des architectures comme ARM Cortex-M0/M3/M4, WFI est souvent utilisée dans la boucle
principale d'un firmware pour faire dormir le microcontrôleur lorsqu'il est inactif, puis le réveiller dès qu'un événement critique survient.
- Ne bloque pas les interruptions masquées : Si une interruption est désactivée (masquée), WFI ne permet pas de la traiter tant que le masquage n'est
pas levé. Cela signifie qu'il faut gérer correctement les priorités et les masques d'interruption pour éviter un blocage indésirable.
- Interaction avec les systèmes de gestion de l'alimentation : WFI peut déclencher des mécanismes de gestion d'énergie du SoC (System on Chip), tels que
l'arrêt de certains blocs fonctionnels ou la baisse de la fréquence. Cela renforce son rôle dans l'optimisation énergétique.
- Ne modifie aucun registre ni mémoire : L'instruction WFI ne change pas l'état des registres généraux. Elle n'effectue pas de calculs, n'écrit rien en
mémoire, et ne dépend d'aucun résultat antérieur : elle agit uniquement sur l'état du processeur.
Dernière mise à jour : Dimanche, le 12 novembre 2017