每次进入中断后,系统都会出现无法进行任务切换和进入内核时钟中断的问题,这似乎是总中断被屏蔽了的现象。通过对程序的跟踪发现是内核函数OSIntExit函数导致的。 OSIntExit函数代码如下:
void OSIntExit (void)
{
#if OS_CRITICAL_METHOD == 3;
OS_CPU_SR cpu_sr;
#endif
if (OSRunning == TRUE) {
OS_ENTER_CRITICAL();
if (OSIntNesting > 0){
OSIntNesting--;
}
if ((OSIntNesting == 0) &&(OSLockNesting == 0)) {
OSIntEx