-
是关于emc datadomain 2500存储设备的统计任务示例维护手册
资源介绍
3.8 统计任务
μC/OS-Ⅱ有一个提供运行时间统计的任务。这个任务叫做 OSTaskStat(),如果用户将
系统定义常数 OS_TASK_STAT_EN(见文件 OS_CFG.H)设为 1,这个任务就会建立。一旦得到
了允许,OSTaskStat()每秒钟运行一次(见文件 OS_CORE.C),计算当前的 CPU 利用率。换
句话说,OSTaskStat()告诉用户应用程序使用了多少 CPU时间,用百分比表示,这个值放在
一个有符号 8位整数 OSCPUsage中,精读度是 1个百分点。
如果用户应用程序打算使用统计任务,用户必须在初始化时建立一个唯一的任务,在这
个任务中调用 OSStatInit()(见文件 OS_CORE.C)。换句话说,在调用系统启动函数 OSStart()
之前,用户初始代码必须先建立一个任务,在这个任务中调用系统统计初始化函数
OSStatInit(),然后再建立应用程序中的其它任务。程序清单 L3.12是统计任务的示意性代
码。
程序清单 L3.12 初始化统计任务.
void main (void)
{
OSInit(); /* 初始化uC/OS-II (1)*/
/* 安装uC/OS-II的任务切换向量 */
/* 创建用户起始任务(为了方便讨论,这里以TaskStart()作为起始任务) (2)*/
OSStart(); /* 开始多任务调度 (3)*/
}
void TaskStart (void *pdata)
{
/* 安装并启动uC/OS-II的时钟节拍 (4)*/
OSStatInit(); /* 初始化统计任务 (5)*/
/* 创建用户应用程序任务 */
for (;;) {
/* 这里是TaskStart()的代码! */
}
}
因为用户的应用程序必须先建立一个起始任务[TaskStart()],当主程序 main()调用
系统启动函数 OSStcnt()的时候,μC/OS-Ⅱ只有 3 个要管理的任务:TaskStart()、
OSTaskIdle()和 OSTaskStat()。请注意,任务 TaskStart()的名称是无所谓的,叫什么名字
都可以。因为μC/OS-Ⅱ已经将空闲任务的优先级设为最低,即 OS_LOWEST_PR10,统计任务