我正在使用GCC,GDB和OpenOCD在STM32F4Discovery板上开发一个程序。
我可以很好地编译所有内容,但是当我开始调试时,程序直接进入HardFault处理程序,而不是转到Reset_Handler。
此外,写入闪存时我经常遇到问题。我通常需要两次尝试才能在flash中成功编写程序。
有没有其他人曾经遇到过这种或任何其他皮质M4处理器的问题?
答案 0 :(得分:2)
我已经遇到了与STM32F1相同的问题,我正在使用gdb和OpenOCD,调试器在开始调试时直接跳入硬故障处理程序。在我的例子中,问题是入口点没有在LD链接器脚本中定义。我用ENTRY指令定义它然后它工作。如果没有ENTRY指令,我需要在GDB中手动执行set $pc=Reset_Handler
(将程序计数器设置为重置处理程序)才能进行调试。
另一个问题可能是如何配置OpenOCD来重置微控制器,启动OpenOCD时需要传递正确的命令行参数,看看这里: