ucos源码阅读2——中断和时钟

本文深入探讨了UCOS嵌入式内核中中断和时钟的工作原理。在中断部分,分析了中断嵌套、任务调度与中断的关系以及中断处理流程。时钟中断服务通过OSTickISR调用OSTimeTick,实现时间管理。在时间管理部分,详细介绍了OSTimeDly、OSTimeHMSM等函数的用途和实现细节,以及如何影响任务状态。总结指出,中断时若嵌套变量为零会触发任务调度,时钟中断可能导致任务切换,而挂起和取消延时操作同样涉及调度。
摘要由CSDN通过智能技术生成

中断

硬件怎么实现系统所要实现的嵌套功能
中断这儿有OSIntExitY,tcb成员变量,为什么任务调度里要定义局部变量?
中断嵌套和任务调度锁嵌套为零时,和任务调度一样,发生任务调度,这儿是中断级任务调度?两个汇编函数区别呢?
整个中断流程:
发生中断,转入中断矢量入口单元,然后有一条长跳转指令,中断服务子程序,先关中断,保存CPU寄存器的值给当前TCB的任务栈(嵌套的中断呢?),调用OSIntEnter()函数或直接给OSIntNesting加一,开中断,执行中断程序或进行中断嵌套,然后调用OSIntExit()函数,有可能切换到新任务,被中断的任务和被中断的中断,被中断的中断保存在哪儿?中断嵌套的汇编方法还不懂。后两者还要关中断恢复寄存器开中断,执行中断返回指令。
已经有三个关于任务切换的汇编了,区别是啥呢。。。
在这里插入图片描述
在这里插入图片描述

时钟(定时器中断)

时钟节拍中断服务子程序OSTickISR和上述中断过程一样,真正执行中断代码是调用OSTimeTick

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值