最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

Windows CE -期末复习

来源:动视网 责编:小OO 时间:2025-10-01 09:39:01
文档

Windows CE -期末复习

WindowsCE嵌入式系统(09期末复习)1、WindowsCE特点:精简的模块化操作系统;多硬件平台支持;支持有线和无线的网络连接;稳健的实时性支持;丰富的多媒体和多语言支持;强大的开发工具2、WinCE下的应用程序开发与windows下的应用程序开发的唯一不同:在winCE下,编写的应用程序既可以像桌面windows一样通过安装包的形式进行安装,也可以把应用程序作为操作系统的一个组件,打包进入操作系统的运行时映像中.3、PlatformBuilder的作用:可对WindowsCE进行定制
推荐度:
导读WindowsCE嵌入式系统(09期末复习)1、WindowsCE特点:精简的模块化操作系统;多硬件平台支持;支持有线和无线的网络连接;稳健的实时性支持;丰富的多媒体和多语言支持;强大的开发工具2、WinCE下的应用程序开发与windows下的应用程序开发的唯一不同:在winCE下,编写的应用程序既可以像桌面windows一样通过安装包的形式进行安装,也可以把应用程序作为操作系统的一个组件,打包进入操作系统的运行时映像中.3、PlatformBuilder的作用:可对WindowsCE进行定制
Windows CE嵌入式系统(09期末复习)

1、Windows CE 特点:精简的模块化操作系统;多硬件平台支持;支持有线和无线的网络连接;稳健的实时性支持;丰富的多媒体和多语言支持;强大的开发工具

2、WinCE下的应用程序开发与windows下的应用程序开发的唯一不同:在winCE下,编写的应用程序既可以像桌面windows一样通过安装包的形式进行安装,也可以把应用程序作为操作系统的一个组件,打包进入操作系统的运行时映像中.

3、Platform Builder的作用:可对Windows CE 进行定制、构建、下载、调试及发布,还可以开发简单的基于Windows CE的应用程序。

4、EVC==eMbedded Visual C++: 用C/C++语言来为Windows CE开发应用程序

5、Windows CE属于典型的微内核OS,

操作系统的单体内核和微内核结构的优缺点比较P23:

简答题:单体内核与微内核各自的特点、优缺点:

(1)单体内核(UNIX为代表):单体内核操作系统将图形、设备驱动及文件系统等功能全部在操作系统内核中实现,运行在内核状态和同一地址空间。

  优点:减少了进程间通信和状态切换的系统开销,获得较高的运行效率

  缺点:内核庞大,暂用资源较多,且不易裁剪,一旦某个驱动程序运行出错,就会导致整个系统崩溃,系统的稳定性、安全性不好。

(2)微内核(WinCE为代表):微内核系统在内核中只实现那些必需由内核实现的基本功能,而将图形系统、文件系统、设备驱动及通信等功能放在内核之外,以系统服务的形式提供各种功能。

     优点:有一个精炼的内核,便于裁剪和移植,个别错误不会导致整个系统崩溃。

     缺点:在运行中,用户状态和内核状态需频繁的切换,所以系统效率不如单体内核。

6、软件体系结构中层次化设计的方法:

一个完整的系统被划分成彼此相关的多个层次。每一个层次都有自己的关注要点和要实现的功能。层次与层次之间构成单项依赖,每一个层次都只与它相邻的层次打交道:利用它下一层提供服务构建自身,同时向更高层提供一些服务

7、基于Windows CE构建的嵌入式系统大致分成四个层次:应用程序层;操作系统层;OEM层;硬件层(从上往下)

8、OEM层包括: OEM抽象层、引导程序BootLoader、配置文件(Configuration File)和驱动程序(Device Driver)4个模块

OEM层的主要作用是:对具体的硬件进行抽象,抽象出统一的接口,然后WinCE内核可以使用这些接口与硬件进行通信。

9、操作系统层的运行的五个进程:NK.EXE(内核);FILESYS.EXE(对象存储);DEVICE.EXE(设备管理系统);GWES.EXE(图形系统);SERVICES.EXE(服务)

10、系统调用的具体实例:P30-31(自己总结)

应用程序App.exe要调用CreateWindows()函数来创建一个新的窗口, CreateWindows()的实现在CoreDLL.DLL中,那么首先该进程会调用自己进程内CoreDLL.DLL中的CreateWindows()函数.这个函数就是实际系统调用的包装函数.然后CoreDLL.DLL会引起软件中断,执行转入NK.EXE, NK.EXE会查找到CreateWindows()函数是图形界面相关的函数.其实现在GEWS.EXE中,NK.EXE就会选中GEWS.EXE开始执行,当GEWS.EXE开始执行后,立即开始创建窗口的任务.当窗口创建结束后, GEWS.EXE返回,然后接着从NK.EXE软件中断中返回,系统调用就结束了.   

