freny 发表于 2009-3-26 22:22:12

STM32启动文件中的Stack_Size带来的问题

:o各位高手,我在用STM32做项目的时候,用MDK,我发现我的程序老是出一些莫名奇妙的问题,比如,编译好正确运行的程序,再加一个函数或将一些变量定义多些,再运行就会出问题,百思不解,最后我发现修改启动文件中的Stack_Size      EQU     0x00000200这个,好像这个是设置堆栈大小,将其改大,变量定义多一些也没再出现问题,请问,设置这个难道跟我在C程序中定义多少变量有关系嘛?

zykzyk-93033 发表于 2011-7-19 21:57:56

RE:STM32启动文件中的Stack_Size带来的问题

我也遇到了这个问题,可能是这个问题,局部变量是需要用到堆栈保存的。除非你的函数里没有再调用其它函数了。

hui235 发表于 2011-7-19 23:04:57

RE:STM32启动文件中的Stack_Size带来的问题

在c语言中局部变量是存在栈里面的,动态申请的内存是存在堆里面的,
单片机内存有限,所以栈的大小很有限,所以你在函数内申请太多的变量导致栈溢出就会出错。。。
页: [1]
查看完整版本: STM32启动文件中的Stack_Size带来的问题