当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]MS Windows CE的实时系统

介绍

MicrosoftWindowsCE

快速反应的嵌入式应用常常管理严格的时间反应。例如,制造过程控制,高速的数据采集设备,电讯交换设备,医用设备,空中“有线”控制,武器发射装备,空间航行和导航,实验室,实验控制,汽车发动机控制,机器人系统。

为保证这种功能,就意味着不仅需要计算精确性,还有结果的时间性,此种应用必须在指定的时间参数内做出反应。

实时系统的广义定义是“对任何外部刺激,计算机做出及时反应是至关重要的系统”,标准定义在Internetnewsgroupcorprealtimegroup中。实时定义为:一个实时系统它的计算正确性,不仅依靠于计算逻辑上的正确,还包括及时的产生结果。如果没有达到系统时间限制条件,系统也是失效的。

搞清楚实时系统和实时操作系统(RTOS)的区别至关重要,实时系统代表所有系统组成设备——硬件,操作系统和应用——它需要达到系统的要求,实时操作系统(RTOS)只是整个实时系统的一个组成部分,它必须提供足够的功能以确保整个实时系统达到要求。

同样,搞清快速操作系统和实时操作系统之间区别,也很重要,对于一个RTOS虽然达到全面要求十分有用,但并不是它自己达到这种要求。Internetneusgronpcornp.realtime列举了作为一个实时操作系统,必须达到的要求:

OS(操作系统)必须是多线程和优先级之分。

OS必须支持线程优先级。

一个优先级继承的系统必须存在。

OS必须支持可预测的线程,同步发送机理。

另外,OS的行为必须是可预测的,这意味实时系统的开发者必须对系统中断级,系统调用和分时了如指掌:

必须知道OS和设备驱动器的中数据匹配最大时间。

设备驱动器用来处理一个中断最大时间和关于这些驱动器的中断申请信息必须清楚。

中断响应(从中断到运行时间),必须可预测并满足功能要求。

每次系统调用时间必须可以预测,并且独立于系统的对象数目。本篇论文论述了微软WindowsCE操作系统是如何达到一个实时系统的要求,更有意义的是,WindowsCE保证一个时间的上限,它在收到中断后开始一个实时的优先级线程。本论文论述了对特定参考平台的中数据响应时间,参考为有HinathiSH3的微处理器的“Odo”平台。

MicrosoftWindowsCE

概论

微软WindowsCE被设计成针对小型设备(它是典型的拥有有限内存的无磁盘系统)的通用操作系统。WindowsCE可以通过设计一层位于内核和硬件之间代码来用设定硬件平台,这即是众所周知的硬盘压缩层(HAL),(在以前解释时,这被称为OEMC(原始设备制造)适应层,即OAL;内核压缩层,即KAL。以免与微软的WindowsNT操作系统HAL混淆)

不象其它的微软Windows操作系统,WindowsCE并不是代表一个标准的相同的对所有平台适用的软件。为了足够灵活以达到适应广泛产品需求,WindowsCE采用标准模式,这就意味着,它能够由一系列软件模式做出选择,从而使产品定制。另外,一些可利用模式也可作为其组成部分,这意味着这些模式能够通过从一套可利用的组份做出选择,从而成为标准模式,通过选择,能够达到系统要求的最小模式,OEM能够减少存储脚本和操作系统的运行。

WindowsCE关于VC++5.0开发系统嵌入式工具包,提供系统库、工具、文本和样本代码,以使OEMS能够对特定的硬件平台使WindowsCE标准定制。嵌入式工具包也包括设备驱动包(DDK)和软件开发包(SDK),DDK提供了关于写驱动器的附加文本,SDK提供库、头文件、样本代码、文本以允许,开发者对基于WindowsCE的平台进行写操作。WindowsCE提供了相同的程序界面,以用来为其它的视窗操作系统开发功能,例如,WindowsCE版本1.01支持大约1000个微软的Win32API函数的其中500个。这就意味着大量不同类的工具,第三方书籍,关于Win32开发者训练教程,可以替代或为WindowsCE系统的开发者所用。

实时系统的开发者能够使用,关于VDFF5.0的嵌入式工具包,以把操作系统转移到特定的平台,并为这个平台开发附加设备驱动器和实时功能。

线程和线程优先权级

WindowsCE是有优先级的多任务操作系统,它允许多重功能、进程,在相同时间系统中运行WindowsCE支持最大的32位同步进程。一个进程包括一个或多个线程,每个线程代表进程的一个独立部分,一个线程被指定为进程的基本线程,进程也能创造一个未定数目的额外线程,额外线程实际数目,仅由可利用的系统资源限定。

WindowsCE利用基于优先级的时间片演算法以安排线程的执行,WindowsCE支持八个不同的优先级,由0到7,0代表最高级,它在头文件Winbasw.h中定义。

