微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 拥有微软Windows CE的实时系统

拥有微软Windows CE的实时系统

时间:02-27 来源:互联网 点击:

    • 中断响应

      本论文中,Intervupt Latency 词组主要指的是较件中断,处理响应,也即是从处部中断到达处理器到中断开始处理间的时间。

      Windows CE 中断响应时间是针对锁存在内存上的线程 (当内存响应不存在时)。这使得计算最差事件响应成为可能——中断服务程序(ISR) 开始和中断服务线程(IST)开始D的总时间,直到中断处理的总时间能够通ISR 和 IST 中所需时间计算决定。

      ISR 响应通用公式定义如下:

      ISR开始时间 = value1 dISR_Current sum(dISR_Higher)

      value1=由内核处理过程获得响应值

      dISR_Current=中断到达时程序中 ISR 持续时间。这个值范围由0到系统中最长的 ISR 持续时间

      sum(dISR_Higher)=所有在 ISR 开始前的较高级ISRS 持续时间总和,即在时间 vahe1 dISR-cumeneu间到达的中断

      例如,考虑一个拥有关键优先权 ISR 的嵌入式系统,因为 ISR 被设成最高级,这有样 ISRS dISR-Higher 值为0。当没有其它 ISRS 最低响应,在程序中,即为value1 最低响应即为value1加系统中最长 ISR 周期,当中断到达时,正是系统中最长的 ISR 开始执行。

      IST 响应周期定义如下:

      IST开始时间 = value2 sum(dIST) sum(dISR)

      value2=由内核处理的响应值

      sum(dIST)=所有的出现在 ISR 和 IST ,开始的优先级 ISTS 和线程上下文转换时间总和。

      sum(dISR)=在中断(?) ISR 和它的 IST 之间运行的其它 ISRS 持续时间总和。

      最简单的例子——具有一个关键级 ISR 和一个关键级线程(无其它0优先级的线程)的嵌入式系统——没有其它的 ISTS 能够在ISR 和 IST 之间中断,然而在关键级的 ISR 和它相关的 IST 开始间其它的 ISRS 能被处理。

      因为 ISRS 一旦能够获得,即可被处理,很容易想象成病态情况,涉及产生一个持续的 ISRS 流,从而产生不确定的推迟。 IST 的开始不可能出现,因为 OEM对系统中的中断完成控制。因为 OEM (原始设备制造商)为特定操作系统设计传统 Windows CE 版本。 OCM 利用目标操作环境限制使系统设计最佳化。

      为减少响应时间,OEM 控制 ISR 和IST 处理时间中断优先级线程优先级。公式中的 value1 和 walue2 代表,Windows CE 内核中处理时间,这是 OEM 不能控制的目前的在分时,研究工作涉及这些确认值。

      确保Windows CE的实时操作

      两种不同途径被用来确保Windows CE操作:

      • 由Windows CE开发组进行内部的检查或分析内核代码,
      • OEM和ISV(独立软件销售商)利用一些将在未来的Windows CE版本嵌入式工具包(for VCFT)提供工具来确保特定配置。

      Windows CE关于VC 的嵌入工具包包括以下工具:

      • (一个对于分时研究的内核的工具版本和Intrtinrt.ext应用软件来观察,中断过程的最大、最小、平均时间。
      • 微软也能开发其它的针对顾客需要的分时工具。

      Windows CE开发组,已经检查了内核代码以证实它能由最差的情况时间表征,它是独立于系统对象数目的。

      为了利用这个检查,内核被表征成一套KCALLS或系统调用,在内核关闭优先权是它们是内核程序,并且不允许其它的线程运行,最差事件时间,此时,实时进程、标止运行,它能在内核中表征成最差事件KCALL时间(注意:这些时间不影响ISRS,只影响线程,例如ISTS)。

      开发组通过检查发现这没有非持久的循环在KCALLS,这意味着:并所有的KCALLS能够表示成单向分支,代码路径,并确保通过KCALL并独立于输入参数发现最差事件时间成为可能。

      查找实际的最差事件时间包括使用In strum ented kemal,这仅是一个内核版本,它在设定应用环境后编辑使用,KCALL_PROFICE=1,以保证额外的分时功能,这个instrumented kemel 与debug kemel不同,Instrument ted是为一个零售的内核使用,它用来获得分时值,这常对于装运产品常常讳之莫深,在retail kernal和instrumented kernel唯一区别是它的装备。

      Instrumentted kernel记录所有的KCALL时间,这些值,包括最小、最大和平均时间,并能够通过调用专用的API函数Dum Pk call profile打印到调试接口,Instrumented kernel通常运行在强状态下,然后调用Dumpkcall prefile来获得时间。

      中断测试应用软件Intrtime.exe,在Windows CE标准版本收集中断分时延迟信息,应用软件在测试中控制系统时间。因此,当系统需要时间控制器时,是不合适使用的。例如,此应用程序不能与内核instrumented版本一起使用,因为它也需要时间控制。

      在Windows CE 2版(Beta版)测试响应,

      Intertime应用软件在odoSH3参考平台上运行1000次中断测试,内部运行58.98Mhz,外部为14.745Mhz外部频率,这个测试在一个标准的H/PC配置,它包括Windows CE所有模式和组合。仅有主操作系统进程进行(NK.exe, Filesys.exe, Gwes.exe, Device. EXE, Shell.EXE和Explover.EXE),在测试中无用户初始中断(触摸屏、键盘或其它应用),应用软件可报告下面的ISR和IST开始、最小和最大时间:

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top