Par le passé, je débuggais sans problème les fichiers exécutables chargés dans la mémoire SRAM interne de mon Cortex M3 (STM32F2). J'ai récemment chargé mon exécutable à Flash (à cause de problèmes de taille).Les points d'arrêt ne fonctionnaient pas lors du démarrage à partir de Flash
Depuis lors, le débogage avec GDB n'a pas fonctionné. Si je comprends bien, lorsque l'exécutable est en Flash, seul le point d'arrêt matériel peut être utilisé (par opposition aux points d'arrêt logiciels), et j'ai six points d'arrêt matériels. Cependant, lors de la configuration matérielle qu'un point d'arrêt GDB donne un message d'erreur:
(gdb) break main
Breakpoint 1 at 0x800019a: file src/main.c, line 88.
(gdb) c
Continuing.
Note: automatically using hardware breakpoints for read-only addresses.
(gdb) Warning:
Cannot insert hardware breakpoint 1.
Could not insert hardware breakpoints:
You may have requested too many hardware breakpoints/watchpoints.
Ce qui pourrait aller mal? Est-ce que mes points d'arrêt matériels sont pris en arrière-plan?
Remarque: J'ai utilisé OpenOCD pour charger l'exécutable via JTAG.
Avez-vous essayé de créer vos points d'arrêt avec 'hbreak'? – ams
@ams: Oui, j'ai essayé. Ne fonctionne pas – Randomblue
Que disent les «points d'arrêt de maintenance info»? – ams