ucosII进出中断不用OSIntEnter()和OSIntEixt()也能跑,为什么?
我用的是从ucosII官方下载的LPC2103移植范例,开发环境是IAR,其中时钟节拍使用timer0产生,发现其中系统时钟节拍服务函数中没有成对的使用OSIntEnter()和OSIntEixt(),这和众多ucosII书籍所说的不一样,但是系统能正常创建任务,完全可以照常运行。我仿照timer0初始化timer1,并且timer1的中断服务函数中也没有使用OSIntEnter()和OSIntEixt()这两个函数,结果系统同样可以正常跑起来。请看程序的相关代码:
void Tmr_TickISR_Handler (void)
{
T0IR = 0xFF; /* Clear timer #0 interrupt */
OSTimeTick(); /* Call uC/OS-II's OSTimeTick() */
}
在上面的OsTimeTick()函数中也没找到OSIntEnter()和OSIntEixt()。
难道在中断服务程序中OSIntEnter()和OSIntEixt()不是必须的吗?还是模板在其他地方做了相关处理?
|