[发明专利]一种硬件定时器的管理方法有效
申请号: | 201510343777.2 | 申请日: | 2015-06-20 |
公开(公告)号: | CN104866325B | 公开(公告)日: | 2017-12-01 |
发明(设计)人: | 何宗彬 | 申请(专利权)人: | 成都彬鸿科技有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F1/32 |
代理公司: | 北京科亿知识产权代理事务所(普通合伙)11350 | 代理人: | 汤东凤 |
地址: | 610094 四川省成都市高新*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 硬件 定时器 管理 方法 | ||
技术领域
本发明涉及嵌入式系统领域,提供了一种硬件定时器的管理方法,该方法使用单个硬件定时器替代了原有多个硬件定时器的方案,它减少了配置代码,消除了配置的定时事件的上限,提高了软件设计了灵活度,并且降低了处理器的功耗。
背景技术
通常在嵌入式处理器上,当需要多个硬件定时事件时,均采用启动多个硬件定时器的方法,如图1所示。
上述定时方法存在如下问题:
硬件定时器的数量总是有上限的,当在同一时间段内需要的定时事件大于此上限时,将不能达到设计要求,从而会引起设计方案的变更;
启动多个硬件定时器增大了配置代码的复杂度,同时也增加了处理器的功耗。
针对上述问题,本发明提出了一种使用单个硬件定时器的替代方案,它减少了配置代码,消除了配置事件的上限,提高了软件设计了灵活度,并且降低了处理器的功耗。
发明内容
为解决现有技术中存在的上述问题,本发明实施例提供了一种硬件定时器的管理方法,其中,硬件定时器的数量为一个,该方法包括:
硬件定时器被配置为单次定时,并且在指定的定时值产生中断,从而触发相应的定时事件;
使用链表来维护定时项的队列;
硬件定时器的定时比较值初始时被设置为链表中的最小值,当有新的定时项插入链表时,按照定时值从小到大的顺序对定时项链表重新排序;
在对定时值链表进行重新排序后,需要为每个定时项生成新的定时值;
在定时器的中断处理程序中更新硬件定时器的定时值;
使用汇编函数编写的代码来补偿定时器值设定的代码的运行时间。
本发明实施例,采用一种基于软件链表动态维护定时项的方法管理硬件定时器,该方法替代了原有多个硬件定时器的方案,它减少了配置代码,消除了配置事件的上限,提高了软件设计了灵活度,并且降低了处理器的功耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有的硬件定时器管理方法示意图;
图2为本发明的一种硬件定时器的管理方法示意图;
图3为本发明的一种硬件定时器的管理方法的实施例示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种硬件定时器的管理方法,其中,硬件定时器的数量为一个,所述包括:
硬件定时器被配置为单次定时,并且在指定的定时值产生中断,从而触发相应的定时事件;
使用链表来维护定时项的队列;
硬件定时器的定时比较值初始时被设置为链表中的最小值,当有新的定时项插入链表时,按照定时值从小到大的顺序对定时项链表重新排序;
在对定时项链表进行重新排序后,需要为每个定时项生成新的定时值;
在定时器的中断处理程序中更新硬件定时器的定时值;
使用汇编函数编写的代码来补偿定时器设定定时值的代码运行时间。
在本实施例中,所述定时器的中断处理程序中,如果发生此次中断事件的不是链表中的最后一个定时值,则需要使用下一个定时值与当前定时值的差值,减去一个固定的补偿数,利用此结果来更新硬件定时器。
在本实施例中,所述补偿数是利用汇编函数编写的重设定时器的代码运行时间,它与硬件定时器的计时基本单位相同。
在本实施例中,所述定时器的中断处理程序发生时,如果此次中断事件的定时项不是链表中的最后一个,则需要使用下一个定时项与当前定时项的差值,减去一个固定的补偿数,利用此结果来更新硬件定时器的定时值。
在本实施例中,所述补偿数是利用汇编函数编写的重设定时器的代码运行时间,它与硬件定时器的计时基本单位相同。
示例性的,如图3所示,硬件定时器的定时值将首先被设置为t1,而后在中断事件处理程序中将定时器的值设置为t2,类推的设置为t3、t4。t0为重设定时器值的汇编代码执行时间。
以上所述仅为本发明的较佳实施例而已,并不用于限定本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都彬鸿科技有限公司,未经成都彬鸿科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510343777.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:无声车载软件更新
- 下一篇:一种基于ASP点NET的伪静态实现方法