一种嵌入式系统定时器实现方法技术方案

技术编号:8562836 阅读:123 留言:0更新日期:2013-04-11 04:27
本发明专利技术公开了一种嵌入式系统定时器实现方法,在系统中设置一个主定时器及一个辅定时器;将主定时器作为系统的基准定时器;主定时器超时时,修改剩余超时时间长度不小于主定时器最小时间片的软件定时器剩余超时时间长度,如果有软件定时器剩余超时时间长度小于主定时器最小时间片,启动辅定时器为该软件定时器提供硬件定时;辅定时器超时时,修改剩余超时时间长度小于主定时器最小时间片的软件定时器剩余超时时间长度;如果还有其他软件定时器剩余超时时间长度小于主定时器最小时间片,修改辅定时器定时长度,否则关闭辅定时器。本发明专利技术的技术方案能有效的减少系统的无效中断次数,提高系统效率。

【技术实现步骤摘要】

本专利技术设计到嵌入式系统定时器技术,特别涉及到。
技术介绍
在嵌入式系统中通常都会采用实时操作系统,实时操作系统依赖于系统时钟进行任务切换的控制。系统时钟是特定的周期性中断,系统时钟的周期取决于不同的实时操作系统需求,通常嵌入式系统的实时操作系统的系统时钟周期一般为10 200ms。系统时钟使得内核可以将任务延时若干个系统时钟周期,以及当任务等待事件发生时,提供等待超时的依据。系统时钟的周期越小,系统调度的时间精度越高,但由于每个系统时钟周期都会产生中断,因而带来的系统额外开销就越大。系统时钟的基准时钟触发是由嵌入式系统的硬件定时器提供的,硬件定时器同时还为嵌入式系统的软件定时器提供时钟源。操作系统可以创建多个软件定时器,软件定时器的最小时间片取决于硬件定时器的最小时间片(软件定时器的超时时间长度为硬件定时器最小时间片的整数倍)。操作系统可以在需要的时候执行软件定时器的创建、打开、关闭、删除操作,为了方便实现,操作系统管理软件定时器的一种方法是采用软件定时器链表的形式来管理软件定时器。软件定时器链表中各软件定时器根据的剩余超时时间长度顺序排列,剩余超时时间小的软件定时器排在链表前面,剩余超时时间大的软件定时器排在链表后面。硬件定时器每次超时时,都会对软件定时器链表中的各软件定时器剩余超时时间长度进行修改(将软件定时器剩余超时时间长度减去本次硬件定时器超时时间长度作为该软件定时器的剩余超时时间长度);触发满足超时条件(剩余超时时间长度<0)的软件定时器的定时中断(将满足超时条件的软件定时器从软件定时器链表中删除,触发该软件定时器高级中断)。嵌入式系统中不同的应用、事件可能存在不同的定时精度要求;从上述描述可以看出,嵌入式系统的定时精度取决于硬件定时器的精度;因此,硬件定时器的精度必须能够满足嵌入式系统中最高的定时精度。例如,对于长期演进/时分同步码分多址(简称,LTE/TD)双模基带系统,LTE协议事件需要Ims级别的定时精度,而TD协议事件仅需要IOms级别的定时精度。对于存在多种定时精度要求的嵌入式系统。现有技术的定时器实现方法通常采用一个能够满足系统最高定时精度要求的硬件定时器作为系统的基准定时器,以提供操作系统所需的系统时钟和软件定时器的时钟源。这种实现方法能够满足嵌入式系统的定时器需求,但存在下述的问题由于作为基准定时器的硬件定时器需要一直处于启动的状态,基准定时器在其每个最小时间片都会产生硬件定时中断,在没有高定时精度要求的软件定时器激活的情况下,基准定时器会产生大量的无效中断(即,当前的硬件定时中断超时处理中,无软件定时器超时时刻到达,系统判决后,直接退出不触发任何软件定时器中断。),例如,对于LTE/TD双模基带系统,如果使用最小时间片为Ims的硬件定时器作为基准定时器,与使用IOms的硬件定时器作为基准定时器相比,单位时间内其基准定时器的硬件定时中断次数增加了 10倍,而在实际使用中发现,其中90%的硬件定时中断为无效中断。这些无效中断浪费了大量的系统资源,降低了系统效率。
技术实现思路
有鉴于此,本专利技术提出了,以减少无效中断数量,提闻系统效率。本专利技术的技术方案包括设置一个主定时器及一个辅定时器;将主定时器作为系统的基准定时器;主定时器超时时,将主软件定时器剩余超时时间长度减去主定时器最小时间片长度;触发满足超时条件的软件定时器定时中断;如果有软件定时器剩余超时时间长度小于主定时器最小时间片长度,设置辅定时器定时长度为剩余超时时间长度最小的软件定时器的剩余超时时间长度,启动辅定时器;辅定时器超时时,将辅软件定时器剩余超时时间长度减去辅定时器定时长度;触发满足超时条件的软件定时器定时中断;如果有软件定时器剩余超时时间长度小于主定时器最小时间片长度,设置辅定时器定时长度为剩余超时时间长度最小的软件定时器的剩余超时时间长度;否则,关闭辅定时器;其中,所述主定时器为定时精度不低于实时操作系统系统时钟精度要求的硬件定时器;所述辅定时器为定时精度不低于嵌入式系统最高定时精度要求的硬件定时器;所述主 软件定时器指剩余超时时间长度不小于主定时器最小时间片长度Tl的软件定时器;所述辅软件定时器指剩余超时时间长度小于Tl的软件定时器。优选的,所述各软件定时器组成软件定时器链表,软件定时器链表中各软件定时器根据的剩余超时时间长度从小到大顺序排列。所述设置辅定时器定时长度为剩余超时时间长度最小的软件定时器的剩余超时时间长度进一步包括将软件定时器链表中第一个软件定时器的剩余超时时间长度设置为辅定时器定时长度。所述方法进一步包括增加新软件定时器过程实时操作系统建立新软件定时器,并将新软件定时器插入所述软件定时器链表。所述将新软件定时器插入所述软件定时器链表进一步包括对于剩余超时时间长度X < tl的新软件定时器如果所述软件定时器链表的第一个软件定时器剩余超时时间长度y ^ Tl,将所述新软件定时器插入所述第一个软件定时器之前,设置辅定时器定时长度为X,开启辅定时器;如果y < Tl,且X > th,修正所述新软件定时器剩余超时时间长度=x+y-th,并根据修正后的新软件定时器剩余超时时间长度将该新软件定时器插入软件定时器列表相应位置;如果y < Tl,且X彡t h,将软件定时器列表中各剩余超时时间长度小于Tl的软件定时剩余超时时间长度分别设置为该软件定时器剩余超时时间长度-y+th ;将所述新软件定时器插入所述软件定时器链表第一个软件定时器之前;将辅定时器定时长度设置为X ;对于X ^ tl的新软件定时器将所述新软件定时器剩余超时时间长度修正为x+Tl-tl ;根据修正后的剩余超时时间长度将该新软件定时器插入所述软件定时器链表相应位置;所述tl为主定时器剩余超时时间长度,th为辅定时器剩余超时时间长度。所述方法进一步包括软件定时器删除过程所述实时操作系统删除软件定时器,将删除的软件定时器从所述软件定时器链表中删除。所述将删除的软件定时器从所述软件定时器链表中删除包括当所述删除的软件定时器是所述软件定时器链表的第一个软件定时器且该软件定时器的剩余超时时间长度小于主定时器最小时间片长度时;如果所述软件定时器链表中没有其他剩余超时时间长度小于主定时器最小时间片长度的软件定时器,关闭辅定时器。 从所述软件定时器链表中删除该删除的软件定时器。所述将删除的软件定时器从所述软件定时器链表中删除进一步包括当所述删除的软件定时器是所述软件定时器链表的第一个软件定时器且该软件定时器的剩余超时时间长度小于主定时器最小时间片长度时;如果所述软件定时器链表中还有其他剩余超时时间长度小于主定时器最小时间片长度的软件定时器,将软件定时器第二个软件定时器的剩余超时时间长度修正为y2-y+th ;设置辅定时器的定时长度为y2_y+th ;其中,所述y2为软件定时器链表第二个软件定时器剩余超时时间长度;所述y为软件定时器链表第一个软件定时器的剩余超时时间长度,th为辅定时器剩余超时时间长度;从所述软件定时器链表中删除该删除的软件定时器。本专利技术的技术方案将定时精度较低的主定时器作为系统基准硬件定时器为提供系统时钟,在有软件定时器剩余超时时间小于主定时器最小时间片时才启动定时精度较高的辅定时器为定时精度高的软件定本文档来自技高网
...

【技术保护点】
一种嵌入式系统定时器实现方法,其特征在于,包括:设置一个主定时器及一个辅定时器;将主定时器作为系统的基准定时器;主定时器超时时,将各主软件定时器剩余超时时间长度减去T1;触发满足超时条件的软件定时器定时中断;如果有软件定时器剩余超时时间长度小于主定时器最小时间片长度,则设置辅定时器定时长度为剩余超时时间长度最小的软件定时器的剩余超时时间长度,启动辅定时器;辅定时器超时时,将各辅软件定时器剩余超时时间长度减去辅定时器定时长度;触发满足超时条件的软件定时器定时中断;如果有软件定时器剩余超时时间长度小于主定时器最小时间片长度,则设置辅定时器定时长度为剩余超时时间长度最小的软件定时器的剩余超时时间长度;否则,关闭辅定时器;其中,所述主定时器为定时精度不低于实时操作系统系统时钟精度要求的硬件定时器;所述辅定时器为定时精度不低于嵌入式系统最高定时精度要求的硬件定时器;所述主软件定时器指剩余超时时间长度不小于主定时器最小时间片长度T1的软件定时器;所述辅软件定时器指剩余超时时间长度小于T1的软件定时器。

【技术特征摘要】
1.一种嵌入式系统定时器实现方法,其特征在于,包括设置一个主定时器及一个辅定时器;将主定时器作为系统的基准定时器;主定时器超时时,将各主软件定时器剩余超时时间长度减去Tl ;触发满足超时条件的软件定时器定时中断;如果有软件定时器剩余超时时间长度小于主定时器最小时间片长度,则设置辅定时器定时长度为剩余超时时间长度最小的软件定时器的剩余超时时间长度,启动辅定时器;辅定时器超时时,将各辅软件定时器剩余超时时间长度减去辅定时器定时长度;触发满足超时条件的软件定时器定时中断;如果有软件定时器剩余超时时间长度小于主定时器最小时间片长度,则设置辅定时器定时长度为剩余超时时间长度最小的软件定时器的剩余超时时间长度;否则,关闭辅定时器;其中,所述主定时器为定时精度不低于实时操作系统系统时钟精度要求的硬件定时器;所述辅定时器为定时精度不低于嵌入式系统最高定时精度要求的硬件定时器;所述主软件定时器指剩余超时时间长度不小于主定时器最小时间片长度Tl的软件定时器;所述辅软件定时器指剩余超时时间长度小于Tl的软件定时器。2.根据权利要求1所述的方法,其特征在于,所述软件定时器组成软件定时器链表,软件定时器链表中各软件定时器根据剩余超时时间长度从小到大顺序排列。3.根据权利要求2所述的方法,其特征在于,所述设置辅定时器定时长度为剩余超时时间长度最小的软件定时器的剩余超时时间长度进一步包括将软件定时器链表中第一个软件定时器的剩余超时时间长度设置为辅定时器定时长度。4.根据权利要求2所述的方法,其特征在于,还包括增加新软件定时器过程所述实时操作系统建立新软件定时器,并将新软件定时器插入所述软件定时器链表。5.根据权利要求4所述的方法,其特征在于,所述将新软件定时器插入所述软件定时器链表包括对于剩余超时时间长度X < tl的新软件定时器,如果所述软件定时器链表的第一个软件定时器剩余超时时间长度I ^ Tl,则将所述新软件定时器插入所述第一个软件定时器之前,设置辅定时器定时长度为X,开启辅定时器;如果y < Tl,且X > t h,修正所述新...

【专利技术属性】
技术研发人员:周勃梁小刚
申请(专利权)人:重庆重邮信科通信技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1