发明名称 |
嵌入式实时操作系统中定时器的计时方法 |
摘要 |
本发明提供一种嵌入式实时操作系统中定时器的计时方法,包括:设置最大定时器数的定时器描述数组;采用一定长度的数组和循环指针变量组成循环计时队列;在每个计时周期到来时,循环指针变量向后移动,查询所指数组元素的链表队列是否为空,如果为空,则等待下一个计时周期的到来;如果不为空,则逐一判断该链表队列中定时器的描述结构中的倍数值是否为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深圳市南山区高新技术产业园科技南路中兴通讯大厦法律部 |