Cortex-M4硬件断点地址在哪里?

时间:2018-05-05 09:43:57

标签: gdb breakpoints cortex-m openocd

m4调试功能, 我正在使用stm32f407发现openocd,udbntu中的gdb

我正在努力解决断点功能, 我可以使用gdb在openocd中设置断点地址,当pc运行到该地址时,芯片将停止

像主函数一样在0x8008000, 我想必须有一个寄存器来存储这个地址(0x8008000),但我找不到这个寄存器在哪里 我在FPB手册中找到了FP_COMP0~FP_COMP7,但是在gdb中它总是显示为0,我认为它适用于转换为的新地址。

任何人都可以告诉我在哪里学习相关信息,谢谢:)

1 个答案:

答案 0 :(得分:0)

你是对的,这些是FPB(Flash补丁和断点单元)中的FP_COMP0 - FP_COMP7寄存器 - http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0439b/BABGEDIG.html

这确实有效,只是在实践中进行了测试(设置了4个断点):

enter image description here

确保在使用IDE时,它可以缓存先前读取的寄存器值,并且设置断点不会立即显示在您通过IDE看到的内存中。强制刷新(例如通过运行和暂停程序)将使其显示正确的值。