条件:
- STM32F407
- 1Mbytes SRAM
- keil5
- HAL库
程序在main初始化完成后来到GUI_Clear(),在执行GUI_Clear()时进入HardFault_Handler()了。
在经过百般调试,以为是SRAM的时序太快了,怎么调都会进入HardFault_Handler(),调了好久,发现只要屏蔽External_SRAM_BootTest()函数后,就正常了,External_SRAM_BootTest()里向SRAM写入1024*1024个0x12,再读出1024*1024个0x12,只要有一个不是0x12即返回打印测试错误。
因为看不到GUI_Clear()的源码,不知道内部的执行过程,所以不知道问题出在哪里,至此,只能屏蔽掉External_SRAM_BootTest()了。
有高手能帮回答个为什么么?