在Vxworks中,我们有各种时钟,如系统时钟和辅助时钟,并具有各种API,如下所示
我的问题是系统时钟和辅助时钟之间有什么区别.当程序员应该使用什么和在什么情况下?
系统时钟构成了VxWorks如何跟踪时间和超时的基础.
支持超时(信号量,消息队列,事件)以及taskDelay调用的大多数OS对象都以时钟周期为单位,这基于系统时钟.
一般而言,系统时钟速率由电路板设计者选择是有原因的.
启动时钟速度会略微增加系统开销,因为在每个系统时钟周期内,操作系统需要为各种超时元素,时间片计数器和其他内部资源提供服务.
如果需要以高速(2000 - 8000 Hz)执行任务,则可以使用辅助时钟.auxClock API是中断服务程序的简化接口.每当时钟到期时,将从辅助时钟ISR调用sysAuxClockConnect指定的例程.
在ISR服务时间内,辅助时钟没有系统开销.
当然,您需要第二个硬件时钟才能使用auxClock.此外,像spy这样的一些vxWorks组件也使用了auxClock.如果您有这样的组件,则可能无法使用它,因为存在冲突.
请注意,如果您的硬件平台上有两个以上的定时器,您可以编写自己的例程,基本上执行与aux Clock API相同的操作.
| 归档时间: |
|
| 查看次数: |
2427 次 |
| 最近记录: |