应用程序App要调用在CoreDLL中的包装函数CreateWindows()来创建一个新窗口--         CoreDLL会发出软件中断,NK捕捉到后查找到CreateWindows()函数是图形界面相关函数-GWES开始执行,创建窗口的任务--窗口创建结束后,GWES返回,NK软件中断返回,系统调用结束。         

11、WindowsCE是一个基于优先级的抢占式多任务操作系统

12、进程与程序的联系:

程序是构成进程的两个组成部分之一。一个进程的运行目标是执行它对应的程序。

进程与程序的区别:

(1)程序是静态的,进程是动态的。

(2)进程有创建、执行及撤销而消亡的生命周期,程序只是一个文件,存在于某种介质上。

(3)一个程序可对应多个进程,但是一个进程只能对应一个程序。

补充的:

•Windows CE(5.0)最多只支持32个进程同时运行。每个进程占据32MB的虚拟地址空间,也被称为一个Slot。

•在系统启动的时候,默认会启动四个进程,NK.EXE, FILESYS.EXE, GWES.EXE及DEVICE.EXE。

13、线程是Windows CE中最小的可执行单元

线程特点:

–是进程的一个实体,可作为系立调度和分派的基本单位。

–不拥有系统资源(只拥有从属进程的全部资源,资源是分配给进程)

–一个进程中的多个线程可并发执行。(进程可创建线程执行同一程序的不同部分)

–系统开销小、切换快。(进程的多个线程都在进程的地址空间活动)

14、调度程序使用基于优先级的时间片算法对线程进行调度。

Windows CE将线程分为256个优先级。0表示优先级最高,255表示优先级最低。

15、Windows CE调度P40

•线程A拥有最高的优先级,如果A处于就绪态,那么调度系统总是选择A来执行,他会一直执行直到结束或阻塞,B和C得不到执行的机会

•如果A不在就绪态,线程B和C使用时间片轮转算法(Round-Robin,RR)运行

Windows CE中提供了Mutex,Event和Semaphore三种内核机制来实现线程之间的同步++++++Critical Section和互锁函数

16、同步对象都有两种状态:

未通知(Non-signaled):表示同步对象被一个或多个线程占有,不能被其他等待的线程占有。

通知(Signaled):等待在同步对象上面的阻塞线程会得到通知,并且转化为就绪态,等待调度执行。

17、实例——两个线程使用Mutex对象对共享的全局变量i进行访问(程序分析)

 HANDLE     hMutex;

    INT              i=0;

    //创建Mutex对象和线程

 VOID Init()

    {

          hMutex = CreateMutex(NULL,FALSE,NULL);

          CreateThread(NULL, NULL,ThreadProc1, NULL, NULL, NULL);

          CreateThread(NULL, NULL,ThreadProc2, NULL, NULL, NULL)

    }

    DWORD   WINAPI   THreadProc1(LPVOID lpParameter)

    {

           WaitForSingleObject(hMutex,INFINITE);       //获得Mutex对象

           i++;                   //访问共享资源

           ReleaseMutex(hMutex);           //释放同步对象

           return 0;

    }

    DWORD   WINAPI   THreadProc2(LPVOID lpParameter)

    {

           WaitForSingleObject(hMutex,INFINITE);        //获得Mutex对象

           i--;                    //访问共享资源

           ReleaseMutex(hMutex);           /释放同步对象

           return 0;

    }

18、进程间通信---常用的两种方法::文件映射;;点对点消息队列

进程间通信——PTP消息队列::消息队列通常是一个先进先出的队列结构,

                            “生产者—消费者”模型

19、物理内存: RAM  ROM  Flash Memory (CE最大支持512M)

         RAM-为操作系统和应用程序提供运行和缓冲空间

         ROM-在windowsCE中通常用来存储程序

         Flash Memory—是ROM的一个替代品,简称Flash或闪存,,与ROM相比的最大优点是可擦除,既可以存储操作系统本身,也可以用来存储后来安装的程序

