raoer 发表于 2012-6-7 19:15:48

uCOS如何编写CPU使用率的统计代码

各位大神,小弟做毕业设计,基于S3C2440的uCOS—II的移植,别的任务都跑出来了,只差CPU统计这一块,用GUI显示一直是00,我想肯定是我设置的问题。用GUI显示的话, GUI_DispDecAt(OSCPUUsage, 80, 115, 3 );这条指令对吗?在主任务中也添加OSStatInit();,#define OS_TASK_STAT_EN         1    /* Enable (1) or Disable(0) the statistics task                   */,用的FL2440开发板。请教各位CPU统计代码如何编写。

i55x 发表于 2012-6-7 20:40:50

ucos有统计函数,不需要你编写。

raoer 发表于 2012-6-7 20:46:50

i55x 发表于 2012-6-7 20:40 static/image/common/back.gif
ucos有统计函数,不需要你编写。

我知道,你看我编写的对吗?引用OSCPUUsage,但是显示出来CPU使用率总是00

not_at_all 发表于 2012-6-7 21:35:32

就那么一条显示程序,谁知道你哪里出问题了?

raoer 发表于 2012-6-7 21:56:55

本帖最后由 raoer 于 2012-6-7 21:59 编辑

not_at_all 发表于 2012-6-7 21:35 static/image/common/back.gif
就那么一条显示程序,谁知道你哪里出问题了?

程序是改人家的!!麻烦您帮忙看一下,谢谢,MAIN函数在0525Ucos2\uCos2\uCos2\S3C2440\source

tangguanglun 发表于 2012-6-8 08:28:40

使用 GUI_DispDecAt(OSCPUUsage,300,230,2); 就可以显示使用率了。这个显示使用率的函数最后1S调用一次。OSCPUUsage这个参数是在UCOS的宏中定义了的。

raoer 发表于 2012-6-8 08:40:01

tangguanglun 发表于 2012-6-8 08:28 static/image/common/back.gif
使用 GUI_DispDecAt(OSCPUUsage,300,230,2); 就可以显示使用率了。这个显示使用率的函数最后1S调用一次。OS ...

正常情况是这样,但在LCD上显示一直是00,应该是哪里设置有问题吧,麻烦帮忙看看程序,谢谢!!

tangguanglun 发表于 2012-6-8 10:11:42

你把MainTask任务里面的OSStatInit()函数不要放在关中断开中断里面。放在你的GUI_Init之前就行。如果你关中断了,进入统计任务里面一开始需要的延时两个时钟节拍怎么能完成呢。

raoer 发表于 2012-6-8 10:37:19

tangguanglun 发表于 2012-6-8 10:11 static/image/common/back.gif
你把MainTask任务里面的OSStatInit()函数不要放在关中断开中断里面。放在你的GUI_Init之前就行。如果你关中 ...

谢谢。我现在自习室写论文,板子没带,等下午回去试一下!!

raoer 发表于 2012-6-8 15:07:55

tangguanglun 发表于 2012-6-8 10:11 static/image/common/back.gif
你把MainTask任务里面的OSStatInit()函数不要放在关中断开中断里面。放在你的GUI_Init之前就行。如果你关中 ...

谢谢,已经运行出来了,您说的是OSStatInit()在GUI_Init之前,试了一下还是不行,加在GUI_Init之后就运行出来了,虽然能显示了,还是不知道为什么这样,学的太肤浅了!!

flyforyou85 发表于 2014-2-16 14:25:04

raoer 发表于 2012-6-8 08:40
正常情况是这样,但在LCD上显示一直是00,应该是哪里设置有问题吧,麻烦帮忙看看程序,谢谢!! ...

请确认,如下的函数是否执行。


Void TaskStart (void *pdata)
{
   /* 安装并启动uC/OS-II的时钟节拍                                    
      OSStatInit();             /* 初始化统计任务                        
   /* 创建用户应用程序任务   */                                          
   for (;;) {
       /* 这里是TaskStart()的代码!                                    
   }
}
页: [1]
查看完整版本: uCOS如何编写CPU使用率的统计代码