优先级描述

0

(最高级)关键的线程优先级

(最高优先等级)

1最高线程优先级

2高于通常的线程优先级

3通常线程优先级

4低于常规线程优先级

5最低线程优先级

6高于IDLE的线程优先级

7

(最低)IDLE线程优先级

(最低优先级)

级别0和1通常做为实时过程和设备驱动器,级别2-4做为线程和通常功能,级别5-7做为是低于其它功能级别,注意级别6是目前状态并有稳定联接。

优先权唯一的取决于线程优先级,拥有高级优先权的线程安排优先运行,同一优先级的线程,以循环优先先级方式运行,即每个线程接受定制的时间或时间片,定量时间默认值为25毫秒(WindowsCE2.0支持在MIPS平台更改定量时间)。较低优先权的线程,要直到较高级线程完成之后再运行,也即直到他们或者放弃或停止。一个重要的例外是最高优先级的线程(级别0,关键时间优先级)不与其它的线程共享时间片,这些线程连续执行直到他们完成。不象其它的微软窗操作系统,WindowsCE是固定不能改变,它不匹配基于这引进优先级的中断,他们能够暂时改动,但仅能通过WindowsCE内核以避免所谓的的“优先权倒置”。

优先权倒置指的是当它们同时竞争同一资源时,低优先级的线程,阻碍了高优先权线程对资源的利用。为了改正这种局面并解放较高优先权的线程,WindowsCE允许低级优先权继承,严格的线程优先权,并且运行较高优先级直到它释放所用资源。

[!--empirenews.page--]

例如,如果一个线程在最高优先权运行试图莸取由低级优先权占有的互斥体,低级优先权的线程变成高级优先权,并且运行直到它释放互斥体。优先权倒置适用于系统的所有线程。例如,甚至在优先级别1运行的内核线程能转成级别0,如果优先级0线程运行内存分页代码,将引起块失误。

基于优先级的多任务设计,保证运行在最低级的线程在一个预所知时间段执行。本论文在后面讨论设定响应,对于指定的平台和公式,并由其它的平台获取数字。在DAK和SDK的工具,显示了线程状态和优先级别,并描绘指定实时系统操作轮廓。

线程同步

实时系统必须保证进程和线程同步,例如,如果实时应用的一部分在另一部分获得最多当前数据前即完成,此应用的管理进程可能不稳定,同步将确保在应用线程间交换正确。

如同其它的Windows操作系统一样,WindowsCE为线程同步提供了一个丰富的“等待对象”,这包括关键部门、事件、互斥体,些等待对象,允许一个线程减缓它的运行并且等待直到指定事件发生。

WindowsCE将互斥体、关键部分、事件请求按“先入先出,优先级(FIFO)”顺序排列:不同的先入先出顺序序列定义成八个不同的优先级,在给定的优称级的线程请求,将被放在优先级列表末尾,当优先级倒置出现时,调度程序调整这些序列。

除了等待对象,WindowsCE支持标准的Win32时间API函数,这些来自内核的应用,软件中断将获得时间间隔,它被用来管理实时应用。通过调用GetTickCont函数,它能够返回几毫秒,线程能够使用系统间隔时间。关于更详细的分时信息,WindowsCE内核也支持Win32API函数QueryPerformanreCounter和QueryPerFormanteFrequency。OEM必须为这些调用提供硬件和软件支持,它提供一个较高的时间分辨力和OAL界面其它方面。

其它方面考虑

WindowsCE提供了一个重要的存储系统,例如,当目前某些运行WindowsCE的平台提供4MB的物理内存,WindowsCE支持一个重要的2GB的地址空间,每个进程联接在它自己的32MB物理空间上,当它需要产生内存分页中断(这可能影响线程执行时间),物理内存进行线程代码或数据内存分页。

内存分页输入输出,将比实时进程优先级低。在实时进程中内存分页仍可自由出现,但这要确保后台的实际内存管理赢得实时系统优先权。

实时线程应该锁存在内存中,以防止这些无关紧要的内存分页阻碍其运行,它们可能会占用实际内存管理系统。

WindowsCE允许映射,这将阴止多个进程共享同一物理内存,结果将会导致协同进程间或驱动器与映射快速的数据传送,内存映射能够戏剧性的增强实时操作。

中断处理:IRQSISRS和ISTS

实时应用被设立在指定的时间间隔内,对外部事件做出反应,实时应用使用中断做为一种确保外部事件由操作系统获知的方式。在Windows中,内核和OEM适应层(OAL)被设定成使系统其它部分的中断和调度最优化。WindowsCE平衡操作,并通过把中断过程分成两部分而使执行更加容易:它分为中断服务程序(ISR)和中断服务线程(IST)两部分。

每条硬件中断申请线(IRQ),与一个ISR相连。当中断成立和中断出现时,内核为此调用寄存的ISR,ISR为中断处理的内核模式部分尽可能短的保存。它首先将内核放在适合的IST上。

