UCOSIII中断和时间管理

本文探讨了UCOSIII操作系统中的中断处理和时间管理机制,详细说明了分钟、秒和毫秒的计数范围,并指出在使用相关函数时可能返回的错误码。
摘要由CSDN通过智能技术生成
在使用UCOS操作系统的时候我们对于中断服务程序的处理就要做一点修改,这个和我们不是用操作系统的时候是不同的。我们在对某些任务做延时的时候会使用到一些延时函数,中断管理和时间管理。

中断管理

UCOSIII中断处理过程
STM32中是支持中断的,中断是一个硬件机制,主要用来向CPU通知一个异步事件发生了,这时CPU就会将当前CPU寄存器值入栈,然后转而执行中断服务程序,在CPU执行中断服务程序的时候有可能更高优先级的任务就绪,那么当退出中断服务程序的时候,CPU就会直接执行这个高优先级的任务。
UCOSIII是支持中断嵌套的,及有优先级可以打断低优先级的中断,在UCOSIII中使用OSIntNestingCtr来记录中断嵌套次数,醉倒支持250级的中断嵌套,每一次进入中断服务函数OSIntNestingCtr就会加1,当退出中断服务函数的时候OSIntNestingCtr就会减1.
我们在编写UCOSIII的中断程序服务的时候需要用到两个函数OSIntEnter()和OSIntExit(),OSIntExit()函数我们前面已经讲过了是中断任务调度器,OSIn他Enter()的函数代码如下:
在UCOSIII环境中编写中断服务函数:
(1) 中断服务程序, XXX 为不同中断源的函数名字。
(2) 首先调用OSIntEnter() 函数来标记进入中断服务,并且计录中断嵌套次数。
(3) 中间这部分就是我们需要自行编写的中断服务程序了,也就是我们平时不使用UCOSIII时的中断服务程序。
(4) 退出中断服务函数的时候调用OSIntExit() ,发起一次中断级任务切换。

直接发布和延迟发布
UCOSIII有两种中断发布消息或者信号的处理:直接发布和延迟发布。我们可以通过宏OS_CFG_ISR_POST_DEFERRED_EN来选择使用直接发布还是延迟发布。宏OS_CF
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值