怎么知道堆栈使用了多少? 比如51单片机,怎么查看堆栈使用情况,有没有溢出?
最大堆栈=子程序调用最大级数+中断最大嵌套级数
分别计算中断级别 的最大堆栈,然后累加可确定
比如中断级别Z1的最大 的堆栈为A;
比如中断级别Z2的最大 的堆栈为B;
比如中断级别Z3的最大 的堆栈为C;
那么最多为A+B+C
或者用仿真器,进入调试状态即可看到所有SFR...
用keil也可以:
Keil 已经自动帮你计算了:sp_max = 使用过的最大栈顶记忆。
扩展阅读:什么是单片机堆栈?单片机堆栈原理
有奖活动 | |
---|---|
【有奖活动——B站互动赢积分】活动开启啦! | |
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |