硬汉嵌入式论坛

 找回密码
 立即注册
查看: 972|回复: 5
收起左侧

[μCOS-III] 任务运行时间很长这段时间cpu使用率该怎么计算,是100%吗

[复制链接]

28

主题

130

回帖

214

积分

高级会员

积分
214
发表于 2022-5-31 15:22:39 | 显示全部楼层 |阅读模式
本帖最后由 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);
    }
}
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2022-5-31 18:39:11 | 显示全部楼层
1、一般是100ms的统计。
    你开启统计任务了才做统计,不开启不做。

2、统计任务如果得不到执行,无法刷新最新统计值。
回复

使用道具 举报

5

主题

519

回帖

534

积分

金牌会员

积分
534
发表于 2022-6-1 09:34:50 | 显示全部楼层
一个AppTask任务需要运行大概10秒钟,直到10秒钟结束以后才调用OSTimeDlyHMSM函数 进行任务切换。

啥任务这么长?
回复

使用道具 举报

28

主题

130

回帖

214

积分

高级会员

积分
214
 楼主| 发表于 2022-6-1 11:51:35 来自手机 | 显示全部楼层
hqgboy 发表于 2022-6-1 09:34
一个AppTask任务需要运行大概10秒钟,直到10秒钟结束以后才调用OSTimeDlyHMSM函数 进行任务切换。

啥任 ...

很正常啊,需要cpu不停计算的任务
回复

使用道具 举报

5

主题

519

回帖

534

积分

金牌会员

积分
534
发表于 2022-6-1 14:27:15 | 显示全部楼层
logo 发表于 2022-6-1 11:51
很正常啊,需要cpu不停计算的任务

想起以前用C51计算浮点,也是十秒左右,换成ARM,不到一秒。
回复

使用道具 举报

28

主题

130

回帖

214

积分

高级会员

积分
214
 楼主| 发表于 2023-8-4 13:11:40 | 显示全部楼层
eric2013 发表于 2022-5-31 18:39
1、一般是100ms的统计。
    你开启统计任务了才做统计,不开启不做。

我现在对ucos有更新的理解了,我在任务中适当位置插入了OSTimeDlyHMSM,这样就可以释放出CPU,让统计任务或者其他任务得以运行。之前我只是在任务的最末尾运行OSTimeDlyHMSM。之前我以为OSTimeDlyHMSM这个只能用在任务结尾。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 03:05 , Processed in 0.267972 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表