peng-zhihui / Dummy-Robot

我的超迷你机械臂机器人项目。
11.89k stars 2.63k forks source link

STM32F4 openocd开发,运行正常,但是debug过不去systemclock-config()函数 #161

Open sytnocui opened 1 year ago

sytnocui commented 1 year ago

稚晖君你好,我最近使用stm32f405rgt6开发项目,使用stlink,clion,openocd调试。发现debug模式无法通过systemclock-config函数,会卡在锁相环初始化这里。只有参考这个网址修改了系统生成的systemclock-config函数才可以正常调试。但是修改系统生成的函数,每次cubemx更新都会覆盖掉,非常不方便,不知道你是怎么解决这个问题的? 我的同学使用stm32cubeide调试,就没有这个问题。 我注意到你在瀚文键盘里的调试器已经改用了cmsis-dap,有没有这方面的考虑?

sytnocui commented 1 year ago

LJ)WR}`F8_I)W3O$%(BXIL1 如图所示,会跳进这里,然后卡死

peng-zhihui commented 1 year ago

main函数最开始加一句RCC_DeInit()就行了,跟DAP没关系,时钟初始化的问题。

sytnocui commented 1 year ago

main函数最开始加一句RCC_DeInit()就行了,跟DAP没关系,时钟初始化的问题。

果然可以了,谢谢大佬orz。 另外我也尝试了在stm32cubeide里进行调试,这个调试方式是stlink gdb server,就是什么都不用加就是好使的。我尝试配了一个 clion+gdb+jlink 的debug环境,也是什么都不加就好使。 总结一下就是跟GDB沾边的都是能用的,但用openocd就得加“RCC_DeInit()”这句话。可否再麻烦问一下出现这种情况的详细原因?是和openocd有关系吗?

tip:如果有路人看到了可以参考这篇文章:CLion配置STM32开发环境(JLink GDB Server)

acctZCW commented 1 year ago

终于找到这个问题的答案了,我也被这个困扰了一下午,下载完全正常,但就是调试的时候过不去,一开始还以为是板载的DAP有问题。

不过小白想问一句:为什么用OpenOCD的时候就必须用DeInit呢?

cmsjscj commented 1 month ago

感谢万分!!另外我将诸多可能出现的意外情况进行汇总,路人有缘可以去参考下拙作关于如何使用CLion对于STM32进行调试debug工作的讨论

CoderSuHang commented 1 month ago

您好,我是苏航,感谢您的来信!我会尽快对来信进行查看并尽快给您进行回复,祝您身体健康,工作顺利,谢谢!