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