技术开发 频道

Windows Embedded CE 6.0实时性分析

  Windows Embedded CE 6.0的中断处理过程

  从2000年发布的WinCE3.0开始,Windows Embedded CE就是一个实时操作系统。随着新版本的不断推出,它的实时性也不断提高。毋庸置疑,Windows Embedded CE 6.0也是一个实时操作系统。

  通常,对于实时操作系统来说,外部触发一般是指外部中断触发。所以,外部中断的响应时间(中断延迟)是衡量其实时性的一个重要标准。下面将重点从这一角度分析Windows Embedded CE 6.0的实时性。

  Windows Embedded CE 6.0的中断处理过程主要分为两部分:
 
  ·中断服务例程(ISR):处于内核中的低级处理程序,中断发生时首先被调用。
  ·中断服务线程(IST):处于驱动或者应用中的中断处理线程,由系统调度,完成大部分的中断处理工作。

  ISR的实现在OAL(OEM适配层)中,它只处理最低级的中断响应,通常是设置MCU内部的中断控制寄存器。中断处理的主要部分在驱动或者应用的中断处理线程中。中断处理线程与其他普通线程一样,使用同一个线程优先级管理系统。ISR和IST之间通过事件对象进行同步。IST中创建一个事件对象,并使用函数WaitForSingleObject()等待该事件被触发。ISR中通知内核触发相应的事件对象。Windows Embedded CE 6.0的中断处理的过程如图1所示。


图1 Windows Embedded CE 6.0的中断处理过程

  可以看到,从外部中断产生到IST运行,中间经历了几个环节,每一个环节都有时间开销,有些时间是基本确定的,有些时间随系统的状态不同而不同。但整个中断延迟主要可分为ISR延迟和IST延迟两部分,如图2所示,t1为ISR延迟,t2为IST延迟。中断延迟的时间是衡量Windows mbedded CE 6.0实时性的一个重要指标。那么如何在我们系统的硬件平台上测得这个中断延迟的具体值,从而进一步分析Windows Embedded CE 6.0的实时性能否满足项目的实际应用需求。


图 2 Windows Embedded CE 6.0的中断延迟模型

  这是中断延迟的一个简要模型,t1是ISR延迟,t2是IST延迟,t1+t2即为中断延迟,我们需要测量和计算的就是这两个值。

0
相关文章