[发明专利]基于OSEK嵌入式实时操作系统的非周期定时器驻留机制有效
申请号: | 201910661028.2 | 申请日: | 2019-07-22 |
公开(公告)号: | CN110457120B | 公开(公告)日: | 2021-10-29 |
发明(设计)人: | 吕攀;章昌仲;杨国青;李红;吴朝晖 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 杭州天勤知识产权代理有限公司 33224 | 代理人: | 王琛 |
地址: | 310013 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于OSEK嵌入式实时操作系统的非周期定时器驻留机制,该机制将硬件时钟与系统计数器相关联,并将多个周期或非周期定时器关联到计数器,组成定时器链表,在每个定时器上可选地绑定任务或回调函数。本发明中定时器到期时会首先调用回调函数,通过回调函数高效地执行时间关键程序而不需要上下文切换;回调函数中若重新启用已触发的非周期定时器,可以驻留该非周期定时器,而在使用后立即删除。本发明主要优点在于采用的非周期定时器驻留机制结合了回调函数和非周期定时器,在使用回调函数机制执行高效操作的同时仍能使用非周期定时器实现周期不固定的系统服务,既提高了程序运行效率,又简化了编程工作。 | ||
搜索关键词: | 基于 osek 嵌入式 实时 操作系统 周期 定时器 驻留 机制 | ||
【主权项】:
1.一种基于OSEK嵌入式实时操作系统的非周期定时器驻留机制,其特征在于:/n(1)将操作系统最底层的计数器与硬件的时钟相关联,并将一个或多个定时器绑定到操作系统的计数器上;/n(2)将操作系统预定义的一个或多个任务与定时器进行一对一或多对一绑定,并为每一定时器定义一个回调函数;/n(3)每个计数器计数周期到达时,系统查询计数器对应的定时器链表是否为空:如果为空,则等待下一个计数周期;如果不为空,将计数器的RemainTicks减1后判断RemainTicks是否为0:若RemainTicks不为0,说明此时没有待触发的定时器,系统执行空闲任务,等待下一个计数周期到来;若RemainTicks为0,则此时至少有一个待触发的定时器,且系统进行以下操作:/n3.1第一次遍历,触发位于定时器链表表头的定时器,激活与该定时器绑定的任务并调用回调函数;完成表头定时器处理后,查询下一个定时器是否到期:若到期,则依据上述操作触发该定时器并继续查询后面的定时器是否到期;若未到期,则退出此次遍历,保存首个未到期的定时器AlarmStart;/n3.2第二次遍历,以定时器AlarmStart为基准,遍历定时器链表中被触发过的定时器,根据修改后的delta值对这些定时器重新排序,通过与当前系统时间比较,找到新的首个未到期定时器AlarmRealStart并保存;/n3.3第三次遍历,删除排在定时器AlarmRealStart之前的所有非周期定时器,驻留定时器AlarmRealStart及其之后的所有定时器,更新计数器的整型变量值为新的定时器链表表头定时器AlarmRealStart的delta值与当期系统时间的差值。/n
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910661028.2/,转载请声明来源钻瓜专利网。
- 上一篇:异步处理回调方法及装置
- 下一篇:一种支持用户态任务动态调度的探针方法和装置