
如果RAM实在不够用了,果断更换单片机型号才是上策。或者对程序进行调整降低效率换取空间,少搞几个变量。
以msp430f135为例,它是512bytes的ram,起始地址为200h,终止地址为3ffh,所以它的变量是从200h开始,向3ffh方向存放,而堆栈是从3ffh开始,向200h方向压栈。当变量存储空间和堆栈最大占用空间在中间相遇时,就发生了堆栈溢出。
1
当然是烧程序到目标板里呀
原因是变量太多,或者调用的次数太多,比如有个10000次的循环嵌套调用。如果变量不能减少,可以手动更改堆栈的大小,在工程名上点右键,Option->General Options的Stack/Heap标签页中可以自己更改。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)