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.

RM48L952 CPU使用率

Expert 1222 points
Other Parts Discussed in Thread: RM48L952

再裸机跑的情况下怎么计算RM48L952 CPU的使用率? 我需要对此芯片做测试和评估....

  • 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; 

    }

    这样处理可以吗??