STM32启动文件中的Stack_Size带来的问题
:o各位高手,我在用STM32做项目的时候,用MDK,我发现我的程序老是出一些莫名奇妙的问题,比如,编译好正确运行的程序,再加一个函数或将一些变量定义多些,再运行就会出问题,百思不解,最后我发现修改启动文件中的Stack_Size EQU 0x00000200这个,好像这个是设置堆栈大小,将其改大,变量定义多一些也没再出现问题,请问,设置这个难道跟我在C程序中定义多少变量有关系嘛?RE:STM32启动文件中的Stack_Size带来的问题
我也遇到了这个问题,可能是这个问题,局部变量是需要用到堆栈保存的。除非你的函数里没有再调用其它函数了。RE:STM32启动文件中的Stack_Size带来的问题
在c语言中局部变量是存在栈里面的,动态申请的内存是存在堆里面的,单片机内存有限,所以栈的大小很有限,所以你在函数内申请太多的变量导致栈溢出就会出错。。。
页:
[1]