STM32莫名奇妙进入的hard fault调试笔记
1.测量了电源和复位没有问题
2.然后开始怀疑软件问题,进入CUBE重新建立工程只有时钟配置没有其他操作还是会异常进入hardfault(偶尔能够正常跑一会,但是再次调试程序出现cannot halt the core,需要硬件拉低复位脚再进入调试才能进入仿真。)
3.把STM32765使用内部时钟或者把使用外部晶振但是降低系统时钟不在出现(因此怀疑晶振周围问题,检查半天改换的都换了无法解决。)
4.检查软件,发现系统内核打开了I-cache和D-cache,关闭掉发现能够程序能够正常跑。现象越来越奇怪。
5.最后检查VCAP发现容值不对。Vcap引脚上波形不稳定成锯齿状。重新换上2.2UF,系统正常。
【STM32莫名奇妙hard fault】最后分析为什么降低系统时钟或者关闭I-cache和D-cache能够也能够正常?
初步判断,系统时钟高了或者打开I-cache和D-cache必然导致内核功耗增大,VCAP电容太小稳不住。
推荐阅读
- stm32|基于STM32和freeRTOS智能门锁设计方案
- 日常分享|共享充电宝方案原理,具体部件组成以及主控MUC参数
- #|ARM裸机开发(汇编LED灯实验(I.MX6UL芯片))
- STM32|STM32的四种IO输出模式
- STM32 远程升级(ISP / IAP)
- stm32|stm32f103can总线过滤器配置
- STM32CubeMX配置SDIO模式(非DMA方式)
- STM32|如何建一个STM32F030标准库工程模板
- STM32 时钟RCC相关配置参考stm32f10x_rcc.h
- STM32 NVIC