摘要:
最近遇到一个问题,当我在UCOS里调用系统延时"OSTimeDlyHMSM(0, 0, 0, 10)",程序进入硬件错误中断“HardFault_Handler”中。我开始以为是主堆栈空间嵌套过多导致溢出,于是设置增大了主堆栈,但依然没有解决问题,和一个朋友联系后得知,他写代码很少在ISR中调用系统延时,我开始有了想法,如果说ISR里不允许,那为什么操作系统端没做限制呢?查看相关资料得知,是我对操作系统的不了解。uCOS为了防止主堆栈的用空导致程序跑飞,定义了“OSIntNesting”全局变量。而通过这个全局变量,操作系统能很容易的监控中断的嵌套层次。而想要利用这个样的机 阅读全文