STM32莫名奇妙进入的hard fault调试笔记
1.测量了电源和复位没有问题
2.然后开始怀疑软件问题,进入CUBE重新建立工程只有时钟配置没有其他操作还是会异常进入hardfault(偶尔能够正常跑一会,但是再次调试程序出现cannot halt the core,需要硬件拉低复位脚再进入调试才能进入仿真。)
3.把STM32765使用内部时钟或者把使用外部晶振但是降低系统时钟不在出现(因此怀疑晶振周围问题,检查半天改换的都换了无法解决。)
4.检查软件,发现系统内核打开了I-cache和D-cache,关闭掉发现能够程序能够正常跑。现象越来越奇怪。
5.最后检查VCAP发现容值不对。Vcap引脚上波形不稳定成锯齿状。重新换上2.2UF,系统正常。
最后分析为什么降低系统时钟或者关闭I-cache和D-cache能够也能够正常?
初步判断,系统时钟高了或者打开I-cache和D-cache必然导致内核功耗增大,VCAP电容太小稳不住。