驻航天二院二十三所军事代表室 苏玉强
1 概述
VxWorks是WindRiver公司开发的高性能实时嵌入式操作系统内核。在应用软件开发过程中经常会用到定时器。VxWorks下要实现定时功能有2个途径:一,借助taskDelay函数实现;二,使用VxWorks提供的看门狗(watchdog)。使用taskDelay函数实现定时器的缺点在于它是基于任务的,任务优先级会导致定时不准。看门狗基于系统时钟中断,定时精度大大优于前者,但是对用户的回调函数有诸多限制(如不允许使用semTake、printf等需要等待获取某种资源的函数,否则会引起死机)。另外,看门狗只触发一次回调函数,如果用户需要周期定时器就需要重新启动看门狗。
本文设计了基于看门狗机制的异步通用定时器,并根据实际需要设计了周期性定时和一次性定时两种定时器。异步是指定时器运行于任务中,对用户没有任何限制。异步通用定时器提供类似于Windows下定时器的操作接口,简单、方便。
2019-6-24 17:27:55
结语
从应用实例中可以看出,异步通用定时器的使用方法和Windows下的定时器没有太大区别,接口简单清晰。异步通用定时器可以应用于定时精度为ms的绝大部分应用程序中,对于精度要求高于ms的定时使用硬件辅助时钟中断更为合适,但是要注意操作系统对中断处理函数的限制。
结语
从应用实例中可以看出,异步通用定时器的使用方法和Windows下的定时器没有太大区别,接口简单清晰。异步通用定时器可以应用于定时精度为ms的绝大部分应用程序中,对于精度要求高于ms的定时使用硬件辅助时钟中断更为合适,但是要注意操作系统对中断处理函数的限制。
举报