没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
VxWorks 中的时间函数和定时器
[摘要] Timer 是实时操作系统的一个重要组成部分。本文结合近阶段的学
习和实验情况,对 VxWorks 中的时间函数和定时器作了一些探讨。主要介绍
了 Timer 的机制,相关的函数,并给出了一些具体的例子。
一. Tick
Tick 是指每秒中定时器中断的次数。POSIX 标准中,tick 等于 50,即每
20ms 定时器中断一次。VxWorks 中,tick 的缺省设置为 60。因为实时操作系统
中,任务的调度和定时器密切相关,tick 设置是否合理对整个系统性能的影响
是很明显的。如果 tick 太小,则系统实时响应能力较差;反之,如果 tick 太大,
则会使得系统的绝大多数资源浪费在不断的任务管理和调度中。
Tick 的次数在 userconfig.c 文件中设置,其语句为 sysClkRateSet (60)。用户
可以更改这个文件,然后重新编译 BSP 库,也可以在应用程序中更改。
和 tick 相关的函数主要有:
sysClkRateGet: 得到每秒系统的 tick 数
sysClkRateSet: 设置系统的 tick 数
二. 看门狗时钟(Watchdog Timer)
Watchdog Timer 提供了这样一种机制,它使一个 C 函数和一个时间延迟联
系起来。当该时间延迟到达以后,系统会调用该 C 函数。Watchdog Timer 采用
了中断服务进程(ISR)的机理,当 C 函数被激活时,它是作为 ISR 运行的。
和 Watchdog Timer 相关的函数如下:
wdCreate: 创建 Watchdog Timer
wdDelete: 删除 Watchdog Timer
wdStart: 启动一个 Watchdog Timer
wdCancel: 取消一个正在记数的 Watchdog Timer
Watchdog 使用过程如下:首先调用 wdCreate 创建一个 Watchdog Timer, 然后
通过 wdStart 启动该 Timer。当 tick 累计到设定的数字时,和它相联系的 C 函数
被激活作为 ISR 运行。下面是一个例子,该例子在延迟 3 秒后输出一句话:
“Watchdog timer just expired”。
例:
#include "VxWorks.h"
#include "logLib.h"
#include "wdLib.h"
#include "taskLib.h"
/* defines */
#define SECONDS (3)
1
资源评论
sct_sct_324
- 粉丝: 5
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功