OSEK:中断

处理中断的功能(中断服务程序:ISR)被细分为两类ISR:

一类ISR: ISR不使用操作系统服务有些系统服务需要启用和禁用中断。ISR结束后,处理会在中断发生的指令处继续进行,即中断对任务管理没有影响。这类ISR的开销最小;

二类ISR:OSEK操作系统提供一个ISR框架,为专用用户例程准备一个运行时环境。在系统生成期间,用户例程被分配给中断。

在中断服务例程中,OSEK操作系统服务的使用受到限制,如下图。

为了确保task按照OSEK调度点执行,可能会对所有类别的ISRs的中断优先级规定限制或在配置时执行检查。

中断优先级的最大数目取决于所使用的控制器以及实现,中断的调度是依赖于硬件的,在OSEK中没有指定。中断由硬件调度,而task由调度器调度。

中断可以中断任务(可抢占任务和不可抢占任务),如果一个task从中断例程被激活,那么该任务在所有活动中断例程结束后被调度。

快速禁用/启用api函数

OSEK提供了禁用所有中断的快速功能,以及禁用所有2类ISR。

典型的用法是保护短的临界段。它不允许从这样的受保护的关键段的中断中返回,即“suspend/disable”必须有一个匹配的“resume/enable”。

Suspend-和Resume-对之间唯一允许的操作系统服务调用是SuspendAllInterrupts/ ResumeOSInterrupts -pairs 或 SuspendAllInterrupts/ ResumeAllInterrupts -pairs。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值