"); //-->
为什么MDK(stm32)算不出栈的大小?感觉通过函数调用网络是可以算出的啊,stvd是可以算出的。曾经遇到栈溢出bug,吓得后来把栈设的挺大。再后来初步估算一下测试一下,也有所放心。但为什么MDK不提供该功能呢?
因为栈的大小只能根据调用关系进行估算,这个值是不确定的,尤其是有递归调用的时候,无法分析得到递归深度。
以后可能会提供这样的功能,但也仅有参考意义。
这种情况,就需要在程序运行时打印栈最大的使用量,然后再给出合理的冗余。
首先默认栈的大小在startup.S里指定,然后根据sp的地址就能推算出运行时栈的占用情况。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。