是在多任务系统(目前测试freertos)中使用,必须要用到全局中断的关闭、打开,以保护对全局变量的操作,freertos中有提供这2个函数:portENTER_CRITICAL()、 portEXIT_CRITICAL()来实现,但没有查询这个中断状态的接口,如果这样,象下面的逻辑,很难实现了:
......
portENTER_CRITICAL(); //关全局中断
func1(); //该函数中也调用了一次全局中断关、全局中断开操作,所以出来后,全局中断是打开的状态
....... //这之间的代码就有可能被中断了,也就是失去了关中断的初衷
portEXIT_CRITICAL(); //开全局中断
|