首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >系统时钟与辅助时钟的区别

系统时钟与辅助时钟的区别
EN

Stack Overflow用户
提问于 2013-08-20 09:33:29
回答 2查看 3.7K关注 0票数 4

在Vxworks中,我们有各种时钟,如系统时钟和辅助时钟,还有如下所示的各种API

  • sysClkConnect( )-将一个例程连接到系统时钟中断
  • sysClkDisable( )-关闭系统时钟中断
  • sysClkEnable( )-打开系统时钟中断
  • sysClkRateGet( )-获取系统时钟速率
  • sysClkRateSet( )-设置系统时钟速率
  • sysAuxClkConnect( )-将一个例程连接到辅助时钟中断
  • sysAuxClkDisable( )-关闭辅助时钟中断
  • sysAuxClkEnable( )-打开辅助时钟中断
  • sysAuxClkRateGet( )-获取辅助时钟速率
  • sysAuxClkRateSet( )-设置辅助时钟速率

我的问题是系统时钟和辅助时钟之间有什么区别。什么时候程序员应该使用什么和在什么情况下?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-20 14:00:35

系统时钟是VxWorks跟踪时间和超时的基础。

大多数支持超时的OS对象(信号量、消息队列、事件)以及taskDelay调用都是以时钟为单位的,这是基于系统时钟的。

一般来说,系统时钟速率是由董事会设计人员选择的,这是有原因的。

加快时钟速度会稍微增加系统开销,因为在每个系统时钟滴答声中,操作系统需要服务各种超时元素、时间片计数器和其他内部设备。

如果您需要以较高的速度(2000-8000 Hz)执行任务,则可以使用辅助时钟。auxClock API是中断服务例程的简化接口。每当时钟过期时,sysAuxClockConnect指定的例程将从辅助时钟ISR调用。

超过ISR服务时间的辅助时钟没有与系统开销相关联。

当然,为了使用auxClock,您确实需要第二个硬件时钟。另外,一些vxWorks组件(如间谍)也使用auxClock。如果您有这样一个组件,您可能无法使用它,因为有冲突。

注意,如果您的硬件平台上有两个以上的定时器,您可以编写自己的例程来完成与辅助时钟API所做的本质相同的事情。

票数 6
EN

Stack Overflow用户

发布于 2013-08-20 09:54:58

例如,辅助时钟(在硬件支持下)可用于高速轮询。它的时钟速率可以由sysAuxClkRateSet()设定,以偏离系统时钟中断周期。

例子:编程中断:使用VxWorks的MVME 162的示例.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18331658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档