天天看点

三、中断服务程序

1.通知UCOSIII当前要进行中断

用于通知UCOSIII您将要为中断服务例程,允许UCOSIII跟踪中断嵌套。

void  OSIntEnter (void)
      

2.通知UCOS您已完成ISR服务

用于通知UCOS您已完成ISR服务。当最后一个嵌套ISR已完成,UCOS将调用调度程序以确定新的高优先级任务是否准备运行。

void  OSIntExit (void)
      

3.使用示例

void USART1_IRQHandler(void)                	
{
	uint8_t d=0;

	//说明当前进入中断服务程序,通知UCOS,要停止任务调度,因为中断处理是一个原子过程,不可拆分 bug kernel:interrupt atom
	OSIntEnter(); 

	//添加中断处理代码
	.....   


	//说明当前中断服务程序即将退出,通知UCOS,返回到任务级的代码
	OSIntExit();  

}