ISR执行它的最小处理并返回一个ID号到内核,内核检查返回的中断ID号,并设置相关事件,中断服务线程等待事件。当内核设置事件时,IST停止等待并开始执行,附加的中断进程,中断处理大部分实际上出现在IST中,两个最高的线程优先权(级别0和1),通常指定为ISTS,保证这些线程运行得足够快。

正如前面所说,处在最高级的ISTS不能被其它的线程占用,这些线程持续执行直到它们截止或放弃。

WindowsCE不能支持群体中断,这就意味着当以前一个中断处理中,另一个不同接受服务,也就是当内核位于ISR时如果中断出现,在为新的IRQ开始ISR前它将一直执行直到ISR结束,这将引起硬件中断和ISR开始之间的延迟,拖延和响应时间中断响应。

中断响应

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

WindowsCE中断响应时间是针对锁存在内存上的线程(当内存响应不存在时)。这使得计算最差事件响应成为可能——中断服务程序(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被设成最高级,这有样ISRSdISR-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(原始设备制造商)为特定操作系统设计传统WindowsCE版本。OCM利用目标操作环境限制使系统设计最佳化。

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

确保WindowsCE的实时操作

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

由WindowsCE开发组进行内部的检查或分析内核代码,

OEM和ISV(独立软件销售商)利用一些将在未来的WindowsCE版本嵌入式工具包(forVCFT)提供工具来确保特定配置。

WindowsCE关于VC++的嵌入工具包包括以下工具:

(一个对于分时研究的内核的工具版本和Intrtinrt.ext应用软件来观察,中断过程的最大、最小、平均时间。

微软也能开发其它的针对顾客需要的分时工具。

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

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

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

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

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

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

在WindowsCE2版(Beta版)测试响应,

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

响应最大、最小值(1000次测试)

ISR开始1.3-7.5微秒

IST开始93-275微秒

大多数测试结果,分布在最小值数值附近,当测试ISR开始时间时,最小值1.3和1.6微秒,出现了293和549次,共占测试的84%,类似的超过90%的(1000次中923)start-of-IST测试出最大响应为102微秒或少一些。

Intertime应用软件也使用一个用户指定数目的系统对象来测试ISR和IST开始时间。虽然工作十分初级,但它验证了ISR开始时间与系统对象数目无关,测试设为1000次(除了特别更改)并且线程优先权为5或7。

ISR开始最大值后台线程、数目(每个线程一个事件)优先级

8.407

8.65(注:仅100次)7

9.010(注:仅100次)5

14.8105

19.2105

17.0107

12.8205

11.020(注:仅100次)7

10.0507

15.01005

15.61007

这数值不是系统对象数目的函数,不同的值可能由于中断出现时内核状态,开发组目前正在研究以鉴定ISR开始最差时间值。

由这些结果向回推,假定ISR开始最小值代表最好情况。此时,dISR_Current和Sum(dISR_Htgbor)为0,最小的value1=ISR开始值=1.3微秒,类似的设定最好情况时,Sum(dIST)和Sum(dISR)为0,Value最小值=.IST开始值=93微秒,单从测验结果看,它是不能确定,valume1或value2最大值。

附加的分时信息能够由instrumentedkernel收集,对于一个最差情况在IST开始前花费时间valume2,能由下列公式计算:

Value2=dkCall+dNextThread

dKcall=.内核调用时间;当消除优先级时,花费在内核的一部分时间量。

DNextThread=Next.Thread内核调用时期。花费在IST中时间量。

实际上,在0级别线程调度要比NextThread调用快,但此公式能估计出上限。

下面表格显示了用instrumentedKernel进行初步测试时最差事件结果,这些测试条件与Intrtime测试相同。

内核调用模型最大值(ad-hoc.testing)

最大时间值(所用内核调用)266微秒(Learecrite)

NextThread237微秒

总值503微秒

Instrumentedkernel显示这些条件下value2上限为500微秒。这个值为两个最差事件总时间,远远超过了由Intritime应用程序得到的结果,也大于实际最差事件时间。例如:通过Nextthread调度一个优先级为0的线程,不会导致最差事件,这意味着500微秒是一个高于实际的最差事件值的保守值。

IntertimeUtility对于从总体上观察最差事件值十分有用,InstrumenttedKemel对于获得可能最差事件的值,通过内核描绘出所有响应原因——一个IST在这些事件运行,但在内核非优先部分运行执行时,将受阻碍,系统的最差事件响应可由每一部分的最差事件总和计算。

注意本论文中所有测试结果均基于内部WindowsCE的beta版,目前存在的操作系统和应用将继续得到修正,并且进行附加测试以获得在不同操作条件下系统操作,这些数值将继续被更新并出版,以反思目前的操作系统版本。

总结

微软WindowsCE内核设计以达到RTOS最小要求,以使WindowsCE用在许多不同类型的嵌入式和实时系统作为操作系统;

WindowsCE的多线程和优先级,WindowsCE支持个人线程优先级;

WindowsCE支持优先权继承程序,以便调整优衔级别以修改优先权颠倒;

WindowsCE支持一个可预测的线程同步机理,包括等待对象,如互斥体关键部分,命名或未命名的事件对象,它基于线程优先权排序。[!--empirenews.page--]

WindowsCE也支持与系统控制器的联连:

OEM能够控制类由系统支持的中断处理,即通过执行ISRS和ISTS,它可弥补中断处理软件;

OEM完成在所有映射到中断ID号的IRQS,并且它与中断处理软件相联系(ISR和IST),描绘工具和应用软件可以利用记录处理中断最大时间。

中断响应是可预测和有限制的,当优先权取消时,上限即为花费在内核中时间总量,匹配转化时间,和由OEM执行的ISRS和ISTS申请处理时间。

每个系统调用的时间是可预测的,并与系统对象数目无关,

利用instrumenttedkernel系统调用时间能够保证WindowsCE内核设计保证中断和它们相关线程响应,可预测,并且有限,这使得对于许多实时应用更适合未来的WindowsCE嵌入式工具包(关于VC++)将包括中断分时功能和允许OEM检查,并将分时操作标准化。

哪里可得到WindowsCE更详细信息

关于VC++5.0的微软WindowsCE嵌入式工具包

OEM的WindowsCE2.0的应用包

微软公司操作分析和内存利用微软的WindowsCE1.01、Alpha1997.2.20.

JasknBlack和Jon.Christhansen,软件的WindowsCE显示驱动器和硬盘1997.9.

Jon.Christiasen,微软WindowsCE图色特色1997.9

Franklin,Fite.Jr.和RandyKath微软WindowsCE2.0嵌入式开发

JohnMurcy,微软WindowsCE内存使用1997.9

DaridPefferin,Win32程序模式:嵌入式软件开发入门1997.9

DaridPellerin,WindowsCE的VC++5。0嵌入式工具包介绍1997.9

Guy,Smith,WindowsCE通信方式1997.9.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

好用、高效的多合一传感器开发工具,支持给新一代高科技 MEMS 传感器产品开发应用软件

关键字: 传感器 Windows MacOS

双系统将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对双系统的相关情况以及信息有所认识和了解,详细内容如下。

关键字: 双系统 Windows Linux

今天,小编将在这篇文章中为大家带来Windows 11系统的有关报道,通过阅读这篇文章,大家可以对Windows 11系统具备清晰的认识,主要内容如下。

关键字: Windows 操作系统

欧莱雅"明日创变者大会"暨"有意思青年"20周年颁奖仪式盛大举行 上海2023年9月23日 /美通社/ -- 9月22日,欧莱雅"明日创变者大会"暨"...

关键字: CE AN 美的 数码

上海2023年9月22日 /美通社/ -- 近日,盟科药业宣布美国FDA授予康替唑胺片和MRX-4(contezolid acefosamil)用于治疗中度至重度糖尿病足感染且不伴有骨髓炎适应症合格传染病产品(QIDP)...

关键字: FDA CE SI ABS

重庆2023年9月20日 /美通社/ -- 近日,国际独立第三方检测、检验和认证机构德国莱茵TÜV大中华区(以下简称"TÜV莱茵")亮...

关键字: 摩托 测试 动力电池 CE

北京2023年9月18日 /美通社/ -- 9月15日,由众合云科旗下51社保举办的CESIS第十一届企业社保发展论坛在北京四季酒店举行。 本次论坛以"聚焦价值,合规发展"为主题,邀请到加多宝、数坤...

关键字: SAAS 联想 CE AI

酒店以古今交融的设计与细致入微的服务精心缔造丰富多元的奢华体验,盛邀宾客共赴一场由内而外的全然焕活之旅 上海2023年9月16日 /美通社/ -- 万豪旅享家旗下31个卓越酒店品牌之一的JW万豪酒店宣布西安高...

关键字: RIO IoT CE ARRI

(全球TMT2023年9月8日讯)亚马逊云科技日前在一年一度的存储服务创新日上宣布推出诸多亚马逊云科技存储服务的新功能,其中重点包括为支持人工智能/机器学习、大数据分析等数据密集型工作负载进一步提升Amazon Ela...

关键字: 亚马逊 FOR IC Windows

百强品牌总价值连续三年突破万亿美元大关,腾讯、阿里和茅台蝉联前三甲 上海2023年9月8日 /美通社/ -- 今日,2023凯度BrandZ中国品牌盛典以“品牌升维 · 行稳致远&r...

关键字: AN MDASH CE 人工智能
关闭
关闭