-
初始化统计任务的指南 - EMC DataDomain 2500 存储设备维护手册
资源介绍
图 F3.4统计任务的初始化
TaskStart()负责初始化和启动时钟节拍[图 F3.4(5)]。在这里启动时钟节拍是必要的,因
为用户不会希望在多任务还没有开始时就接收到时钟节拍中断。接下去 TaskStart()调用统
计初始化函数 OSStatInit()[图 F3.4(6)]。统计初始化函数 OSStatInit()决定在没有其
它应用任务运行时,空闲计数器(OSIdleCtr)的计数有多快。奔腾 II 微处理器以 333MHz
运行时,加 1操作可以使该计数器的值达到每秒 15,000,000次。OSIdleCtr的值离 32位计
数器的溢出极限值 4,294,967,296还差得远。微处理器越来越快,用户要注意这里可能会是
将来的一个潜在问题。
系统统计初始化任务函数OSStatInit()调用延迟函数OSTimeDly()将自身延时2个时钟
节拍以停止自身的运行[图 F3.4(7)]。这是为了使 OSStatInit()与时钟节拍同步。μC/OS-
Ⅱ然后选下一个优先级最高的进入就绪态的任务运行,这恰好是统计任务 OSTaskStat()。
读者会在后面读到 OSTaskStat()的代码,但粗看一下,OSTaskStat()所要做的第一件事就
是查看统计任务就绪标志是否为“假”,如果是的话,也要延时两个时钟节拍[图 F3.4(8)]。
一定会是这样,因为标志 OSStatRdy 已被 OSInit()函数初始化为“假”,所以实际上
DSTaskStat也将自己推入休眠态(Sleep)两个时钟节拍[图 F3.4(9)]。于是任务切换到空