`
izuoyan
  • 浏览: 9221323 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Windows CE 5.0实时系统介绍

阅读更多

目前,Windows CE从一款基本操作系统升级到体积小巧、组件化的硬实时嵌入式操作系统。尽管Windows CE具有与Win32相同的应用编程接口API),而且微软台式机和服务器操作系统也配备了此类接口Windows CE的底层操作系统架构和台式机的操作系统完全不同。Windows CE支持包括Win32MFCATL等在内的台式机应用开发结构,也支持使用.NET Compact Framework的管理应用开发,还支持当前实时嵌入式系统设计,提供操作系统必要之需的实时内核。本文中我们主要讨论用于验证Windows CE 5.0实时功效的操作系统工具。

众所周知,实时系统并不通过单一分析进行测试,即使单一分析可以证明实时系统的正确性。实时系统的测试是详尽讨论此问题的依据。您的工作就是建立起用户对解决方案的信任感。下文介绍的工具可以完整、实时地解释应用程序和操作系统之间的交互作用,它们有助于您加深对实时系统的了解。

尽管关于实时的定义还存在诸多争议我们还是来了解一下对它的定义。这里我引用comp.realtime FAQ的定义。实时系统的权威定义Donald Gillies如下

实时系统是这样一种系统,即其计算正确与否,不仅取决于计算逻辑是否正确,还取决于计算结果所花费的时间如果不能满足系统的时间限制,就会出现系统失败的情况。

因为集高速I/O、机器人技术和机械控制于一身的工业自动化应用对时间的要求最为苛刻。微软开始了解实时嵌入式操作系统的特殊社会要求。自1986以来,通用汽车动力公司(GMPTG)在制造应用中实施OMAC技术方面一直处于领先地位并且在后来促成了OMAC用户群的形成。他们一起对数百种应用进行评估后发现,大多数系统95%需要一毫秒或稍长的周期。一毫秒周期允许的变化幅度为10%或是100微秒(µs。这是基于200 MHz X86系统的Windows CE的设计目标,其在该平台上的平均响应时间为50 µsWindows CE达到或超过了95%的被评估的硬实时应用OMAC的要求。

大部分满足要求的工业自动化应用是由从一台机器发出的外部信号驱动的。此信号以中断形式发送给硬实时应用。微软鼓励Windows CE的开发人员尽可能在中断服务线程IST中置入更多的应用代码。这使OMAC抖动定义变为针对不超过100 µsIST延迟的时间限制。其余被评估的应用使用计时器创建其周期。这就需要一台延迟或抖动不超过100 µs1毫秒计时器。总之OMAC定义提出以下设计和测试要求

· Interrupt Service Thread (IST) latencies of no more than 100 µs latency.

· 1 millisecond timers with maximum of 100 µs latency.

· 中断服务线程IST延迟不超过100 µs

· 1毫秒计时器的延迟最长为100 µs

在了解了OMAC设计和测试要求后接下来让我们看看Windows CE中安装的工具。这些工具的用途是确定中断定时、应用执行动作、操作系统功能定时和时序安排定时。

区分实时系统和实时操作系统也很重要。实时系统包含硬件、操作系统和应用等所有元素。实时操作系统仅仅是构成实时系统的其中一个元素。如需了解更多信息请参阅微软Windows CE实时性能设计和优化

我们将介绍诸多工具和用途

· ILTiming。该工具用于确定平台的中断服务例程ISR和中断服务线程IST延迟。ISR延迟是指从硬件中断到第一次中断服务例程指令之间的时间间隔。而IST延迟是指从现有ISR到中断服务线程开始之间的时间间隔。

内核实时性能最重要的特性之一就是可以在指定的时间内实施中断。中断延迟主要指软件中断处理延迟即从外部中断到达处理器直到中断处理开始之间的时间间隔。

如果不发生分页操作,Windows CE中断延迟时间被限制于内存中锁定的线程。这样就可以计算最糟糕情况下的延迟时间ISR的启动和到IST的启动的总用时。通过计算ISRIST需时间可以确定中断处理以前的总用时。

ISR延迟

ISR延迟是指从IRQCUP中被设置到ISR开始运行时的时间。以下三个与时间相关的变量会影响ISR的启动

A = 中断在内核中关闭的最长时间。内核很少关闭中断,但如果将它们关闭,则关闭的时间长度会受到限制。

B = 在内核调度中断和ISR被实际调用之间的时间。内核使用该时间确定要运行什么ISR,并保存在继续之前必须保存的任何寄存器。

C = ISR 返回到内核和内核实际停止处理中断之间的时间。这是内核通过还原在ISR被调用之前被保存的任何状态(例如寄存器)来完成ISR操作的时间。

正在测量的ISR的启动时间可以基于系统中其他中断的当前状态进行计算如果中断正在进行,则计算要测量的新 ISR 的启动时间必须考虑到两个因素:所关注的中断已经发生之后将发生的较高优先级中断的数量,以及执行ISR所占用的时间。

Windows CE和原始设备制造商OEM都会影响执行ISR的时间。Windows CE的控制变量ABC都受到限制。

IST延迟

IST延迟是指从完成执行ISR即(通知线程IST开始执行的时间。以下四个与时间相关的变量会影响IST的启动

B = 内核调度中断和真正调用ISR的时间间隔。内核利用这一时间决定将要运行什么ISR,并保存在继续之前必须保存的任何寄存器。

C = ISR返回到内核和内核实际停止处理中断之间的时间。这是内核通过还原在ISR被调用之前保存的任何状态(例如寄存器)来完成ISR操作的时间。

L = Kcall内核调用)中的最长时间。

M = 调度线程的时间。

ISR返回到内核并且内核执行某些工作来开始执行IST之后最高优先级IST开始的启动时间。在ISR返回并通知IST开始运行之后,IST启动时间受所有ISR的总计时间的影响。下面的示例说明了所得到的启动时间

最高优先级IST启动时间 =

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 140.25pt; HEIGHT: 39pt" type="#_x0000_t75"><imagedata o:title="ist" src="file:///C:%5CDOCUME~1%5Czhanglan%5CLOCALS~1%5CTemp%5Cmsohtml1%5C08%5Cclip_image001.gif"></imagedata></shape>

Windows CEOEM都会影响执行IST所需的时间。Windows CE控制变量BCLM都是受限制的。OEM控制NISRTISR(N),它们可以影响IST延迟。

Windows CE还对IST添加了以下限制:链接ISRIST的事件处理只能用在WaitForSingleObject函数中。Windows CE防止ISR-IST事件处理被用在WaitForMultipleObjects函数中,这意味着内核可以担保触发事件的时间和释放IST的时间有一个上限。

· 计划程序计时分析OSBench该工具允许您收集计时样本通过执行调度性能定时测试测量内核的性能。

· 内核跟踪程序Kernel Tracker):此工具可以直观显示Windows CE .NET操作系统在目标设备上的执行状况。该工具可用于在实时环境下查看线程交互、内部关联以及系统状态信息。本文目的是检验线程和进程间的交互作用。

· 调用评测程序Call Profiler):此工具可用于确定代码的算法瓶颈。

设备中存在许多影响实时性能的因素,如硬件、驱动程序和应用。在本例中我们从应用级开始。运行于实时环境中的应用启动时就应该分配所有资源。所有内核对象进程、线程、互斥锁、临界段、信号和事件都按照需要分配到虚拟内存中。按需分配内存是不确定的因此,不能对操作系统完成操作的时间进行限制,所以它不能用于应用的实时执行中。

远程调用评测程序

实时系统不仅包括硬件和操作系统,日益增多的应用逻辑也运行于相同的硬件之上。因此,嵌入式设计中的应用代码可能存在失败风险。Windows CE不会强行命令IST在设备驱动程序环境中运行,IST仅是一个特殊的线程,因此在应用环境中可以运行IST线程。既然如此,该如何检验应用代码的瓶颈呢?当然,这可能会影响设备的整体性能。答案是:这正是Windows CE安装的工具 远程调用评测程序的功能该工具可解答下列问题:何时执行何种代码?何谓软件组件的交互?应用程序运行时,CPU在做什么?

为了证明这一点我采用构建、运行在Windows CE上的哲学家就餐问题应用。以下是解决过程:现在,五位哲学家(线程)围坐在圆桌前。每人面前放着一碗食物。哲学家们用一支筷子开始吃饭。哲学家就餐的前提是他必须有两支筷子(因此,五位哲学家中必须有一人奉献出一支筷子)。这时哲学家就必须找到一种能够共享筷子的方法,以保证大家都能吃到碗中的食物。

同样地,当多线程程序中有一个以上的线程(哲学家)竞争资源(食物)时,就有可能发生死锁或争执,当然这要取决于哲学家的饥饿程度!如果多个线程都在等待使用稀缺资源,就会造成等待时间的不确定性进而冻结所有应用。对实时应用而言这并不是个难题您可以选择远程调用评测程序运行应用就可以解决该问题。

远程调用评测程序可以在不同视图中显示调用信息,包括直观的调用图表。它会显示应用运行每个函数时花费的时间。显而易见这是处理视频/音频流的实时压缩/解压缩问题的最为有效的工具。下表显示的是远程调用评测程序应用中的视图。

1. 远程调用评测程序中的视图

视图

描述

顶端视图(Top X View

显示花费时间最长的函数或基于指定的定时标准计算的值。

模块概要视图

统计列出载入模块的数据以及进入每一个功能模块的情况。

调用树视图

显示函数调用路径的分级描述。

蝴蝶型视图

以列表格式显示反映主调用与被调用函数之间关系的数据。

调用图表视图

显示函数间的总的从属关系。

调用跟踪与函数跟踪视图

显示数据栅格以反映函数进入和退出事件的实际与计算的定时值。

下图显示的是哲学家应用的调用图表视图。此图显示35%的应用时间花费在函数Eat( ) 上。也许应该了解一下函数的内容!

<shape id="_x0000_i1026" style="WIDTH: 256.5pt; HEIGHT: 262.5pt" type="#_x0000_t75"><imagedata o:title="RemoteCallTracker" src="file:///C:%5CDOCUME~1%5Czhanglan%5CLOCALS~1%5CTemp%5Cmsohtml1%5C08%5Cclip_image002.jpg"></imagedata></shape>

1. 远程调用评测程序

您也许会问,要运行远程调用评测程序,需要向应用代码中添加什么。实际上您根本无需更改所有代码,而仅需要用其它标志函数WINCECALLCAP=1进行编译。

调用评测库为应用开发人员提供了一幅独特的应用逻辑执行过程细节图。将该工具用于低速测试过程以培养客户对应用代码的信任感。

内核跟踪程序Kernel Tracker):

远程内核跟踪程序可用于检测运行设备上的进程、线程和中断之间的交互作用关系。下面是一些内核跟踪程序中集成的样本代码。实例中的应用运行的是Windows CE设备的文件系统其中一个文件夹在台式机放置释放文件此应用为驻留在台式机中的每个文件生成了一个KITL内核独立传输层中断。因此我们可以在运行的操作系统镜像中清晰地观察应用与中断间的交互作用也可以确定应用线程运行与KITL中断处理间的时间增量。

作为一个用户界面内核跟踪程序被划分为三个区域左窗格显示中断和进程中窗格显示线程/进程间的交互作用右窗格未显示字)中的内容是对中窗格使用的符号的解释。我们可以在镜像底部清楚地看到WalkTree应用正在运行但看不到在应用和内核环境中花费的时间。
分享到:
评论

相关推荐

    Windows CE 5.0模拟文件

    Windows CE 5.0是一款由微软开发的嵌入式操作系统,它是Windows Embedded家族的一部分,主要用于掌上设备、工业控制设备和汽车信息系统等。这个“Windows CE 5.0模拟文件”很可能是一个能够让用户在非Windows CE设备...

    Windows_CE_5.0.rar_windows ce 5.0

    Windows CE 5.0,全称为Windows Embedded Compact 5.0,是微软公司开发的一款嵌入式操作系统,主要用于掌上设备、工业控制设备、车载信息娱乐系统等非传统的个人计算机环境。这款操作系统在2006年发布,是Windows CE...

    嵌入式操作系统原理 -Windows CE 5.0-微软嵌入式教学.rar

    1. 实时性:虽然不是硬实时操作系统,但Windows CE 5.0通过优化调度算法提供了较好的软实时性能,能满足许多实时应用的需求。 2. 文件系统:支持FAT、NTFS以及VFAT等多种文件系统,方便数据存储和交换。 3. 网络...

    嵌入式Windows CE 5.0驱动程序开发

    通过对驱动程序概念的理解,结合Windows CE 5.0的具体特点,详细介绍了驱动程序的分类、开发流程以及测试方法。此外,还提供了实际操作指南,帮助开发者更好地理解和掌握Windows CE 5.0驱动程序的开发技巧。 #### 1...

    Windows CE 5.0 小工具

    在Windows CE 5.0中,小工具通常指的是桌面增强应用,它们能够实时显示信息,如天气预报、时钟、日历、新闻摘要等,而且用户可以自定义布局以适应个人需求。 小工具的开发基于Windows CE 5.0的SDK(软件开发工具包...

    Windows CE5.0开发实例

    Windows CE5.0是一款专为嵌入式设备设计的操作系统,它为开发者提供了丰富的功能和高度可定制性,使得在各种小型硬件平台上构建应用程序成为可能。本实例教程主要针对Symbol公司的MC3000系列设备进行,这是一系列专...

    Windows CE 5.0 Virtual Machine for VMWare

    Windows CE 5.0 是微软推出的一款嵌入式操作系统,它是Windows家族的一员,专为各种小型设备和嵌入式系统设计。这个“Windows CE 5.0 Virtual Machine for VMWare”是为了在VMware虚拟机环境中运行Windows CE 5.0而...

    Windows CE 5.0 模拟器

    Windows CE 5.0 是一个基于微内核的实时操作系统(RTOS),设计用于小型设备和嵌入式系统,如掌上电脑、工业控制器、车载信息娱乐系统等。其核心特性包括: 1. **模块化设计**:Windows CE 5.0 构建在模块化架构上...

    windows CE5.0 开发手册

    文档可能包含了针对该硬件平台的驱动编写、性能优化以及实际应用示例等内容,帮助开发者更好地在YC2440上部署和运行Windows CE 5.0系统。 总的来说,《Windows CE 5.0 开发手册》是学习和实践Windows CE嵌入式开发...

    Windows CE 5.0 ROM 应用程序集合

    Windows CE 5.0 ROM 应用程序集合,最强大的 EXE ROM 程序,其中包含 wceload.exe cab 安装程序,给没有cab安装程序的导航仪wince5系统使用,使用时需要关联cab文件,这个用注册表就可以了。 cab1.reg cab2.reg 注册...

    Windows Embedded从入门到精通系列课程(4):Windows CE 5.0/Windows Mobile调试不性能优化

    在本课程“Windows Embedded从入门到精通系列课程(4):Windows CE 5.0/Windows Mobile调试与性能优化”中,我们将深入探讨Windows CE 5.0和Windows Mobile操作系统的核心概念,以及如何利用调试工具进行性能调优。...

    WindowsCE5.0操作系统下基于PXA270的蓝牙驱动的实现.docx

    ### Windows CE 5.0 操作系统下基于 PXA270 的蓝牙驱动实现 #### 摘要 本文探讨了在 Windows CE 5.0 嵌入式操作系统环境中,利用 Intel PXA270 处理器作为核心硬件平台,实现蓝牙驱动程序的方法。该文针对蓝牙技术...

    Windows CE5.0开发资料

    Windows CE 5.0是微软针对嵌入式设备开发的一款操作系统,它是Windows家族的一个轻量级成员,主要用于掌上设备、工业控制、汽车电子等领域。Windows CE 5.0的核心特性包括: 1. **开放性和可扩展性**:Windows CE ...

    windows ce 5.0 flash播放器

    Windows CE 5.0 Flash 播放器是一款专为基于Windows CE操作系统的设备设计的多媒体应用程序,主要用于播放Adobe Flash内容。Windows CE是微软开发的一个嵌入式操作系统,广泛应用于掌上电脑、移动电话、工业设备等。...

    Windows CE 5.0 BSP移植

    Windows CE 5.0是一个32位的嵌入式操作系统,具备高可靠性和实时性,能够在多种处理器架构上运行,包括ARM。其BSP通常由Bootloader、OAL(OEM适应层)、设备驱动程序和配置文件等组成。 Bootloader是系统启动时的第...

    windows CE5.0

    Windows CE 5.0,全称为“Windows Embedded CE 5.0”,是微软公司开发的一个嵌入式操作系统,主要用于小型设备和智能设备。这个版本的CE系统是在2004年发布的,它提供了许多功能和改进,以满足当时对嵌入式计算的...

    基于S3C2410的Windows CE 5.0 BSP移植

    Windows CE 5.0则是微软针对嵌入式设备提供的实时操作系统,具备跨平台兼容性,特别支持ARM架构,这使得S3C2410成为理想的硬件平台。 BSP通常包括Bootloader、OEM Adaptation Layer(OAL)、设备驱动程序和配置文件...

    Windows 7上安装wince5.0/6.0及SDK模拟器

    Windows CE是一款实时操作系统,主要用于开发各种嵌入式设备,如手持设备、工业控制器等。通过安装Windows CE 5.0/6.0及其SDK模拟器,开发者可以在PC上模拟目标设备的行为,从而进行应用程序的开发和测试。 #### ...

    Generate Windows CE 5.0 Image with ICOP_Vortex86_50

    本指南通过实践实验室的方式详细介绍了如何使用ICOP_Vortex86_50板载支持包在Vortex86平台上创建、定制、构建并下载Windows CE 5.0镜像的过程。该指南适用于希望了解Windows CE 5.0操作系统定制流程的专业人士。本篇...

    windows ce 5.0

    windows ce 5.0注册码可以用本站提供的极速一键重装系统里还原镜像功能恢复,也可用U盘系统或其他同类软件恢复镜像!

Global site tag (gtag.js) - Google Analytics