uC/OS-ll 第三讲_uC/OS-ll的中断及时钟

本文深入介绍了uC/OS-II操作系统中的中断处理,包括中断过程、中断级任务切换函数以及中断级任务调度。同时,讲解了时钟管理,如何通过硬件定时器产生时钟节拍,并在每个节拍执行OSTimeTick()来更新任务延时状态。此外,还讨论了任务的延时、取消延时和时间管理的相关函数。
摘要由CSDN通过智能技术生成

第三章

3.1.1  uC/OS-ll的中断过程

定义:系统接收到中断请求后,如果这时CPU处于中断允许状态,系统就会终止正在运行的当前任务,而按照中断向量的指向转而去运行中断服务子程序;当中断服务子程序的运行结束后,系统将会根据情况返回被终止的任务继续运行,或者转向运行另一个具有更高优先级别的就绪任务。

 

注:对于可剥夺型内核来说,中断服务子程序运行结束之后,系统将会根据情况进行一次任务调度去运行优先级别最高的就绪任务,而不一定要持续运行被中断的任务。

两个重要函数:OSIntEnter()和OSIntExit()

OSIntEnter():把全局变量OSIntNexting加1,记录中断嵌套的层数。常常发生在中断服务程序保护了被中断任务的断点数据之后,运行用户中断服务代码之前,称为进入中断服务函数

OSIntExit():中断嵌套层数计数器为0、调度器未被锁定且从任务就绪表中查找到的最高级就绪任务又不是被中断的任务时进行任务切换,否则返回被中断的服务子程序。

 

 

通知μC/OS-Ⅱ,中断服务子程序开始了.

void OSIntEnter (void)

{

    OS_ENTER_CRITICAL();

    OSIntNesting++;

    OS_EXIT_CRITICAL();

}

 

通知μC/OS-Ⅱ,脱离了中断

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值