您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > WindowsCE指南
WindowsCE指南WindowsCE简介WindowsCE特性与桌面版OS比较与其他嵌入式OS比较WinCE能做什么:手机WinCE能做什么:PDA便携式多媒体设备WinCE能作什么:汽车电子BMWCitroënClarionCo.Ltd.DaimlerChryslerFiatSubaruHondaHyundaiMitsubishiToyota…WinCE能做什么:其它工业控制机顶盒医疗设备银行ATM系统放映机和大屏幕显示器VoIP设备…WindowsCE发展历史1996年发布WindowsCE1.0WindowsCE.NET4.x被广泛应用最新版WindowsCE6.0~7.0WindowsCE特点与桌面版本比较:硬件平台桌面版WindowsOnlyrunsonx86architectureWindowsCEARM/XscaleMIPSPowerPCSparcx86WindowsCE特性WindowsCE支持在多种不同的CPU硬件平台上运行与桌面版本比较:镜像大小桌面WindowsWindows3.x:2-5MBWindows98:400MBWindowsXP:1.5GB越来越大Win7、Win8…不能定制WindowsCE最小:200KB网络部分大约800KBGWES,ShellandApps大约4MBInternetExplorer大约3MBWindowsCE特性组件化200多个可选组件快速方便地针对特定应用系统定制OS与桌面版比较:实时性桌面Windows不具有实时性WindowsCE线程优先级256级中断嵌套每个线程都有独立的时钟嘀嗒处理优先级反转WindowsCE特性:WindowsCE支持实时性与桌面版比较:电源管理桌面Windows电源管理实现差WindowsCE电池供电/AC供电各设备的电源使用状况关闭不必要的设备WindowsCE特性:WindowsCE提供电源管理器,用来管理设备供电系统,增加电能的使用效率WindowsCE能够减少设备的能量损耗,在系统复位、开启、休眠和挂起状态,维持和保护RAM上的文件系统与桌面版比较:编程接口桌面WindowsASCII/UNICODE丰富的API强有力的硬件平台WindowsCE只支持UNICODE部分Win32API,MFC等有限的硬件资源WindowsCE特性:WindowsCE只支持UNICODECHAR-TCHAR/WCHARstrlen-wcslen部分API功能受限运行WindowsCE的系统通常资源受限与桌面版比较:共享源代码桌面Windows商业软件,源代码是微软的一级机密WindowsCE开放CE6.0的核心源代码用户可以对它进行修改WindowsCE特性:源代码共享用户可以在“%_WINCEROOT%\private”文件夹中找到公开的源代码与其它嵌入式OS比较:多媒体支持其它嵌入式OS:对音视频支持有限没有商业的网站浏览器WindowsCE友好的用户界面WindowsMediaPlayer9,支持mp3,wav,avi,wmv…InternetExplorer6&PocketIEWindowsCE特性:友好的用户界面强大的多媒体支持与桌面版windows相兼容PocketWord,Excel,PowerPoint,adobereaderPocketMSNmessengerPocketIE,WindowsMediaPlayerSQLServerCEeditionACDSee……与其它的嵌入式OS比较:编程接口OtherEOS:不同的编程接口常用的C/C++&j2meWindowsCEWin32APIMFC,ATL,STL…COM,ActiveX.NETCompactFrameworkJavaVMEVB,EVC…WindowsCE特性:对于Windows程序员来说容易上手支持多种编程语言与其它的嵌入式OS比较:镜像大小和实时性其它嵌入式OS:RTLinux,µC/OS-II支持硬实时Vxworks最小:8kµC/OS-II最小:2kWindowsCE非硬实时系统对于一些特殊的应用镜像可能过大WindowsCE优点:丰富的可选组件和功能定制方便易使用与桌面版windows编程接口类似具有丰富的微软及第三方应用支持WindowsCE系统结构和功能WindowsCE的结构概述系统架构NK.EXEFILESYS.EXEDEVICE.EXEGWES.EXESERVICES.EXEThreadMigration微内核微内核是一个小型的操作系统核心,它为模块化扩展提供基础。微内核的基本原理:只有最基本的操作系统功能才能放在内核中。不是最基本的服务和应用程序在微内核之上构造,并在用户模式下执行。微内核单体内核操作系统(UNIX)微内核结构(WindowsCE)微内核结构用一个水平分层的结构代替了传统的纵向分层的结构。在微内核外部的操作系统部件被当作服务器进程实现,它们可以借助通过微内核传递信息来实现相互之间的交互。WindowsCE系统架构WindowsCE属于比较典型的微内核操作系统。在内核中仅仅实现进程、线程、调度及内存管理等最基本的模块,而把图形系统、文件系统及设备驱动程序等等都作为单独的用户进程来实现。WindowsCE系统架构Application(s)COREDLLNK.EXEOALGWES.EXEFILESYS.EXEObjectStoreTouchDisplayKeyboardROMFSStorageManagerDEVICE.EXESERVICES.EXEFTPHTTPDTELNETDRAMROM/FLASHTimerINTCCPUHARDWARESerialUSB(Function)PCCard...DevMgr.DllBlockDeviceSerialCustomNK.EXENK.LIB+OAL.LIB=NK.EXE微软提供了预先编译的NK.LIB库文件,它的代码与CPU指令体系结构相关而与具体的外设无关。OAL.LIB是OEM层中的OAL代码编译后的输出。提供:处理器调度内存管理进程创建加载系统内的通信机制中断处理为其他部分提供核心调用例程NK.EXEOALRAMROM/FLASHTimerINTCCPUGWES.EXE图形窗口事件系统(GWES)管理所有的图形界面处理以及用户输入桌面的USER32+GDI32作为一个单独的进程GWES.EXETouchDisplayKeyboardHARDWAREDEVICE.EXE设备管理器负责加载、卸载和管理所有不被GWES.EXE管理的驱动程序。大多数功能都放在了devmgr.dll中。提供所有的与驱动相关的函数实现在启动的时候通过注册表加载驱动程序DEVICE.EXEHARDWAREDevMgr.DllBlockDeviceSerialCustomServices.EXE所有服务的宿主进程与Device.exe分开,负责加载系统服务的进程(FTP,TELNET,HTTP)用户可以添加服务提供API管理服务SERVICES.EXEFTPHTTPDTELNETDFILESYS.EXE文件系统和所有与文件相关的API都是通过FileSys.exe进程来管理的。有三个组件:对象存储存储管理器ROM文件系统进程和线程与调度进程线程调度进程概述进程(process)定义:是一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。它是系统进行资源分配和调度的一个独立单位。进程通常由三部分组成:程序、数据集合、进程控制块PCB(ProcessControlBlock)进程特点:动态性独立性并发行结构化进程概述进程与程序的联系:程序是构成进程的组成部分之一。一个进程的运行目标是执行它对应的程序。进程与程序的区别:程序是静态的,进程是动态的。进程有创建、执行及撤销而消亡的生命周期,程序只是一个文件,存在于某种介质上。一个程序可对应多个进程,但是一个进程只能对应一个程序。WindowsCE进程WindowsCE(5.0)最多只支持32个进程同时运行。每个进程占据32MB的虚拟地址空间,也被称为一个Slot。在系统启动的时候,默认会启动四个进程,NK.EXE,FILESYS.EXE,GWES.EXE及DEVICE.EXE。WindowsCE进程WindowsCE的进程也不支持环境变量(EnvironmentVariable)和当前目录。如果没有明确指明可执行文件的路径,那么WindowsCE会按照如下的顺序搜索:首先查找“\Windows”目录查找根目录(“\”)OEM所指定的搜索目录(“HKEY_LOCAL_MACHINE\Loader\SystemPath”)例如:如果MyApp.exe的同一目录中存在MyFile.txt,那么下面的代码都是不正确的。_wfopen(L”%WINDOWS%\\MyFile.txt,L”w”);_wfopen(L”MyFile.txt”,L”w”);WindowsCE进程一种解决方案TCHARszBuf[MAX_PATH];DWORDdwPathLen;//得到当前程序可执行文件的完整路径dwPathLen=GetModuleFileName(NULL,szBuf,MAX_PATH);if(!dwPathLen){return-1;}//除去文件名while(szBuf[--dwPathLen]!=‘\\’);szBuf[dwPathLen+1]=NULL;//拼接文件_tcscat(szBuf,TEXT(“MyFile.txt”));//如果当前文件位于/Temp,则此时szBuf的内容为”/Temp/MyFile.txt”WindowsCE进程创建进程的API如下:BOOLCreateProcess(LPCWSTRlpApplicationName,//可执行文件的路径和名字,不能为NULLLPWSTRlpCommandLine,//传递启动参数(必须为Unicode字符串)LPSECURITY_ATTRIBUTESlpProcessAttributes,//不支持,设置为NULLLPSECURITY_ATTRIBUTESlpThreadAttributes,//不支持,设置为NULLBOOLbInheritHandles,//不支持,设置为FALSEDWORDdwCreationFlags,//进程加载后的初始状态PVOIDlpEnvironment,//不支持,设置为NULLLPCWSTRlpCurrentDirectory,//不支持,设置为NULLLPSTARTUPINFOWlpStartupInfo,//不支持,设置为NULLLPPROCESS_INFORMATIONlpProcessInformation,//返回的进程相关的信息);//整个函数返回值为BOOL型,当成功创建进程后,返回值为真(TRUE),否则返回假(FALSE).WindowsCE进程终止进程最好是由WinMain()或者其他主函数返回调用ExitThread()函数使进程的主线程退出从而终止进程直接调用ExitProcess()函数在当前进程终止另一个进程可以使用TerminateProcess()运行就绪阻塞被调度时间片用完,中断资源释放或事件完成等待资源和事件新建创建完毕结束结束执行五种进程状态转换WindowsCE进程进程之间的基本关系:同步进程之间相互合作、协同工作的关系称为进程的同步。简单说来就是:多个相关进程在执行次序上的协调。临界资源也称独占资源,是指在一段时间内只允许一个进程访问的资源。例如打印机,磁带机,也可以是进程共享的数据、变量等
本文标题:WindowsCE指南
链接地址:https://www.777doc.com/doc-2867562 .html