2

我正在使用 GCC、GDB 和 OpenOCD 在 STM32F4Discovery 板上开发一个程序。

我可以很好地编译所有内容,但是当我开始调试时,程序直接转到 HardFault Handler,而不是转到 Reset_Handler。

此外,我在写入闪存时经常遇到问题。我通常需要两次尝试才能在闪存中成功编写我的程序。

有没有其他人在使用这个或任何其他 cortex M4 处理器时遇到过这种问题?

4

1 回答 1

2

我已经在 STM32F1 上遇到了同样的问题,我使用的是 gdb 和 OpenOCD,调试器在开始调试时直接跳转到硬故障处理程序中。就我而言,问题在于 LD 链接描述文件中未定义入口点。我用 ENTRY 指令定义了它,然后它就起作用了。如果没有那个 ENTRY 指令,我需要set $pc=Reset_Handler在 GDB 中手动执行(将程序计数器设置为重置处理程序)才能进行调试。

另一个问题可能是如何配置 OpenOCD 来重置微控制器,您需要在启动 OpenOCD 时传递正确的命令行参数,看看这里:

OpenOCD 重置配置

于 2014-03-14T20:38:39.550 回答