uCOS的中断服务中,必须用OSIntEnter()和OSIntExit()括起来。如下:
//USB唤醒中断服务函数void USBWakeUp_IRQHandler(void) { OSIntEnter(); EXTI_ClearITPendingBit(EXTI_Line18);//清除USB唤醒中断挂起位 }
而FreeRTOS中就没有这种要求。是不是因为FreeRTOS有关任务的函数大多分普通和中断两种版本有关?比如:
xQueueSendFromISR和xQueueSend