sysClkRateGet();返回系统时钟每秒的tick数量, tick详解!
来源:互联网 发布:淘宝花呗店铺购买 编辑:程序博客网 时间:2024/04/28 19:19
操作系统总是基于某个时钟节拍来跑的。。。这个节拍的得到往往是通过硬件时钟中断得到,一般来说这个中断的优先级就比NMI低一点点,比其他的都高。。这个中断是共给操作系统用的,操作系统用他来进行调度啊什么的各种处理。而在vxWorks中的一个重要参数就是SYS_CLK_RATE这个参数,也就是系统时钟率。。。。它的含义是:系统时钟滴嗒在一秒钟之内发生多少次。比如说,你定义为60,那么系统时钟在1s中将发生60次中断,两次之间的时间差就是1/60s。发生中断后,操作系统可以进行任务切换啊什么的。也就是说,如果你有一个任务被挂起,则至少要过1/60s后被激活---其它中断除外啊。又假如你设置为1000,那么系统时钟1秒发生1000次中断,两个时间差就是1ms。。。而函数sysClkRateGet就是用来获取系统时钟率的,如果你没有调用sysClkRateSet()函数对系统时钟率进行重新设置的话,其返回值应该是你在config.h中定义的SYS_CLK_RATE宏的值。而函数taskDelay()是以tick数目为单位的,比如taskDelay(1)是指将调用该函数的任务延迟1个tick。。那么时间是多少呢,根据你的SYS_CLK_RATE的值,其实际时间不同,但具体时间是1/SYS_CLK_RATE。。。假如SYS_CLK_RATE是1000,那么就是1ms。。如果是60那么就大约是16.67ms。。。通常来讲,vxWorks手册建议不要将时钟率设得太高,否则它就由硬实时变得趋向于软实时了。。因为过高的时钟率使得内核调度频繁进入,可能导致一些低优先级的硬件中断不能得到及时响应。当然,也不要太担心,在x86系统中完全可以设置为1000,这样比较好使,1个tick就是1ms,跟Windows一样。呵呵。。。。。说得不对欢迎PK.
- sysClkRateGet();返回系统时钟每秒的tick数量, tick详解!
- vxWorks中sysClkRateGet()返回系统时钟详解
- vxWorks中sysClkRateGet()返回系统时钟详解
- tick
- TICK
- hdu 1006 Tick and Tick 时钟问题
- hdu1006 Tick and Tick (时钟问题)
- 杭电ACM OJ 1006 Tick and Tick 厌倦时钟 其实就是简单的数学题
- uCos ii系统的 时间tick函数
- 时钟滴答(clock tick)
- Linux 系统Tick
- SylixOS 系统TICK实现
- SylixOS 系统Tick实现
- hdu 1006 Tick and Tick 模拟时钟注意时间连续性!
- Tick and Tick
- hdoj_1006 Tick and Tick
- hdu-Tick and Tick
- hdu1006-Tick and Tick
- 试试看
- 感觉工作好辛苦,在公司做程序员感觉希望好渺茫
- 编写跨平台的软件入门
- [borland eco 技术]自做delphi.net的eco视频教程第一讲(待续)
- 想做个小程序,先记录下来,省得忘了
- sysClkRateGet();返回系统时钟每秒的tick数量, tick详解!
- 几个常用Request.ServerVariables的中文
- 《裸露的真相 21世纪"彻底调查"》
- 八条编程的建议
- sql2000全文检索-level100
- VC 常见的108个问题 (转)
- 全排列算法
- 这个网站骗人的
- 在solaris 10上安装oracle 10g