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

扩展阅读:什么是单片机堆栈?单片机堆栈原理
我要赚赏金打赏帖 |
|
|---|---|
| 设备功耗web监控界面(ESP32C5)被打赏¥28元 | |
| OrangePiZero2W系统被打赏¥33元 | |
| Linux环境下以模拟方式快速实现出入管理功能测试被打赏¥24元 | |
| 树莓派3+Klipper,老3D打印机满血升级被打赏¥33元 | |
| OK1126B-S开发板下串口屏及其应用被打赏¥21元 | |
| 低功耗超声波液位测距仪(ESP32S3)被打赏¥27元 | |
| 在K230DBOX上实现多时段语音提示功能被打赏¥14元 | |
| 使K230DBOX实现相机持续拍照功能被打赏¥12元 | |
| 基于K230DBOX的文本管理器设计被打赏¥14元 | |
| 基于K230DBOX的彩色画板功能实现被打赏¥15元 | |