Microchip
直播中

童霏

8年用户 183经验值
私信 关注
[问答]

在XC8编译器中运行时可以监视堆栈长度吗

您好,我有以下问题:-在MPLAB X IDE V2.30中,在XC8编译器中运行时可以监视堆栈长度吗?PIC16LF1829 uC的堆栈深度是16,我正在浏览代码的.map文件,已经看到几个函数的深度9,在map文件中编辑:saw主函数,并且它说-调用时需要的硬件堆栈级别:13i在我的代码中编程了3个中断,深度将是问题?如果是,优化技术是什么?谢谢,

回帖(8)

陈晨

2020-5-8 13:19:48
这是XC8的一个优势。堆栈被编译为13 + 3=16。没有必要进行监控。使用更少的查看调用树。修改你的代码,这样就不会太深了。不要忘记C库函数。
举报

李玉梅

2020-5-8 13:26:31
好的,谢谢,还有一个后续问题:-我在下面观察了map fileHardware堆栈级别中使用的东西:调用时所需的1硬件堆栈级别:11所使用的级别与所需的级别之间的区别是什么?
举报

陈晨

2020-5-8 13:41:54
您有main()树和中断树。如果使用函数指针,它们可能是额外的树。我已经有一段时间没有查看过了,它可能已经改变了。这确实是一个XC8问题。您可能希望在其中发布指向它的链接。
举报

丁亚念

2020-5-8 13:52:03
这意味着什么?PIC只有一个中断向量。如果在ISR中依次调用三个函数,则一次只运行一个函数是无关的。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分