This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi Sam,
计算"使用率"比较简单直接的办法,就是在后台循环里做一个计数器(全局变量)的累加。
设置一个给定的时间长度,比如100ms,先计算或测试好预期的100%CPU使用率下的累加结果。(比如会记到1,000,000。)
然后把你的操作系统任务,或者中断,或者任何什么你要测试的代码跑起来,100ms后查看这个计数器的值。(比如记到500,000.)
两者相比就是CPU的空闲率(100% - 使用率,上面的例子算的CPU使用率为50%)。
理论上应该时间越长越准确吧。
Hi Sam.
可以啊,当然没问题了。
我看有的工程师甚至担心连着调试器会丢一些CPU或系统的时钟(被调试器占用),所以这样的测试的时候,都是不用调试器的。
做一段代码把最终测试结果串口发出来之类的方法。
Hi Renton ,
如下是大致例程,请再次帮我确认:
uint32 CPU = 0; //全局变量,用于计算CPU的使用率;
uint32 Save_CPU = 0; //进入定时器中断后,用于保存CPU的使用率值;
#define CPU_100 1000 //假设CPU空闲时,CPU值为1000;
int main(void)
{
while(1)
{
CPU ++;
其他处理函数;
中断处理:
等等; //均在主函数下运行;
}
}
void rtiNotification(uint32 notification) //定时器中断函数,如每1S中断一次;
{
Save_CPU = CPU;
CPU使用率(100%) = Save_CPU / 1000 ; //CPU 使用率;
CPU = 0;
}
这样处理可以吗??