请教MSP430堆栈溢出的问题

楼主
请教MSP430堆栈溢出的问题
   我用的MSP430F1611,程序里面做了一个1024点的FFT运算,其中在一个函数里面声明了一个
float FFT_data[1024]数组。情况是这样:在用仿真器仿真时,在调用该函数后,堆栈溢出(这是必然的),但是程序并没有跑飞或者出现什么异常现象,能够正确计算出信号频率,我想请教各位大侠,这是为什么?一般堆栈溢出会有什么后果?谢谢大家哇 我担心有隐患。。。
1楼
可以尝试将IAR EW430工程选项中将默认栈值调到大点试试看看。
1611有10K RAM估计够你这个运算使用的。
2楼
多谢版主。。昨天仿真实验MSP430F1161的堆栈溢出问题,系统复位时SP指向0x38FE(RAM空间最后一个地址,应该是栈顶),而全局变量的被编译器初始化在从RAM区的开始地址(0x1100),他们俩共同占用10K的RAM区,全局变量越大(比如大数组),他的初始化边界就会往堆栈的区域延伸,同样,函数里面的局部变量越大(同样假设也是大数组),他也会往RAM分配给全局变量的区域延伸,所以当满足一定条件时(堆栈溢出),就会有相互覆盖的危险(看谁先赋值,谁就被覆盖),不知道我这样测试 是否正确?但是实验结果却是如此。。
3楼
当然你的数据不能占用RAM中的大部分吧,否则后那些嵌套或多子程序调用时这堆栈就不够用了。不知你测试弄得怎样了,有没有什么消息跟我们分享的呢。

电脑版 Page created in 0.0781 seconds width 2 queries.