APP下载

基于Win CE系统的应用研究

2019-09-10刘懿嶙谢长睿

广告大观 2019年5期

刘懿嶙 谢长睿

摘要:Windows CE作为系统是为Windows家族中的新成员,是设计给掌上型电脑所使用的电脑环境。这样的系统可以使完整的可携式技术与现在拥有的Windows桌面技术整合工作。Windows CE被设计成为针对小型设备的通用操作系统。为了足够的方便来能够适应广泛产品的需求,Windows CE采用标准模式,这样就可以让某些模式的来通过这样的一套工作利用便捷做出选择。

关键词:Windows CE;可携式技术;通用操作系统

前言

Windows CE是一个32位、多任务、多线程的操作系统,其开放式的设计结构适用于各种各样的设备,它这样的系统拥有这很多独特的特点。例如,它是一种可以压缩和升级的软件系统,如果在小内存条件下,也能够完美的提供比较高的性能。CE还拥有着携带方便和能够运行在多种微处理器。它的高效和完美的电源系统能够让移动设备的电池寿命延长很久。因为它本身支持的是标准系统,所以就可以很方便地去进入Internet来发送和接受电子邮件。

一、Windows CE的历史背景

最早的系统版本是在1996年之后才发布的,从这开始,微软就开始不停的更新版本,一直到现在的最新版,来适应市场用户的不同需求。1997年,带有网络支持的CE2.0被微软发布。Windows中标准的网络功能和通用的NE2000网卡驱动支持随之到了1998年的8月份,再次发布了H/PC配套的操作系统2.11版本。该系统更新了它的存储功能,文件大于4M。命令解释器的cmd.exe来支持MS-DOS的命令,以至于后续的Fast IR来维持红外线的运行。这套版本的最完美表现在它的IP多点传送。随后2000年的3.0版本随之问世,微软大大的提高了这个系统的内核来更好的支持256个线程调整线程周期的优先级。2003年的第二个季度的4.2版本发布,其中API的菜单条和输入法等精简框架都被完美构筑在中。2004年的7月份,5.0版本正是发行,能够处理多媒体和Web浏览的功能,其他设备与其互联的时候加强操作性。2006年的6.0上市操作支持着NDIS miniport驱动模式。当然了也就是这个6.0让微软不但拥有了自己独特的新版系统还让其的资源共享发表它所属的核心源代码。使很多的IDE成为VS2005的嵌入式开发厂商拥有的一个基本插件。2011年的7.0系统则是尽善尽美地适用于很多医疗设备,工业设备,零售系统和平板电脑。

二、Windows CE的中断处理

(一)中断体系结构

中断过程被其分为了两个部分,其中当出现中断时,相应的ISR被内核相应的调用,来尽可能保存短的内核模式为中断处理模式。内核收到一个最小处理的ISR来返回一个合适的IST上,然后检查ID号来等待事件服务线程的发生。IST开始执行等待停止然后中断的发生处理程序。

(二)中断延迟

这里的中断延迟也能够分为两个部分,其中从开始发生中断时算起,到ISR把命令开始执行时的间隔成为第一个延迟被称作ISR延迟。当然了发生延迟就得存在着原因,其中因素涵盖很多,首先是中断系统被关闭,处理器不会产生异常状态而且机器指令都被中断处理器检查来调用移动指令长字符锁定中断。然而第二个是从发生中断开始计算最后到IST的第一行代码存在执行时的时间间隔称作是第二个IST延迟。

三、Windows CE的进程和线程

(一)CE的进程

一个正在运行的一个进程应用基本是两个部分组成的。其中操作系统的管理内核对象和地址空间拥有的进程。其中地址空间的存在让代码静态数据段都要从执行方面来看的话,应用程序的一个或者多个线程都是一个完美的执行单元,基本的线程操作系统都是来进行一个线程地址空间来访问分配的。而控制执行CPU的基本单位则是一种能够单元的执行代码。

(二)CE的线程

任务操作在调度过程中的CE. NET是一个抢占系统。抢占多任务多,系统优先级列表是一个当前所有线程的,所有的线程的优先级排列顾序是当内核的调度中断发生时,排列顺序会被调度线程所有系统重新安排的。其中256个优先级的线程高度是0的优先级最高,255则是最低。实时性的调度系统CE. NET具有保证髙优先级线程时间片先运行的机智。所以低优先级线程才能得到阻塞必须在前者才能够终止占有CPU相同优先级。其中的线程一旦发生中断,内核会终止程序死锁和阻塞低线程的暂停,来让髙优先级线程其他相同占有时间时的共同随机运行,直到具有使用完了 设置为0的时间片内阻塞。睡眠OEM可以更改优先级的线程。内核限制线程占有CPU的时间,那么CPU时间片其他相同会占有时间片这个值,甚至CPU时间片设置为0会出现程序死锁的情况。临界区锁定线程2这次进入了一个临界区内的资源是运行的机智不会被其他线程访问的,当临界区正运行时,线程1时间片释放在中运行状态,阻塞状态的资源被线程2来放开。

四、Windows CE的内存管理

(一)进程空间地址结构

CE系统又把从0x80000000〜0x80000000的2G用户空间分为64个槽(Slot),一个槽(Slot)占用32MB的地址空间,其中前33个Slot(0x00000000〜0x42000000)作为进程空司:当一个进程启动时,内核选择一个没有被占用的槽作为这个进程的地址空间。当前运行进程(Currendy Running Process)其中0x0000000〜CxOlFFFFFF这个槽称为Slot 0,Slot 0作为当前运行进程的地址空间。当一个进程即将得到CPU控制权时,将其整个地址映射到Slot0。这个进程被分配一个槽后,槽内按由低地址到高地址顺序依次存放的数据位代码段、静态数据段、堆、栈,栈之后的空间为所有DLL保留。

(二)堆和栈的内存分配

连续的较大的地址堆是一段虚拟空间。应用程序内存页为单位在堆中可以动态地分配,释放在堆内分配内存块可以是任意大小的,而直接分配内存就必须以每个内存页所需大小的内存块。可能是ikb、4kb或并且保留顶部2KB更多。栈和堆相比空间要小的多,它是专为函数使用的。栈的大小和CPU有关,一般为64KB,为了防止溢出。实际开发中,不要在一段連续的虚拟地址空间栈中分配很大和很多的内存块。因为分配的内存块超过了默认栈的限制,就会引起非法访问进程的异、常中止并且造成。

参考文献:

[1]  金亮,张学杰.《3种嵌入式操作系统内核的关键技术分析》.云南大学,2006。

[2]  林涛.《嵌入式操作系统WindowsCE的研究》.微计算机信息,2006。

[3]  邓亚明.《嵌入式操作系统比较研究中国髙新技术企业》,2008。

(作者单位:华北水利水电大学)