本帖最后由 logo 于 2022-5-31 15:25 编辑
一个AppTask任务需要运行大概10秒钟,直到10秒钟结束以后才调用OSTimeDlyHMSM函数 进行任务切换。
那么在调用OSTimeDlyHMSM函数之前,也就是任务开始运行的10秒钟期间,这10秒内的cpu使用率是不是应该是100%。
另外我看资料好像说ucos刚开始会大概运行1秒钟空闲任务,保存空闲任务的最大计数值,用来将来计算cpu使用率。
那么假如有任务在切换到其它任务之前运行时间超过1秒的话,这段时间的CPU使用率是不是不能计算了。
[C] 纯文本查看 复制代码 static void AppTask( void * p_arg )
{
OS_ERR err;
uint32_t i=0,j=0;
while (1)
{
for(i=0;i<500000;i++) //假设模拟任务占用cpu 10秒钟时间。
{
for(j=0;j<500;j++) ;
}
OSTimeDlyHMSM (0,0,0,500,OS_OPT_TIME_PERIODIC,&err);
}
} |