如何在Keil ARM MDK中设置特定内存写入断点排查HardFault异常?
在Keil ARM MDK中设置特定内存写入断点的操作步骤
- 打开Keil工程,点击工具栏的
Start/Stop Debug Session按钮(或按Ctrl+F5)进入调试模式。 - 打开断点配置窗口:
- 方式一:在调试界面菜单栏选择
Debug->Breakpoints...(快捷键Ctrl+Shift+B) - 方式二:直接点击调试工具栏里的
Breakpoints图标(带红点的方块按钮)
- 方式一:在调试界面菜单栏选择
- 添加数据断点:
- 点击窗口右侧的
Add按钮,选择Data Breakpoint - 在弹出的配置框中填写以下信息:
Address:输入目标内存地址0x20004321Type:选择Write(仅监控写入操作)Size:选择Word(对应32位数据0x12345678)- 勾选
Condition选项,输入条件:*(unsigned int *)0x20004321 == 0x12345678
- 点击窗口右侧的
- 确认配置并启用:点击
OK保存设置,确保断点列表中该数据断点的复选框处于勾选状态(启用状态)。 - 运行程序:点击调试工具栏的
Run按钮(或按F5),当0x12345678被写入0x20004321地址时,程序会自动暂停在触发写入的指令处。
注意事项
- 确认
0x20004321确实属于栈区地址范围,避免无效监控。 - Cortex-M系列内核的硬件数据断点数量有限(通常支持2-4个),注意不要超出硬件限制。
- 若断点未触发,检查数据宽度是否匹配(误选
Halfword或Byte会导致条件不匹配)。
内容的提问来源于stack exchange,提问作者andy
相关产品推荐
相关产品推荐

