WINCE系统
- 格式:doc
- 大小:54.50 KB
- 文档页数:8
WinCE操作系统WinCE操作系统是通用型的嵌入式操作系统,它是一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统,它是精简的Windows 95,Windows CE的图形用户界面相当出色。
它1996年开始发布Windows CE 1.0版本,2004年7月发布了Windows CE .NET 5.0版本,目前用得最多的是Windows CE .NET 4.2版本,其发展速度也是很快的,功能上自不必描述,它的主要应用领域有PDA市场、Pcket PC、Smartphone、工业控制、医疗等。
就WinCE来讲,你无法买到WinCE这个操作系统,你买到的是Platform Builder for 4.2的集成开发环境,我们也简称为PB,利用它你可以剪裁和定制出一个符合你自己需要的 4.2的操作系统,因此,我们说的操作系统实际上完全是由自己定制出来的,这就是嵌入式操作系统最大的特点。
Windows CE具有模块化、结构化和基于Win32应用程序接口和与处理器无关等特点。
Windows CE不仅继承了传统的Windows图形界面,并且在Windows CE平台上可以使用Windows 95/98上的编程工具(如Visual Basic、Visual C++等)、使用同样的函数、使用同样的界面风格,使绝大多数的应用软件只需简单的修改和移植就可以在Windows CE平台上继续使用。
Windows CE并非是专为单一装置设计的,所以微软为旗下采用Windows CE作业系统的产品大致分为三条产品线,Pocket PC(掌上电脑)、Handheld PC(手持设备)及Auto PC。
WindowsCE版本主要有1.0、2.0、3.0、4.0、4.2、5.0 和6.0WINCE1.0是一种基于Windows95的操作系统,其实就是单色的Windows95简化版本。
技术支持、直接资助等手段聚集了大量合作厂商,使WinCE类的PDA 阵容越来越强大。
一、概述●CPU:三星公司的ARM9主流芯片S3C2410。
●动态存储器:32MB,芯片HY57V641620。
●海量存储器:64MB,芯片K9F1208。
●以太网:10M,芯片CS8900。
●USB:1个主设备,1个从设备,主板集成。
●串口:1个RS232电平。
●电源:DC5V。
二、S3C2410简介●内核:ARM920T。
●工作电压:内核1.8V,IO电压3.3V。
●工作频率:最高266MHz。
●内部存储器:1、16K D-Cache。
2、16k I-Cache。
●扩展存储控制器:1、地址空间:128M/BANK,总共1G BYTE。
2、数据总线宽度:8/16/32可编程设定。
3、总空间分8组,其中6组可配置成ROM、SRAM等。
另外2组可配置成ROM/SRAM/SDRAM。
4、BANK0-BANK6起始地址固定,BANK7可编程设定。
5、可编程设定各个组的操作时序。
6、支持外部等待信号,可插入等待周期。
7、支持各种ROM启动。
8、在低功耗状态下,支持DRAM/SDRAM的自动刷新。
●时钟和电源管理1、片上MPLL和UPLL。
2、可通过软件给不同的功能电路分配不同的时钟。
3、4种电源管理模式:Normal、Slow、Idle、power-off。
4、电源唤醒功能。
●中断控制器1、55个中断源(看门狗、5个定时器、9个串口、24个外部中断、4个DMA、2个实时时钟、2个模数转换、IIC、同步串口)。
2、可设置外部中断触发为电平触发或边沿触发。
3、可设置电平和边沿触发的优先级。
4、支持快速中断请求。
●定时控制器1、4个带PWM功能的定时器和1个供DMA或中断使用的定时器。
2、可编程设置定时器的占空比、频率和极性。
3、PWM切换延时控制器。
4、支持外部时钟。
●实时时钟控制器1、支持秒、分、小时、日、月、年、星期。
2、时钟频率:32.768KHz。
3、可产生告警中断。
4、可产生时间节拍中断。
●通用输入输出控制器1、24个外部中断源。
Windows CE 嵌入式系统Windows CE是Microsoft公司的嵌入式操作系统产品。
它是一个紧凑、高效和可扩展的操作系统,具有多线程、多任务、确定性的实时和完全抢先式优先级的操作系统环境,适合于只有有限硬件资源的硬件系统。
操作系统的定制采用模块化设计方式,便于用户的使用。
支持Win32 API和MFC,具有Windows程序设计经验的用户可迅速掌握其编程方法。
第一章绪论BSPBSP是介于主板硬件和操作系统之间的一层,也可以说是操作系统的一部分,主要目的是为了支持操作系统,使之能够正常地在主板上运行.“嵌入性”、“专用性”和“计算机系统”是嵌入式系统的三个基本要素。
一般情况下,嵌入式操作系统可分为两类:一类是面向控制和通信等领域的实时操作系统,如WinRiver公司的VxWorks、ISI公司的pSOS、QNX公司的QNX和ATI的Nucleus等.另一类是面向消费电子产品的非实时操作系统,Windows CE是一个实时操作系统.实时支持功能在以下几个方面提升了Windows CE的性能.(1)支持嵌套中断(2)允许更高优先级别的中断首先得到响应,而不是等待低级别的中断服务线程(IST)(3)更好的线程响应能力(4)对高级别中断服务线程的响应时间上限的要求更加严格,在线程响应能力方面的改进,可帮助开发人员掌握线程转换的具体时间,并通过增强的监控能力和对硬件的控制能力帮助开发人员创建更好的嵌入式应用程序.(5)更多的优先级别,256个优先级别可使开发人员在控制嵌入式系统的时序安排方面有更大的灵活性.(6)更强的控制能力,对系统内的线程数量的控制能力可使开发人员更好地掌握调度程序的工作情况.5 丰富的多媒体和多语言支持第二章Windows CE的体系结构和功能2.1 Windows CE的层次结构2.2 进程、线程与调度2.3 内存管理2.4 存储管理与文件系统2.5 用户界面与图形系2.1.1 微内核结构Windows CE属于比较典型的微内核操作系统在内核中仅仅实现进程、线程、调度及内存管理等最基本的模块,而把图形系统、文件系统及设备驱动程序等等都作为单独的用户进程来实现.这样做显著地提高了系统的稳定性和灵活性.操作系统的结构可分为单体内核结构和微内核结构.传统的UNIX 是单体内核操作系统的代表.单体内核操作系统将图形、设备驱动及文件系统等功能全部在操作系统内核中实现,运行在内核状态和同一地址空间.其优点是减少了进程间通信和状态切换的系统开销,获得较高的运行效率;缺点是内核庞大,占用资源较多且不易剪裁,一旦每个驱动程序出错,就会导致整个系统的崩溃,系统的稳定性、安全性不好.与此相反,微内核系统在内核中只实现那些必须由内核实现的基本功能,而将图形系统、文件系统、设备驱动及通信等功能在内核之外,以系统服务的形式提供各种功能.这种结构的优点是有一个精炼的内核,便于剪裁与移植,而且由于系统服务程序运行在用户地址空间,因而个别驱动程序的错误不至于导致整个系统的崩溃;其不足之处是在运行中用户状态和内核状态频繁地切换,从而导致系统效率不如单体内核.微内核结构用一个水平分层的结构代替了传统的纵向分层的结构。
如何在wince系统上使用远程调试工具一、硬件要求:1、PC机一台,需要备有网口2、安装wince的主板二、软件要求:1、需要在PC机上安装EVC4.0或者Platform 50.(4.2,6.0版本也可以)2、安装SDK包3、确保主板的wince能够启动且网卡正常注:在安装过程中,建议将杀毒软件和防火墙关闭,以免误操作三、连接主板:将PC机的网口与主板上的网口连接,设置成同一网段的IP地址四、使用远程调试工具步骤:1、启动主板,进入wince系统2、在主板上设置正确的IP4、在PC上ping下网口是否通5、打开EVC编辑器,选择对应的SDK包6、在选项tools下,选择config Platform Manager7、选择后,如图:例如:使用的是gangdi这个sdk包,点击gagndi Device,选择属性在transpor 选择TCP/IP Transport for Windows CE,点击左侧Configure8、将Fixed port选上,输入5000,然后点击OK9、在Startup 选择Manual Server,点击OK10、在Tools选择一个远程工具(例如Remote Registry Editor)11、点击gangdi Device点击OK,出现下图:12、在wince系统下,点击开始,输入cmd,输入cemgrc.exe /s /t:tcpipc.dll /q /d:192.168.0.2:5000,回车正常的话,光标一直在下面闪烁13、在Manual Server-Action 框下点OK,这样就连接成功,可以看到Remote Registry Editor,如下图。
基于SamArmDvk 9 II开发板的WINCE系统定制与安装2010-08-11 15:40基于SamArmDvk 9 II开发板的WINCE系统定制与安装一、前言嵌入式系统是一种嵌入其他设备和装置内部的系统,不以独立的形式出现。
嵌入式系统根据被嵌入的主体设备和装置的具体需要对本身的软硬件系统进行合理有机的裁剪,是适应主体设备和装置应用的专业计算机系统。
嵌入式系统包括软件和硬件两部分,硬件包括微处理器、存储器、外围设备、I/O接口和图形控制器等,其中微处理器是核心部分;软件包括嵌入式操作系统和应用程序,其中嵌入式操作系统是重要组成部分。
嵌入式系统和一般PC系统的最大不同在于它是面向特定主体设备和装置应用的计算机系统。
它的设计和应用一般需要实时,快速地满足某一个特定的应用要求,功能单一、简单,兼容性不高;具有实时响应、多任务处理、小体积、低功耗和高集成度的特点.同时,嵌入式与主体系统紧密结合应用在不同行业中,是一种技术密集、资金密集、发散性高、与应用行业一起发展的系统,生命周期比一般Pc系统要长.在具体的使用和开发方面,嵌入式系统的软件一般都固化在存储器或单片机中,而不是存储在磁盘等载体中;同时嵌入式系统不具备自举开发能力,必须具备专门的开发软件和工具才可以对嵌入式系统进行修改和开发.二、WINCE.net操作系统的开发与内核定制工具嵌入式操作系统是嵌入式系统的重要组成部分,具有可定制性、可移植性、实时性和低资源占有的特点.WINCE.net就是由微软公司推向市场的一款32位、多线程和多任务的嵌入式操作系统,具有良好的网络通信,图形管理,多媒体管理功能,非常适合小型智能移动设备,即典型的有限内存的无磁盘系统的开发和应用.WINCE.net的设计采用硬件抽象层HAL(Hardware Abstraction Layer)和主板软件支持包BSP(Board Support Package)的方法.其中HAL是一层位于内核和嵌入式系统硬件的代码,用来设定硬件平台,保证了系统的可移植性.而BSP是定制嵌入式操作系统的必要部分,通过定制RSP可以根据具体的硬件系统配置制定操作系统,完成系统的可迁移性。
WINCE系统Wince操作系统开放分类: 操作系统Microsoft Windows CE快速反应的嵌入式应用常常管理严格的时间反应。
例如,制造过程控制,高速的数据采集设备,电讯交换设备,医用设备,空中“有线”控制,武器发射装备,空间航行和导航,实验室,实验控制,汽车发动机控制,机器人系统。
为保证这种功能,就意味着不仅需要计算精确性,还有结果的时间性,此种应用必须在指定的时间参数内做出反应。
实时系统的广义定义是“对任何外部刺激,计算机做出及时反应是至关重要的系统”,标准定义在Internet newsgroup corp realtime group中。
实时定义为:一个实时系统它的计算正确性,不仅依靠于计算逻辑上的正确,还包括及时的产生结果。
如果没有达到系统时间限制条件,系统也是失效的。
搞清楚实时系统和实时操作系统(RTOS)的区别至关重要,实时系统代表所有系统组成设备——硬件,操作系统和应用——它需要达到系统的要求,实时操作系统(RTOS)只是整个实时系统的一个组成部分,它必须提供足够的功能以确保整个实时系统达到要求。
同样,搞清快速操作系统和实时操作系统之间区别,也很重要,对于一个RTOS 虽然达到全面要求十分有用,但并不是它自己达到这种要求。
Internet neusgronp cornp.realtime列举了作为一个实时操作系统,必须达到的要求: * OS(操作系统)必须是多线程和优先级之分。
* OS必须支持线程优先级。
* 一个优先级继承的系统必须存在。
* OS必须支持可预测的线程,同步发送机理。
另外,OS的行为必须是可预测的,这意味实时系统的开发者必须对系统中断级,系统调用和分时了如指掌:* 必须知道OS和设备驱动器的中数据匹配最大时间。
* 设备驱动器用来处理一个中断最大时间和关于这些驱动器的中断申请信息必须清楚。
* 中断响应(从中断到运行时间),必须可预测并满足功能要求。
每次系统调用时间必须可以预测,并且独立于系统的对象数目。
车机退出wince系统的方法-概述说明以及解释1.引言1.1 概述概述部分的内容:车机是现代汽车中的一种嵌入式电子设备,它为驾驶员和乘客提供多种功能和娱乐服务。
车机通常运行在各种操作系统上,其中一种常见的操作系统是Wince(Windows Embedded Compact)。
Wince系统由微软公司开发并专门用于嵌入式设备,具有稳定性高、能效低以及良好的可扩展性等特点。
本文旨在介绍车机系统以及探讨车机退出Wince系统的方法。
首先,我们将通过对车机系统的功能和特点进行介绍,帮助读者加深对车机系统的理解。
然后,我们将详细探讨Wince系统的特点,包括其稳定性、能效以及可扩展性等方面。
最后,我们将重点讲解车机退出Wince系统的方法,为读者提供实用的操作指南。
通过本文的阅读,读者将能够了解车机系统的基本概念和工作原理,深入了解Wince系统的特点,并学会车机退出Wince系统的方法。
本文旨在帮助读者更好地理解车机系统,并为对该领域有兴趣的人员提供参考和指导。
在接下来的章节中,我们将从不同的角度对车机退出Wince 系统的方法进行探讨,以便读者能够全面了解并灵活运用这些方法。
1.2文章结构文章结构部分的内容可以包括以下内容:1.2 文章结构:本篇文章主要分为引言、正文和结论三个部分。
在引言部分,我们将概述本文的主要内容和目的。
首先,介绍车机系统的背景和重要性,以及Wince系统在车机系统中的应用。
接下来,我们将明确本文的主要目的,即探讨车机退出Wince系统的方法。
在正文部分,我们将详细介绍车机系统和Wince系统的特点。
首先,我们将介绍车机系统的基本概念,包括其作用、应用场景以及功能要求。
然后,我们将重点讨论Wince系统在车机系统中的优势和特点,包括其稳定性、兼容性和可定制性等方面。
接下来,在正文的最后部分,我们将详细探讨车机退出Wince系统的方法。
我们将介绍多种可行的方法,包括手动退出和自动退出两种方式。
Windows CE 5.0和Windo ws CE 6.0的内存与系统架构1.Windows CE 5.01.1 Windows CE 5.0的系统架构1.2 Windows CE 5.0的内存架构因为WINCE是32位的嵌入式操作系统,所以WINCE的虚拟寻址能力可达4GB(为什呢,2^32=4GB),但是WINCE5.0和XP操作系统的每个进程独享4GB虚拟地址空间不同,WINCE5.0中所有的进程共享一个4G B的虚拟地址空间。
这4GB 的虚拟地址空间被分为两个2GB的区域,其中低地址的那2GB区域(0x00000000 ~ 0x7FFFF FFF)是用户虚拟空间,这块虚拟空间由应用程序的共用,也就是说应用程序申请的内存都会从低2G B虚拟内存空间分配的;而高2GB区域(0x80000000 ~0xFFFFF FFF)是操作系统的内核虚拟空间,供WINCE操作系统本身使用。
我们知道WIN CE5.0的进程数量最多只能达到32个,而且每个进程只能独享32MB的虚拟空间(这个32MB的空间也叫一个sl ot),这33个进程(32+1,这个1就是指s l ot0,因为slot0用于映射当前在处理器上执行的线程所在的进程)占用的虚拟空间0x00000000~0x41FFFFFF(slot0~slot32),slot33~slot63对应的虚拟地址空间是0x42000000~0x7FFFFFFF,这块虚拟地址空间是由所有的进程共享的,如果每个进程独享的32MB虚拟地址空间不够用,那么进程可以在这个范围申请虚拟地址空间,这个范围包括对象存储和内存映射文件(.map文件,每个进程都有自己的map文件)。
此范围的最后一个slot(slot63)从0x7E000000~0x7FFFFFFF用来存放纯资源DLL。
WINCE6.0操作系统---内核(kernel)学习备注:这里的内核指kernel,其表现形式为kernel.dll,OS指操作系统,core指核心。
图1 WINCE6.0体系结构1.kernel的组成和功能WINCE6.0操作系统内(kernel)在代码中的表现形式是kernel.dll(也就是kern.dll),WINCE5.0中内核的表现形式为NK.exe,而WINCE6.0中的NK.exe中仅仅包含一些OAL代码和保持兼容性的程序了。
内核提供任何WINCE6.0设备的基本OS功能,这些基本功能包括进程、线程和内存管理,另外内核也提供一些文件管理功能、线程调度、实时性能、装载器(loader)、系统调用、电源管理和OS提供的多种多样的服务。
内核服务(service)使应用程序可以使用这些核心(core)功能。
NK.exe是OAL层的进程,在OAL层启动的过程中加载kernel.dll。
使用内核进程和线程函数可以创建、终止、同步进程和线程,并且可以调度和挂起线程。
进程是正在运行的程序(比如iexplore.exe)的单个实例,这样使得同时可以运行多个程序,对于WINCE5.0来说能够同时运行的进程是32个,假如我们同时打开多个Internet Explorer浏览器(对应一个iexplore.exe),那这时内存中就相应有多个浏览器的进程,所以WINCE5.0操作系统如果要应用在网络系统,尤其是同时运行多进程的系统中并不是很好的选择。
WINCE6.0支持同时运行的进程数达到32000个,就基本不存在这方面应用的限制。
线程使得程序一次可以执行多个任务,因为一个程序可以创建多个线程。
线程优先等级、优先级继承、中断支持、和计时(timing)与调用也都是内核包含的功能。
内核的所有功能共同为对时间要求很严格的系提供实时应用。
WINCE内核基于页式虚拟内存系统(virtual-memory system)来管理和分配应用内存,虚拟内存系统提供连续的大小为64KB内存块,每块的大小为4KB,所以应用程序不需要管理内存的分配。
WINCE的构建系统WINCE构建系统(build system)负责根据用户选择特性,为目标设备构建WINCE运行时映像。
WINCE的构建过程分为4个步骤,依次为Sysgen,Build,Release Copy和Make Image。
1.sysgen过程Sysgen(system generation)过程是根据用户选择的组件生成特定的头文件及可执行文件供最终的WINCE运行时映像打包时使用。
Sysgen的输入包括一系列从public和private目录下编译后的lib文件(通常在安装PB时安装在电脑上)、未经筛选的头文件与主控文件(CeSysgen.bat),而sysgen的输出包括经过筛选的头文件与用户选择组件包含的可执行文件.exe和动态链接库.dll。
其中sysgen过程产生的头文件会被打包到导出的SDK中,而产生的可执行文件和动态链接库文件会被打包到WINCE运行时映像中。
在整个sysgen的过程中,所有操作都是安装用户事先设置的环境变量进行的,因此,只有用户选择的组件最终被处理和输出,才能达到操作系统定制的目的。
2.build过程当整个系统都已经生成完毕后,接着就可以编译项目内部的源代码了。
BSP 的源代码和PB中新建的应用程序都在这一步被编译。
其中BSP的源代码如果以前曾经编译过并且没有改动,构建系统会跳过BSP的编译;PB中建立的应用程序由于依赖于操作系统平台所选择的组件,因此只有在sysgen过程结束后才能进行编译。
源代码的编译是通过build.exe使用SOURCES文件和DIRS文件编译源代码的,build.exe通过DIRS文件来查找要递归编译哪些子目录,DIRS目录是当前目录的子目录列表,告诉build.exe当前目录下有哪些子目录需要进行递归编译,比如下图的SRC就是当前目录,其子目录有bootloader、common、drivers、inc和kernel。
当前目录SRC下的dirs文件如下图所示其中“DIRS=”语句包含当前目录下希望用build.exe进行递归编译的子目录列表,“\”是续行符,表示在处理的时候忽略后面的回车换行。
Wince操作系统开放分类:操作系统Microsoft Windows CE快速反应的嵌入式应用常常管理严格的时间反应。
例如,制造过程控制,高速的数据采集设备,电讯交换设备,医用设备,空中“有线”控制,武器发射装备,空间航行和导航,实验室,实验控制,汽车发动机控制,机器人系统。
为保证这种功能,就意味着不仅需要计算精确性,还有结果的时间性,此种应用必须在指定的时间参数内做出反应。
实时系统的广义定义是“对任何外部刺激,计算机做出及时反应是至关重要的系统”,标准定义在Internet newsgroup corp realtime group中。
实时定义为:一个实时系统它的计算正确性,不仅依靠于计算逻辑上的正确,还包括及时的产生结果。
如果没有达到系统时间限制条件,系统也是失效的。
搞清楚实时系统和实时操作系统(RTOS)的区别至关重要,实时系统代表所有系统组成设备——硬件,操作系统和应用——它需要达到系统的要求,实时操作系统(RTOS)只是整个实时系统的一个组成部分,它必须提供足够的功能以确保整个实时系统达到要求。
同样,搞清快速操作系统和实时操作系统之间区别,也很重要,对于一个RTOS虽然达到全面要求十分有用,但并不是它自己达到这种要求。
Internet neusgronp cornp.realtime列举了作为一个实时操作系统,必须达到的要求:* OS(操作系统)必须是多线程和优先级之分。
* OS必须支持线程优先级。
* 一个优先级继承的系统必须存在。
* OS必须支持可预测的线程,同步发送机理。
另外,OS的行为必须是可预测的,这意味实时系统的开发者必须对系统中断级,系统调用和分时了如指掌:* 必须知道OS和设备驱动器的中数据匹配最大时间。
* 设备驱动器用来处理一个中断最大时间和关于这些驱动器的中断申请信息必须清楚。
* 中断响应(从中断到运行时间),必须可预测并满足功能要求。
每次系统调用时间必须可以预测,并且独立于系统的对象数目。
本篇论文论述了微软Windows CE 操作系统是如何达到一个实时系统的要求,更有意义的是,Windows CE 保证一个时间的上限,它在收到中断后开始一个实时的优先级线程。
本论文论述了对特定参考平台的中数据响应时间,参考为有Hinathi SH3 的微处理器的“Odo”平台。
Microsoft Windows CE概论微软Windows CE 被设计成针对小型设备(它是典型的拥有有限内存的无磁盘系统)的通用操作系统。
Windows CE 可以通过设计一层位于内核和硬件之间代码来用设定硬件平台,这即是众所周知的硬盘压缩层(HAL),(在以前解释时,这被称为OEMC (原始设备制造)适应层,即OAL;内核压缩层,即KAL。
以免与微软的Windows NT 操作系统HAL 混淆)不象其它的微软Windows 操作系统,Windows CE 并不是代表一个标准的相同的对所有平台适用的软件。
为了足够灵活以达到适应广泛产品需求, Windows CE 采用标准模式,这就意味着,它能够由一系列软件模式做出选择,从而使产品定制。
另外,一些可利用模式也可作为其组成部分,这意味着这些模式能够通过从一套可利用的组份做出选择,从而成为标准模式,通过选择,能够达到系统要求的最小模式,OEM 能够减少存储脚本和操作系统的运行。
Windows CE 关于VC++ 5.0 开发系统嵌入式工具包,提供系统库、工具、文本和样本代码,以使OEMS 能够对特定的硬件平台使Windows CE 标准定制。
嵌入式工具包也包括设备驱动包(DDK)和软件开发包(SDK) ,DDK 提供了关于写驱动器的附加文本,SDK 提供库、头文件、样本代码、文本以允许,开发者对基于Windows CE 的平台进行写操作。
Windows CE 提供了相同的程序界面,以用来为其它的视窗操作系统开发功能,例如,Windows CE 版本1.01支持大约1000个微软的Win 32 API 函数的其中500个。
这就意味着大量不同类的工具,第三方书籍,关于Win 32 开发者训练教程,可以替代或为Windows CE 系统的开发者所用。
实时系统的开发者能够使用,关于VDFF 5.0 的嵌入式工具包,以把操作系统转移到特定的平台,并为这个平台开发附加设备驱动器和实时功能。
线程和线程优先权级Windows CE 是有优先级的多任务操作系统,它允许多重功能、进程,在相同时间系统中运行Windows CE 支持最大的32 位同步进程。
一个进程包括一个或多个线程,每个线程代表进程的一个独立部分,一个线程被指定为进程的基本线程,进程也能创造一个未定数目的额外线程,额外线程实际数目,仅由可利用的系统资源限定。
Windows CE 利用基于优先级的时间片演算法以安排线程的执行,Windows CE 支持八个不同的优先级,由0到7,0代表最高级,它在头文件Winbasw.h中定义。
优先级描述(最高级) 关键的线程优先级(最高优先等级)1 最高线程优先级2 高于通常的线程优先级3 通常线程优先级4 低于常规线程优先级5 最低线程优先级6 高于IDLE的线程优先级7(最低) IDLE线程优先级(最低优先级)级别0和1通常做为实时过程和设备驱动器,级别2-4做为线程和通常功能,级别5-7做为是低于其它功能级别,注意级别6是目前状态并有稳定联接。
优先权唯一的取决于线程优先级,拥有高级优先权的线程安排优先运行,同一优先级的线程,以循环优先先级方式运行,即每个线程接受定制的时间或时间片,定量时间默认值为25毫秒(Windows CE 2.0 支持在MIPS 平台更改定量时间)。
较低优先权的线程,要直到较高级线程完成之后再运行,也即直到他们或者放弃或停止。
一个重要的例外是最高优先级的线程(级别0,关键时间优先级)不与其它的线程共享时间片,这些线程连续执行直到他们完成。
不象其它的微软窗操作系统,Windows CE 是固定不能改变,它不匹配基于这引进优先级的中断,他们能够暂时改动,但仅能通过Windows CE 内核以避免所谓的的“优先权倒置”。
优先权倒置指的是当它们同时竞争同一资源时,低优先级的线程,阻碍了高优先权线程对资源的利用。
为了改正这种局面并解放较高优先权的线程,Windows CE 允许低级优先权继承,严格的线程优先权,并且运行较高优先级直到它释放所用资源。
例如,如果一个线程在最高优先权运行试图莸取由低级优先权占有的互斥体,低级优先权的线程变成高级优先权,并且运行直到它释放互斥体。
优先权倒置适用于系统的所有线程。
例如,甚至在优先级别1运行的内核线程能转成级别0,如果优先级0线程运行内存分页代码,将引起块失误。
基于优先级的多任务设计,保证运行在最低级的线程在一个预所知时间段执行。
本论文在后面讨论设定响应,对于指定的平台和公式,并由其它的平台获取数字。
在DAK 和SDK 的工具,显示了线程状态和优先级别,并描绘指定实时系统操作轮廓。
线程同步实时系统必须保证进程和线程同步,例如,如果实时应用的一部分在另一部分获得最多当前数据前即完成,此应用的管理进程可能不稳定,同步将确保在应用线程间交换正确。
如同其它的Windows 操作系统一样,Windows CE 为线程同步提供了一个丰富的“等待对象”,这包括关键部门、事件、互斥体,些等待对象,允许一个线程减缓它的运行并且等待直到指定事件发生。
Windows CE 将互斥体、关键部分、事件请求按“先入先出,优先级(FIFO)”顺序排列:不同的先入先出顺序序列定义成八个不同的优先级,在给定的优称级的线程请求,将被放在优先级列表末尾,当优先级倒置出现时,调度程序调整这些序列。
除了等待对象,Windows CE 支持标准的Win 32 时间API 函数,这些来自内核的应用,软件中断将获得时间间隔,它被用来管理实时应用。
通过调用GetTickCont 函数,它能够返回几毫秒,线程能够使用系统间隔时间。
关于更详细的分时信息,Windows CE 内核也支持Win 32 API 函数QueryPerformanreCounter 和QueryPerFormanteFrequency 。
OEM 必须为这些调用提供硬件和软件支持,它提供一个较高的时间分辨力和OAL 界面其它方面。
其它方面考虑Windows CE 提供了一个重要的存储系统,例如,当目前某些运行Windows CE 的平台提供4MB 的物理内存,Windows CE 支持一个重要的2GB 的地址空间,每个进程联接在它自己的32MB 物理空间上,当它需要产生内存分页中断(这可能影响线程执行时间),物理内存进行线程代码或数据内存分页。
内存分页输入输出,将比实时进程优先级低。
在实时进程中内存分页仍可自由出现,但这要确保后台的实际内存管理赢得实时系统优先权。
实时线程应该锁存在内存中,以防止这些无关紧要的内存分页阻碍其运行,它们可能会占用实际内存管理系统。
Windows CE 允许映射,这将阴止多个进程共享同一物理内存,结果将会导致协同进程间或驱动器与映射快速的数据传送,内存映射能够戏剧性的增强实时操作。
中断处理:IRQS ISRS 和ISTS实时应用被设立在指定的时间间隔内,对外部事件做出反应,实时应用使用中断做为一种确保外部事件由操作系统获知的方式。
在Windows 中,内核和OEM 适应层(OAL)被设定成使系统其它部分的中断和调度最优化。
Windows CE 平衡操作,并通过把中断过程分成两部分而使执行更加容易:它分为中断服务程序(ISR)和中断服务线程(IST)两部分。
每条硬件中断申请线(IRQ),与一个ISR相连。
当中断成立和中断出现时,内核为此调用寄存的ISR,ISR 为中断处理的内核模式部分尽可能短的保存。
它首先将内核放在适合的IST 上。
ISR 执行它的最小处理并返回一个ID 号到内核,内核检查返回的中断ID 号,并设置相关事件,中断服务线程等待事件。
当内核设置事件时,IST 停止等待并开始执行,附加的中断进程,中断处理大部分实际上出现在IST 中,两个最高的线程优先权(级别0和1),通常指定为ISTS,保证这些线程运行得足够快。
正如前面所说,处在最高级的ISTS 不能被其它的线程占用,这些线程持续执行直到它们截止或放弃。
Windows CE 不能支持群体中断,这就意味着当以前一个中断处理中,另一个不同接受服务,也就是当内核位于ISR 时如果中断出现,在为新的IRQ 开始ISR 前它将一直执行直到ISR 结束,这将引起硬件中断和ISR 开始之间的延迟,拖延和响应时间中断响应。
中断响应本论文中,Intervupt Latency 词组主要指的是较件中断,处理响应,也即是从处部中断到达处理器到中断开始处理间的时间。