新闻  |   论坛  |   博客  |   在线研讨会
​为什么MDK(stm32)算不出栈的大小?
电子禅石 | 2020-04-23 16:56:54    阅读:8594   发布文章

为什么MDK(stm32)算不出栈的大小?感觉通过函数调用网络是可以算出的啊,stvd是可以算出的。曾经遇到栈溢出bug,吓得后来把栈设的挺大。再后来初步估算一下测试一下,也有所放心。但为什么MDK不提供该功能呢?


因为栈的大小只能根据调用关系进行估算,这个值是不确定的,尤其是有递归调用的时候,无法分析得到递归深度。

以后可能会提供这样的功能,但也仅有参考意义。

这种情况,就需要在程序运行时打印栈最大的使用量,然后再给出合理的冗余。

首先默认栈的大小在startup.S里指定,然后根据sp的地址就能推算出运行时栈的占用情况。



*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
属于自己的技术积累分享,成为嵌入式系统研发高手。
推荐文章
最近访客