HardFault错误来源

1.数组没有正确使用,比如数组下标超出所定义的范围

2.局部变量申请超过栈区(stack区)。局部变量是存在stack区中的,在启动的汇编代码中startup_stm32f10x_hd.s中,默认“Stack_Size      EQU     0x00000400“”,也就是有1KB的空间。动态变量(比如使用malloc函数)是放在堆区(heap区),默认“Heap_Size       EQU     0x00000200”也就是512B空间。一旦超出范围都将hadfault或MemManage_Handler伺候。

你可能感兴趣的:(HardFault错误来源)