20、虚拟内存: WinCE最大支持512MB的物理内存,WinCE的虚拟地址空间(虚拟寻址能力)为4GB,把4GB虚拟地址空间分成若干个Slots,每个Slots占32MB,每个进程占一个Slot,编号从0开始。Slots0~32对应的虚拟地址是0x0000 0000~0x41ff ffff,它们用于存放进程的虚拟地址空间。Slot0与Slot1基本是在一起的。Slot 0用于映射当前在处理器上执行的进程; Slot 1由XIP的DLL代码使用。 Slot 2被Filesys.exe占用。理论上最多可以有30个用户进程,即Slot 3~32;Slot63用来存放纯资源DLL。 Slot33~63对应所有进程共享的虚拟地址空间。WindowsCE内核支持的物理地址最大值为512MB的由来(0x80000000~0x9fff ffff);重复映射所有的物理内存空间(0xA000 0000~0xBfff ffff) 。Slot97是windowsCE的核心进程NK.EXE专用(橙色为补充)

21、进程申请虚拟内存是从低地址向高地址增长的。从32MB虚拟地址空间最高地址开始

DLL代码和数据的增长是从高地址向低地址增长的。

22、逻辑内存分为堆和栈两种。

23、WinCE中提供三种文件系统:RAM文件系统、ROM文件系统、可安装文件系统

24、使用注册表来保存运用程序、驱动程序和用户的设定以及其它一些配置信息

注册表相当于整个系统级的配置文件中心数据库

25、图形系统为Windows CE提供图形界面服务,它是由GWES.EXE实现的。

有三个组件:图形系统(Graphic);窗口系统(Windows);事件系统(Event)

GEWS中图形、窗口、事件的关系:

       图形系统依赖窗口的设备上下文(Device Context DC)来绘图,而窗口也需要图形系统来绘自身。在Windows中的事件时通过消息机制来实现的。消息总是要发送给某个窗口,而每个窗口都有一个WinProc来处理消息。

26、应用程序开发流程:(根据实验自己总结,此会参考)

   (1)安装.NET Framework

   (2)安装Platform Builder开发工具

   (3)安装开发板支持包

   (4)建立并编译WinCE系统平台

   (5)定制软件开发工具包(SDK)

   (6)建立eMbedded Visual C++ 4.0开发环境

   (7)编写代码和调试

   (8)发布应用程序

27、SDK是一系列头文件、库文件、文档、平台管理器和运行时库的总称

Viaual Sudio和eMbedded Visual C++都依赖特定的SDK开发应用程序,只有安装了特定的SDK后,在开发工具的“新项目向导”中才会有相应的选项。

28、应用程序的发布涉及到的两个主要问题:代码签名和代码打包(.CAB文件)

29、Win32 API,MFC及.NET Compact Framework 三种应用程序的开发选择,最重要的两个因素:运行时占用的资源以及应用程序开发的速度(以上三者的比较在P114)

30、SDK配置结束后,最后一步是把SDK打包,生成一个MSI的安装文件

31、选择题:根目录下主要有一下几个分录,各个目录分别放什么:

Public目录涵盖了构建工具、代码及库等很多信息

Private目录存放WinCE操作系统私有的源代码,WinCE的核心模块代码都放在此目录

Platform目录存放的是所有的BSP

Others目录包含WinCE中一些模块的二进制库文件和代码

SDK目录存放的是构建系统用的的编译器和其它一些辅助工具

PBWorkspaces目录是Platform Builder工具默认的项目目录

32、搭建WinCE的构建环境时4个过程以及功能:

(1)Sysgen过程:主要功能是根据用户设置的一些组件环境变量,生成相应的头文件及可执行文件,供最终的Windows CE运行时映射打包时使用。

(2)Build过程:可编译项目内部的源代码

(3)Release Copy过程:收集前两步构建所生成的所有文件,把它们复制到一个平坦的目录中

(4)Make Image过程:当所有构建生成的文件都被收集起来后,构建的最后一步是把

_FLATRELEASEDIR目录下的相关文件打包,以生成最后的运行时映像。

33、解决构建时错误的两种途径:

查看输出信息,通过查看命令行工具的输出信息来找到错误的原因;

查看日志文件,通过阅读日志文件可知道详细的构建信息。

34、Platform Builder具有很好的可扩展性,它允许第三方的代码和组建集成到Platform Builder中去,然后像操纵PB自带的组件一样操纵这些第三方组件

只需要自己创建一个CEC文件,并把它导入到PB即可

35、编写驱动程序的要素:(1)要了解驱动程序所针对的硬件(2)要了解目标操作系统下驱动的工作机制(3)要了解驱动程序的模型

36、在WinCE下,所有的驱动程序都以用户态的DLL文件形式存在,驱动程序DLL要得以运行,必须被一些进程动态加载到地址空间。

把驱动程序作为用户态的DLL来实现有如下优点:

首先,给操作系统和驱动程序带来了很大的灵活性;其次,把驱动程序放在用户态而不是核心态来实现,也增强了系统的稳定性;最后,把驱动程序放在用户态下可给驱动开发人员提供便利。

