分类: 其他UNIX
2016-09-23 22:47:18
点击(此处)折叠或打开
功能:计算用户应用程序使用了多少CPU时间、现有任务的个数、系统版本号等信息。
使用条件:1、将OS_CFG.H文件的OS_TASK_STAT_EN设为1,建立这个任务,优先级默认为OS_LOWEST_PRIO-1。
2、在调用系统启动函数OSStart()之前,用户必须初始化一个任务,在这个任务中调用系统统计初始 化函数OSStatInit(),之后在建立其它任务。UCOSII的统计任务要求在整个一秒钟内没有其它任务运行。如果在启动多任务之前要建立其它任务,必须保证用户的任务代码监控全局变量OSStatRdy和延时程序(即调用OSTimeDly())的执行,直到这个变量变成TRUE。这表明UCOS的CPU利用率统计函数已经采集到了数据。
3、最好不要将OSStatInit()函数放置在OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL();虽然这样也可以计算任务的个数,系统版本号但无法计算CPU的使用时间。
在使用UCOSII的任何服务功能以前必须先调用OSInit(),它会建立两个任务:空闲任务和统计任务,前者在没有其它任务处于就绪状态时运行,后者计算CPU的利用率等。
在启动多任务OOStart()之前必须建立至少一个任务,否则将导致崩溃。
下面例程以正点原子的例程改写: