首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

μC/OS-II实时性能测试与研究 02

μC/OS-II实时性能测试与研究 02

③根据式(1)计算结果。

      ④重复10次实验,取最大值为5.36μs。
      需要注意2点:其一,有意义的任务切换时间和中断响应时间是系统在最坏情况下发生的,所以不能取平均值,应该取最大值。其二,因为定时器是循环计数的,即从初始值自减到0,然后恢复初始值,继续自减。所以停止计时时,定时器可能经过了两次或多次循环。设计程序时要注意这一点。在本次实验中,循环最大间隔为60 000×0.08μs=4 800μs,远大于一次任务切换时间或中断响应时间,所以定时器没有经过多次循环。
      3.2 中断响应时间测试步骤及结果

      ①同任务切换时间测试。

      ②如图2所示,建立一个任务Task_IRT_Test和定时器0对应的中断服务子程序
Timer0_IRT_Test。在任务中开启定时器0,当定时器0自减到0时,CPU响应该中断,
CPU的中断向量跳转到定时器0的中断服务子程序Timer0_IRT_Test:,由它保存CPU的全部寄存器;然后通知内核进入中断服务子程序,同时将堆栈指针保存到当前任务控制块OS_TCB中,之后用户的中断服务代码开始执行,在此停止定时器0,读出它的数值a2。

      ③根据式(2)计算结果。

      ④重复10次实验,取最大值0.24μs。
        4 CPU运行频率对μOS-II实时性的影响

      将CPU运行频率分别降低到152.00 MHz、101.25MHz、67.50 MHz和33.75 MHz。

      测试方法不变,其测试结果分别如图3和图4所示。其中,任务切换时间的最大值分别为7.14μs、10.74μs、16.35μs、32.71μs;中断响应时间的最大值分别为0.32μs、0.47μs、0.95μs、1.90μs。


      测试结果分析,总体上,随着CPU运行频率的增加,任务切换时间和中断响应时间都会减小,且呈非线性变化。特别是CPU运行频率较低时,其变化对实时性能影响较大;当CPU运行在较高的频率时,其变化幅度相对要小些。其非线性变化是与最小分频时间相关的。

         这说明CPU运行频率对实时性能起着非常重要的作用。因为它直接决定指令的处理周期,频率增加时,指令周期减小,系统用于同步等待的时间缩短,CPU执行每条语句的速度加快,保存和恢复CPU寄存器内容的速度也相应加快,因此实时性能变得更好。
        5 CPU利用率对μC/OS-II实时性能的影响
         之前的测试都是在CPU负荷较小的情况下进行的,当CPU负荷增大(即利用率升高)时,实时性又会如何变化呢?这里建立了N个相同的任务,同时进行大批量的浮点运算。再建立一个任务,利用μC/OS-II自带函数OSStat()计算CPU利用率。对应不同的N值,有不同的CPU利用率,分别测试其实时性,得到的结果如图5所示。测试结果表明:当CPU负荷增大时,任务切换时间会增加,中断响应时间也会略有增加。CPU利用率对系统的实时性能有一定的影响,但不是很大。

返回列表