STM32Cube IDE相同的代码最终运行或出现硬故障。。。俄罗斯轮换

STM32Cube IDE相同的代码最终运行或出现硬故障。。。俄罗斯轮换,stm32,stm32cubeide,Stm32,Stm32cubeide,我遇到了一个问题,我的IDE正在拖拽我 我有一个简单的项目,在这个项目中,我通过ITM(SWO)从mcu回溯,基本上,当我启动STlink调试器时,它连接到device Flash程序,然后IDE忽略所有断点。我手动停止它,发现我从重置处理程序转到了默认处理程序,我给它添加了除hardfault之外的所有处理程序的别名 然后奇怪的事情开始发生了。我检查了我的代码。。。没有犯罪。完全检查内存,一切正常。已检查向量表的内存。。。堆栈指针也是第一个,然后是重置处理程序的地址(拇指模式)。一切都很好。我

我遇到了一个问题,我的IDE正在拖拽我

我有一个简单的项目,在这个项目中,我通过ITM(SWO)从mcu回溯,基本上,当我启动STlink调试器时,它连接到device Flash程序,然后IDE忽略所有断点。我手动停止它,发现我从重置处理程序转到了默认处理程序,我给它添加了除hardfault之外的所有处理程序的别名

然后奇怪的事情开始发生了。我检查了我的代码。。。没有犯罪。完全检查内存,一切正常。已检查向量表的内存。。。堆栈指针也是第一个,然后是重置处理程序的地址(拇指模式)。一切都很好。我再次启动调试器,它运行起来很有魅力

所以我决定再次重新启动调试器,而不更改代码中的任何内容,结果出现了硬故障。。。然后我再次启动它没有硬故障,但我在一个默认处理程序中。它会随机出现故障或运行。我花了2-3个小时检查每一个位和指令,看看会出什么问题。但看起来它会随机选择去哪里——硬故障、正常运行或决定需要默认处理程序

根据这个内存,它至少应该尝试去重置处理程序

0x20010000堆栈指针-地址合法,已检查

0x080001D5指向0x080001D4处的重置处理程序

0x080001C9默认处理程序地址,下一个是hardfault

现在有更多的奇怪的东西。。。我将调试器切换到OPENOCD并

xPSR: 0x61000000 pc: 0x20000084 msp: 0x20010000
它显然很难从RAM启动,不知道我的重置处理程序为什么会这样,也不知道发生了什么,它清楚地告诉我去寻找其他的smth。然后在调试器重新启动几次后,它会正常运行

更新:


我现在100%确信这是IDE的时髦行为。我在独立的openOCD客户机中一步一步地完成了整个程序,它运行起来很有魅力。没有硬故障或其他意外跳转到处理程序。

因此我将返回vs代码和openocd。花一整天的时间调试调试器不是我想要的:)我还看到STM32CubeideV1.4.2中出现了“随机错误”行为。您使用的是什么版本?所以我将回到vs代码和openocd。花一整天的时间调试调试器不是我想要的:)我还看到STM32CubeideV1.4.2中出现了“随机错误”行为。你用的是什么版本?