Syntaxe
Paramètres
| Nom |
Description |
| #imm |
Ce paramètre permet d'indiquer une expression à évaluer. La valeur doit entre 0 et 65535 dans une instruction ARM ou entre 0 et 255 dans une instruction Thumb. |
Description
Cette instruction permet de provoquer un point d'arrêt d'entrer en mode de déboguage.
Remarques
- Instruction dédiée au débogage : BKPT est utilisée pour déclencher un point d'arrêt logiciel durant l'exécution d'un programme. Elle permet de suspendre
l'exécution et de transférer le contrôle à un débogueur ou à un moniteur de debug. Elle est cruciale pour analyser l'état d'un programme à un instant précis, sans avoir
besoin d'insérer manuellement des branchements ou des messages.
- Paramètre immédiat pour identifier les points d'arrêt : Le paramètre #imm permet d'associer une valeur numérique au point d'arrêt. Cela permet
au débogueur d'interpréter ou de différencier plusieurs points d'arrêt selon leur rôle (ex. : BKPT #1, BKPT #42). Dans les systèmes complexes, cela facilite la gestion
des différents arrêts pendant les phases de test.
- Différence d'intervalle entre ARM et Thumb : Dans l'ensemble d'instructions ARM, la valeur immédiate peut aller de 0 à 65535, alors que dans le mode Thumb,
elle est limitée de 0 à 255. Cette différence reflète la taille plus réduite des instructions Thumb, et doit être prise en compte lors du codage multi-mode, notamment
sur les architectures ARM Cortex-M.
- Ne modifie pas l'état du programme : L'instruction BKPT ne modifie pas les registres, la mémoire ou les drapeaux. Elle n'a aucun effet visible
sur l'état du programme en dehors de l'interruption déclenchée. Cela la rend sûre à utiliser même dans des endroits critiques, tant que le débogueur est actif.
- Déclenche une exception spécifique : Lorsque BKPT est exécutée, elle génère une exception appelée Breakpoint Exception. Cette exception
peut être interceptée par un outil de débogage ou un gestionnaire d'exceptions dans le système. Cela permet d'exécuter un traitement personnalisé ou d'enregistrer un
état système précis.
- Utilisable même dans du code embarqué : Dans les systèmes embarqués, BKPT est souvent utilisée pour insérer un point d'arrêt logiciel dans le firmware.
Cela permet à un développeur de se connecter avec un débogueur JTAG ou SWD, même si aucune interface utilisateur n'est disponible. C'est aussi une technique de test
courante dans les bootloaders.
- Peut servir à simuler des erreurs contrôlées : Outre le débogage, BKPT peut être utilisée pour simuler une erreur système, en interrompant volontairement
l'exécution lorsque certaines conditions sont détectées (ex. : dépassement de tampon, accès non autorisé). Cela aide à vérifier le comportement du système en présence
de fautes.
- Doit être retirée dans le code final en production : Comme BKPT interrompt l'exécution et dépend d'un environnement de débogage actif, elle ne doit jamais
rester dans le code final destiné à un déploiement réel. Dans un système sans débogueur, l'exécution d'un BKPT pourrait entraîner un blocage ou un redémarrage non
souhaité.
Dernière mise à jour : Dimanche, le 12 novembre 2017