VxWorks系统多路选择模式下任务定时器的实现方法技术方案

技术编号:4204740 阅读:364 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种VxWorks系统多路选择模式下任务定时器的实现方法。当发生定时到期事件后,回调函数根据入口参数指针所指的定时器描述节点具体内容,向对应的任务设置定时到期事件标志,采用VxWorks的管道机制通知任务,最后重新启动内核定时器。任务悬挂等待在一组文件描述字上,其中有一个文件描述字是管道,用于通知是否有定时事件到达。当有定时事件到达时,任务检查定时器描述节点数组,对于设置定时标志的定时器进行相应的定时处理。本方法能够及时将内核定时事件利用管道机制通知到基于select模式运行的任务,提高了任务可以创建的定时器数量,避免了这些操作在任务之间的竞争条件,并能够防止因任务反应慢而导致定时事件堆积现象。

【技术实现步骤摘要】

本专利技术涉及一种VxWorks操作系统下基于select模式 运行的任务定时器的实现方法。(二) 、
技术介绍
定时器是嵌入式系统中广泛使用的一种重要机制。 VxWorks操作系统提供了一个看门狗定时器机制,允许C函数与一个特定的时 间延迟相联系。通常与看门狗定时器相联系的函数以系统时钟中断级作为中断 服务代码来执行。如果因为某种原因,如一个先前的中断或内核状态,不能立 即执行相应的回调函数,操作系统将该函数放在系统异常处理任务tExcTask 工作队列中,tExcTask工作队列中的函数通常以优先级O运行。因此与看门狗 定时器相联系的函数代码也有与中断服务程序相同的约束,这就会给应用任务 定时器的处理代码带来很大的局限性,即应用任务定时器的处理代码不能调用 可能引起调用阻塞的函数。另外,不管回调函数在中断级还是系统异常处理任 务中执行,还要考虑回调函数和应用任务其它事件处理之间的竞争条件。在默认的阻塞模式下的套接字里,系统调用recv()会阻塞在那里,直到套 接字连接上有数据可读,把数据读到缓冲区里后recv()函数才会返回。在单线 程的程序里出现这种情况会导致线程被阻塞,这样本文档来自技高网...

【技术保护点】
一种VxWorks系统多路选择模式下任务定时器的实现方法,其特征是:  内核定时器回调函数的入口参数是定时器描述节点指针,利用管道实现内核定时器回调函数和任务之间的同步机制。每个任务创建一个管道,管道能够排队的最大消息数量是1,每个消息的最大长度是1字节,如果管道里有数据则表示任务有定时事件到达;  当发生定时到期事件后,回调函数根据入口参数指针所指的定时器描述节点具体内容,向对应的任务设置定时到期事件标志,采用VxWorks的管道机制通知任务,最后重新启动内核定时器;  任务悬挂等待在一组文件描述字上,其中有一个文件描述字是管道,用于通知是否有定时事件到达,当有定时事件到达时,任务检查定时器...

【技术特征摘要】

【专利技术属性】
技术研发人员:韩明峰唐永建郑永志高旭涛
申请(专利权)人:东方电子股份有限公司
类型:发明
国别省市:37[中国|山东]

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

1