37、WinCE中的两种类型的驱动程序:分层驱动程序和单体驱动程序

分层驱动程序把驱动程序的代码分成了两层:上面一层叫模型设备驱动(MDD);下面一层叫平台相关驱动(PDD)

38、驱动程序注册表信息例子中各项的含义:P213看懂注册表

   “DLL”=”sampledev.dll”  DLL指明了该驱动程序的实现位于sampledev.dll;

   “Prefix”=”SMP”  Prefix表明驱动的前缀,前缀通常否是三个大写的英文字母;意思是sampledev.dll须导出SMP_Init,SMP_Open等函数;

   “Index”=dword:1  Index指定驱动程序的索引;意思是如果应用程序要打开驱动,那么CreateFile()的第1个参数就必须为SMP1;

   “Order”=dword:0  Order指明了驱动程序的加载顺序,该值越小驱动被加载地越早;

   “FriendlyName”=”Sample Controller”  FriendlyName是一个字符串,供人们更好的理解

   “Ioctl”=dword:0   Iotcl是个可选项,设备管理器在驱动加载完毕后会检测此键。如果有,则通过DeviceIoControl()函数给设备发送Iotcl指定的控制命令;

   “IClass”=”{3FECEF1-E765-4ale-B503-5B8C674D7C68}”  IClass是个可选项,在处理即插即用提醒时用的到。如果设置了IClass,则在加载驱动程序时,会向注册的应用程序发出此IClass的提醒。

39、设备的命名方式

传统设备命名:3个大写的英文字母+0~9(局限性:1、必须知道设备名才可对设备进行访问;2、对于一个特定的前缀,只能有0~9之间的10个设备)如:LPT2

设备挂载点命名:\\$device\\+ 3个大写的英文字母+数字(解决了上述的第2个局限)如:\\$device\COM7

总线挂载点命名: \\$bus\\+总线名称、总线号、设备号和功能号(仅用于对总线设备的电源管理)如:\\$bus\PCMCIA_0_0_0

40、资源管理的资源指IRQ与IO地址资源

41、ISR(处于内核模式的中断服务例程)作用:负责把物理中断请求(IRQ)转化成逻辑中断并返回给内核;

IST(处于用户模式的中断服务线程)作用:负责中断的逻辑处理。

42、Windows CE的一次中断处理起始于硬件中断产生,终止于IST调用InterruptDone()函数。

43、P229根据ISR的工作过程对程序进行注释理解

44、直接存储器存取(Direct Memory Access,DMA),是一种快速传送数据的机制。DMA技术的重要性在于:利用它进行数据传送时不需要CPU的参与(选择题)

45、实现流式接口驱动的四个步骤

•为流式接口驱动程序选择一个前缀

•实现流式接口驱动DLL所必需的接口函数

•编写DLL的导出函数定义文件.DEF

•为驱动程序配置注册表

46、P278服务的注册表(与驱动程序注册表类似)服务也有一个3个字符的Prefix和一个Index用来确定加载的服务。服务的注册表项增加了Context,Keep和Flags项。

    Keep值为0时,则服务在加载后会立即被卸载;Context与服务相关。

47、服务管理器可支持服务和超级服务两种新的服务例程

48、在WinCE中,BSP主要由四个部分构成:OEM抽象层、引导程序、设备驱动程序和配置文件(与第8点类似,勿混淆)。

49、Platform Builder提供了BSP Wizard向导来帮助开发人员创建和开发BSP。

51、P276wince中的服务,考一个选择题,关于特点,自己找

补充的:

1、嵌入式系统的三个基本要素:嵌入性、专用性、计算机系统

2、获得SDK的两种途径:开发人员可从微软或者第三方处获得SDK

                         开发人员可通过Platform Builder导出自己的SDK

3、MFC是一个基于C++语言的面向对象的程序设计框架

4、可通过PB的Tools下得CEC Editor创建第三方组件。

50、流式接口函数

文档

Windows CE -期末复习

WindowsCE嵌入式系统(09期末复习)1、WindowsCE特点:精简的模块化操作系统;多硬件平台支持;支持有线和无线的网络连接;稳健的实时性支持;丰富的多媒体和多语言支持;强大的开发工具2、WinCE下的应用程序开发与windows下的应用程序开发的唯一不同:在winCE下,编写的应用程序既可以像桌面windows一样通过安装包的形式进行安装,也可以把应用程序作为操作系统的一个组件,打包进入操作系统的运行时映像中.3、PlatformBuilder的作用:可对WindowsCE进行定制
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top