怎么知道堆栈使用了多少? 比如51单片机,怎么查看堆栈使用情况,有没有溢出?
最大堆栈=子程序调用最大级数+中断最大嵌套级数
分别计算中断级别 的最大堆栈,然后累加可确定
比如中断级别Z1的最大 的堆栈为A;
比如中断级别Z2的最大 的堆栈为B;
比如中断级别Z3的最大 的堆栈为C;
那么最多为A+B+C
或者用仿真器,进入调试状态即可看到所有SFR...
用keil也可以:
Keil 已经自动帮你计算了:sp_max = 使用过的最大栈顶记忆。

扩展阅读:什么是单片机堆栈?单片机堆栈原理
我要赚赏金打赏帖 |
|
|---|---|
| STM32C0116DK开发探索记(3)被打赏¥30元 | |
| STM32C0116DK开发探索记(2)被打赏¥24元 | |
| STM32C0116DK开发探索记(1)被打赏¥29元 | |
| 谨防极海G32M3101电机评估板易跌落的陷阱被打赏¥24元 | |
| 【全网首拆】M5STACK ATOM系列开发板拆解 / AtomS3R-CAM摄像头更换方法(提高10倍像素)被打赏¥26元 | |
| 基于MCP23S17的输入输出功能模块控制被打赏¥20元 | |
| 【S32K3XX】SPD 软件包使用Link文件修改被打赏¥22元 | |
| Switch-Case局部变量定义问题被打赏¥23元 | |
| 基于米尔TIAM62L开发板的串口通信及应用被打赏¥20元 | |
| PCF8574功能模块及其使用被打赏¥20元 | |