系统时钟和辅助时钟之间的区别

4
在Vxworks中,我们有各种时钟,如系统时钟和辅助时钟,并具有以下API:
  • sysClkConnect() - 将例程连接到系统时钟中断
  • sysClkDisable() - 关闭系统时钟中断
  • sysClkEnable() - 打开系统时钟中断
  • sysClkRateGet() - 获取系统时钟速率
  • sysClkRateSet() - 设置系统时钟速率
  • sysAuxClkConnect() - 将例程连接到辅助时钟中断
  • sysAuxClkDisable() - 关闭辅助时钟中断
  • sysAuxClkEnable() - 打开辅助时钟中断
  • sysAuxClkRateGet() - 获取辅助时钟速率
  • sysAuxClkRateSet() - 设置辅助时钟速率
我的问题是系统时钟和辅助时钟之间有什么区别?程序员应该在什么情况下使用它们?
2个回答

6
系统时钟是VxWorks跟踪时间和超时的基础。大多数支持超时的OS对象(例如信号量、消息队列、事件)以及taskDelay调用的单位都是时钟滴答,基于系统时钟。通常情况下,板设计师选择系统时钟速率是有原因的。提高时钟速度会略微增加系统开销,因为在每个系统时钟滴答中,操作系统需要服务各种超时元素、时间片计数器和其他内部任务。如果您需要以高速率执行任务(2000-8000 Hz),可以使用辅助时钟。auxClock API是一个简化的中断服务例程接口。每当时钟到期时,将从aux时钟ISR调用由sysAuxClockConnect指定的例程。除了ISR服务时间之外,aux时钟没有任何系统开销。当然,您需要第二个硬件时钟才能使用auxClock。此外,一些vxWorks组件,如spy,也使用auxClock。如果您有这样的组件,则可能无法使用它,因为存在冲突。请注意,如果您在硬件平台上有超过2个定时器,则可以编写自己的例程来实现与aux Clock API几乎相同的功能。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接