在测试代码时,看看栈空间是否足够。我发现在项目的.ld文件中,栈大小是这样定义的: _Min_Heap_Size = 0x200;
_Min_Stack_Size = 0x400; 我测试这个设置,当我超出定义的内存大小时,stm32cubeide是否会报错。 我在一个函数内部声明了一个局部变量,并检查了栈指针。当我在main函数中调用这个函数时,栈指针似乎指向了其他地址,比如0x1FFFFFF6,这是代码段的内存区域,而不是SRAM。同样的情况也发生在中断服务程序(ISR)中声明局部变量时。 问题是,为什么当我超出定义的栈大小时,stm32cubeide没有提示错误?
|