stm32f407栈溢出导致跑程序异常

栈溢出,固件下载后,会运行异常。如下代码:

stm32f407栈溢出导致跑程序异常_第1张图片

代码运行异常,进入debug,发现有hard fault的错:

stm32f407栈溢出导致跑程序异常_第2张图片

因为栈已经溢出,一般MCU的栈地址都是向下增长的,stm32也是一样,stm32在启动文件中定义了栈的大小是1Kb:

stm32f407栈溢出导致跑程序异常_第3张图片

局部变量明显超了,要么修改栈的大小(可改到8Kb):

stm32f407栈溢出导致跑程序异常_第4张图片

要么把局部变量、数组定义成全局的。

你可能感兴趣的:(stm32,栈溢出)