| 网站首页 | 新闻 | SOPC | FPGA | DSP | ARM | 嵌入式操作系统 | 下载 | 所有产品 | 留言 | 论坛 | 购买指南 | 网络协议 | 驱动设计 | 
您现在的位置: 21嵌入式控制研究室 >> 嵌入式操作系统 >> Vxworks >> 文章正文 用户登录 新用户注册
简单例子,测试CPU空闲率(Vxworks)           ★★★ 【字体:
简单例子,测试CPU空闲率(Vxworks)
作者:佚名    文章来源:21control    点击数:    更新时间:2005-12-26
#include "vxworks.h"
#include "taskLib.h"
#include "wdLib.h"
#include "intLib.h"

#define DEADLINE_TIME 1
#define PRIORITY 255


LOCAL WDOG_ID wdid;

LOCAL unsigned int idleBaseCount = 0;
LOCAL unsigned int idleCount = 0;

unsigned int G_idlePercent = 0xffffffff;






LOCAL void IdleFuncEntry (void);
LOCAL void calculateIdleHandle (void);

unsigned int getIdlePercent(void)
{
return G_idlePercent;
}


BOOL initIdleFunction ( void )
{
int tid;


idleBaseCount = 0;

if( NULL == ( wdid = wdCreate() ) )
{
perror("cannot create idle watchdog\n");
return ERROR;
}


if( ERROR == wdStart(wdid,sysClkRateGet()*DEADLINE_TIME,
(FUNCPTR)calculateIdleHandle,0 ) )
{
perror("error in starting idle watchdog timer\n" );
return ERROR;
}

if( ERROR == (tid = taskSpawn( (char *)"IdleTask", PRIORITY,0, 1024,
(FUNCPTR)IdleFuncEntry, 0,0,0,0,0,0,0,0,0,0 ) ) )
{
perror("error in create idle task\n" );
return ERROR;
}
return TRUE;
}


LOCAL void calculateIdleHandle( void )
{

if( idleBaseCount == 0 )
{
G_idlePercent = 0xffffffff;
idleBaseCount = idleCount;

} else {

G_idlePercent = (idleCount * 100) / idleBaseCount;

if( G_idlePercent > 100 ) {

G_idlePercent = 100;
idleBaseCount = idleCount;
}
}

idleCount = 0;



if( ERROR == wdStart(wdid,sysClkRateGet()*DEADLINE_TIME ,
(FUNCPTR)calculateIdleHandle,0 ) )
{
perror("error in restarting idle watchdog timer\n" );
}


}



LOCAL void IdleFuncEntry(void)
{

idleCount = 0;

while( TRUE )
{
if( INT_CONTEXT() ) {

} else {

++idleCount ;
}

taskDelay(0);
}
}


文章录入:fengfeiyi    责任编辑:fengfeiyi 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
  • 基于VxWorks实现自动发送彩信…

  • VxWorks实时操作系统下MPC82…

  • VxWorks及其在综合航空电子系…

  • 嵌入式移动数据库的特性

  • 嵌入式系统与普适计算

  • 利用VxWorks作Internet电话网…

  • Tornado开发工具

  • VxWorks组成部分

  • Vxworks下8139驱动加载step …

  • VxWorks/Tornado建立调试环境…

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)