发明名称 嵌入式实时操作系统中定时器的计时方法
摘要 本发明提供一种嵌入式实时操作系统中定时器的计时方法,包括:设置最大定时器数的定时器描述数组;采用一定长度的数组和循环指针变量组成循环计时队列;在每个计时周期到来时,循环指针变量向后移动,查询所指数组元素的链表队列是否为空,如果为空,则等待下一个计时周期的到来;如果不为空,则逐一判断该链表队列中定时器的描述结构中的倍数值是否为0,如为0则表示该定时器的定时时间到,进行相应的报时操作和再次插入定时器操作;如倍数值不为0则将倍数值减1,判断下一个定时器。本发明解决了现有计时法中存在冗余操作和排序操作的缺点,经模拟测试,定时器在各种负载下的平均性能提高5倍以上,节省了嵌入式系统定时管理所需的计算资源。
申请公布号 CN1275423C 申请公布日期 2006.09.13
申请号 CN02110936.2 申请日期 2002.02.28
申请人 中兴通讯股份有限公司 发明人 唐斌;缪敬;颜春燕
分类号 H04L12/24(2006.01);H04M15/00(2006.01) 主分类号 H04L12/24(2006.01)
代理机构 代理人
主权项 1、嵌入式实时操作系统中定时器的计时方法,其特征在于,包括以下步骤:第一步设置所需最大定时器数的定时器描述数组,数组结构包含前一个和后一个定时器的索引标识,通过索引标识构造双向链表;第二步采用一定长度的数组和循环指针变量组成一个循环计时队列,循环指针变量以循环的方式指向各数组元素;第三步当上层应用程序需要定时器任务时,先计算定时器时长除以数组长度所得的余数,再将此余数与当前循环指针变量值求和,然后再除以数组长度,将所需新的定时器插入到所得到余数的位置处的链表中;第四步在每个计时周期到来时,循环指针变量向后移动,查询所指数组元素的链表队列是否为空,如果为空,则等待下一个计时周期的到来;如果不为空,则逐一判断该链表队列中定时器的描述结构中的倍数值是否为0,如为0则表示该定时器的定时时间到,进行相应的报时操作和再次插入定时器操作,同时从该链表队列中删除该定时器描述数组;如倍数值不为0则将倍数值减1,然后判断下一个定时器。
地址 518057深圳市南山区高新技术产业园科技南路中兴通讯大厦法律部