stm32,程序下进去后,有的时候直接进hard_fault(硬件故障中断),但有的时候是正常的。 15

调试模式时,这种情况会出现;将boot0设为0直接从flash运行时,有的时候能够自己启动,但很多情况下启动不了,,,有经验的前辈不知能否帮忙解决一下这个问题,很棘手。... 调试模式时,这种情况会出现;将boot0设为0直接从flash运行时,有的时候能够自己启动,但很多情况下启动不了,,,有经验的前辈不知能否帮忙解决一下这个问题,很棘手。 展开
 我来答
wm0478
2015-03-27 · TA获得超过430个赞
知道小有建树答主
回答量:354
采纳率:97%
帮助的人:203万
展开全部
硬件相关的可以检查一下你的晶振值和你RCC设置,看看 PLL的工作频率是不是超范围了,重新选择一下倍频分频设置!还有FLASH_Leacny改成3试试
软件的话就是你的启动代码(ASM)能有问题
追问
晶振值和RCC设置应该都没有问题,因为我们当时用示波器抓过1ms的波形,,,软件的话,我想问一下,能不能通过IAR的simulator仿真模拟下载,来排除软件编程的错误?启动代码和芯片类型是配套的,应该没问题。
追答
你用仿真STEP over ,一步一步走看看,hard_fault中断里设个断点,中断了之后看堆栈,可以看到引发中断的代码位置
有可能是你的指针没有初始化或者指针赋值有问题,这样有可能会引起hard_fault
另外还有就是编译器了 ,你换个版本的开发工具或者关掉代码优化然后重编译一下试试
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式