嵌入式软件开发导论课件_第1页
嵌入式软件开发导论课件_第2页
嵌入式软件开发导论课件_第3页
嵌入式软件开发导论课件_第4页
嵌入式软件开发导论课件_第5页
已阅读5页,还剩447页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.嵌入式系统嵌入式软件开发导论目录什么是嵌入式系统?嵌入式系统特点嵌入式系统结构嵌入式硬件嵌入式软件目录什么是嵌入式系统?嵌入式系统特点嵌入式系统结构嵌入式硬件嵌入式软件什么是嵌入式系统?嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。简而言之,它是完成特定任务的计算机系统。什么是嵌入式系统?“所有的计算机系统都是通过编程来执行任务的?”嵌入式系统里的程序是被写死的。系统上电后程序开始执行直至系统关闭,程序是不能被改变的,除非开发人员采用特定的方法才能对程序进行改进并重新写入系统。什么是嵌入式系统?嵌入式系统往往做为一个大型系统的组成部分被嵌入到该系统中(这也是它名称的由来),嵌套关系可能相当复杂,也可能非常简单,它的表现形式多种多样。嵌入式系统应用PDA

消费电子

信息家电

移动通信GPS

智能识别系统

导航系统

汽车电子嵌入式系统应用

工业控制

火控系统

数字电视

飞行控制系统

测试仪器

医疗设备

游戏机

等等……Mars,December3,1999Crashedduetouninitializedvariable目录什么是嵌入式系统?嵌入式系统特点嵌入式系统结构嵌入式硬件嵌入式软件嵌入式系统特点实时性

小尺寸(资源,代码,规格……)

低功耗

高效率……什么是实时性?

对于实时系统,它的正确性不仅与系统的逻辑正确性相关,而且与系统的响应时间相关。如果系统的响应不能满足时限要求,即使它能得到正确的输出,我们也只能说它是一个失败的响应。——Donald

Gillies什么是实时性?

操作系统中的实时性:

操作系统对时限要求的一种响应能力。——POSIX标准1003.1实时系统

在时限范围内的正确响应

通常是嵌入式系统

通常是分布式系统

对时限要求的不同

硬实时系统

软实时系统硬实时和软实时

硬实时

系统对时限的要求特别严格,如果不满足时限要求会给系统带来灾难性后果。如飞行控制系统。

软实时

系统对时限的要求不是很迫切,如果不能满足时限要求,系统仍然可以正常工作,只是性能有所影响而已。如数据采集系统。实时系统

硬实时系统应用

汽车(沃尔沃S80有19台计算机)

飞机(JAS)

医疗设备

空间设备(火星探测器)

军方系统

工业自动化实时系统

软实时系统应用

游戏DVD(MPEG编码)

英特网视频和广播

通讯目录什么是嵌入式系统?嵌入式系统特点嵌入式系统结构

嵌入式硬件嵌入式软件嵌入式系统结构硬件操作系统

程序硬件内嵌式操作系统系统组件用户程序嵌入式系统结构计算机系统结构嵌入式系统应用实例数字控制算法数据日志数据获取和显示操作员界面界面工程系统远程监视系统实时时钟数据库操作员控制台显示设备实时计算机目录什么是嵌入式系统?嵌入式系统特点嵌入式系统结构嵌入式硬件嵌入式软件嵌入式系统硬件CPUIntelx86PowerPC(Mac)G3,G4,G5SPARC,AlphaARMMIPS……位宽8位控制器(仍然存在!)16位控制器(主流)32位控制器(开始流行)64位控制器(高性能)嵌入式系统硬件

CPU市场份额嵌入式硬件实例问题

功耗和能量为何担心能量和电力?“电能是嵌入式系统的最大约束”

[in:L.Eggermont(ed):EmbeddedSystemsRoadmap2002,STW]目前的UMTS电话系统几乎不可能在数据一直被传输的情况下被操作多于一小时的时间。

[fromareportoftheFinancialTimes,Germany,onananalysisbyCreditSuisseFirstBoston;http://www.ftd.de/tm/tk/9580232.html?nv=se]目录什么是嵌入式系统?嵌入式系统特点嵌入式系统结构嵌入式硬件嵌入式软件嵌入式软件——目标设计可靠、稳定、高效的嵌入式软件,需要考虑

继承性

有限的资源

多样性

可读性

并发性

兼容性

实时性

层次嵌入式系统软件的特点HardwareIncludingOperatingSystemComponentsUserProgram嵌入式系统

有限的资源

实时性

操作系统与用户软件没有明显的界线

开发模式hosttarget串口以太网嵌入式系统软件的今天嵌入式系统软件的明天作业你是如何理解嵌入式系统的?在日常生活中,你接触过哪些嵌入式产品?他们都有些什么功能?嵌入式系统中的软件有哪些特征?比较嵌入式系统与普通的计算机系统存有哪些相同和不同之处。嵌入式软件开发导论2.嵌入式操作系统目录什么是嵌入式操作系统?常用嵌入式操作系统简介WindowsEmbeddedVxWorksEmbeddedLinux目录什么是嵌入式操作系统?常用嵌入式操作系统简介WindowsEmbeddedVxWorksEmbeddedLinux各式各样的OS桌面机Windows(9X,XPHome,XP/2000Pro)Mac服务器Windows(XP/2000Server&AdvancedServer)UnixVarieties嵌入式Many什么是嵌入式操作系统?嵌入式系统是使用特定嵌入式软件完成特定功能的计算机系统,嵌入式操作系统作为软件的组成部分,为嵌入式软件的开发和运行提供良好的环境。嵌入式系统可以是基于ROM或者是磁盘的系统,类似PC,但它并不能替代通用计算机系统。什么是嵌入式操作系统?模块化可升级可配置小内存损耗CPU支持设备驱动等等...什么构成实时操作系统RTOS?多线程和抢占式调度由于非时限驱动OS的存在,具有线程优先级必须支持可预测线程同步机制优先级继承系统常用嵌入式操作系统MicrosoftEmbeddedNT/XP“实时”控制WindowsCE(CE.NET)Internet设备PocketPC2002HandheldPC’sandPDA’sWindRiverSystemsVxWorkspSOS目录什么是嵌入式操作系统?常用嵌入式操作系统简介

WindowsEmbeddedVxWorksEmbeddedLinux微软的移动平台更强的功能笔记本PC复杂的文档编辑和读写桌面键盘输入键盘和鼠标输入法完整的.NETframework支持WindowsXP/XPE平板电脑复杂的文档编辑和读写桌面键盘输入支持数字墨水可以支持键盘,也可以把键盘拿走键盘、鼠标、数字墨水和语音输入完整的.NETframework支持提供笔,数字墨水,手写和语音识别APIWindowsCE小型个人产品单向网络信息消费WindowsMobileSmartphone信息消费基本数据浏览把PDA融入电话可以与Exchange交互.NETCompactFrameworkASP.NET移动控件PocketPC信息消费浏览和输入数据把电话融入PDA可以与Office,Exchange和SQLServer交互.NETCompactFrameworkASP.NET移动控件WindowsEmbedded家族目录什么是嵌入式操作系统?常用嵌入式操作系统简介

WindowsEmbeddedVxWorksEmbeddedLinuxVxWoksVxWorks是风河公司开发的一款商用硬实时操作系统主要思想:在嵌入式系统中最大限度地实现内核的时间可预测性,根据用户定义的任务优先级对任务实现调度。给用户最大的控制权VxWoks为追求系统的实时性而设计的,并不是以通用OS为设计目标。去掉了一些OS模块,因为这些模块在某种程度上会影响系统的实时性(如在内存管理中没有采用页面管理模式,采用的是平板式内存。VxWoks任务调度采用的是基于优先级的抢占式任务调度模式,优先级分256级(0-255)用户可以动态的改变优先级,但是这种做法不提倡用户可以锁定一个任务使它不被更高的任务或中断抢占允许使用固定优先级响应时间来检查任务调度的性能VxWoks资源共享和优先级继承机制采用最优化的上下文切换和中断返回机制.内核从不禁止非屏蔽中断NMI(non-maskableinterrupts)VxWoks–缺点缺少某些OS特性保证时限要求是设计者自己的任务(系统的灵活性带来的弊端)不支持很多应用和APIs(只支持部分POSIX标准的函数集)尽管采用了平板式内存管理,但是由于内存的动态分配,仍然存在内存段,这样仍然存在时间上的不可预测性VxWoks–缺点应用领域主要局限在对实时性要求较严格的硬实时系统中带给用户最大的控制权的同时,用户对系统的实时性调度责任也更大Tornado——集成开发环境GDB——调试工具WindView——多任务跟踪和观察工具目录什么是嵌入式操作系统?常用嵌入式操作系统简介

WindowsEmbeddedVxWorksEmbeddedLinux主要内容嵌入式Linux概览使用嵌入式Linux的开发过程嵌入式Linux与WindowsCE将Linux嵌入到各种设备中:NASA个人助理开发过程Linux操作系统选择操作系统的移植与改进DriverandApplicationsoftwaredevelopment从系统设计测试

Rehat,bluecat,RTLinux,MontaVistaLinux,RTAI,……Tekram,HP,Intel,…嵌入式Windows与嵌入式LinuxJerryKrasner与RickRehrbraum

之争版权费开发环境功能上市时间开人员数非常便宜并非所有的嵌入式windows产品都便宜更好不同意更多不同意更短更少不确定不确定硬件支持差不多Linux更好

嵌入式Windows与嵌入式Linux目前嵌入式系统项目中使用的目标操作系统以及二年后使用的操作系统,2002,数据来自EDC两者都呈强健的上升趋势!续作业Vxworks操作系统有哪些优缺点?什么是嵌入式embeddedLinux?给出几个例子。与嵌入式Linux相比嵌入式Windows有何优点?应用WindowsCE与嵌入式Linux进行嵌入式系统开发,二者的开发流程有什么不一样?嵌入式软件开发导论3.

WindowsCE简介目录HelloWindowsCE!WindowsCE特性与桌面版OS比较与其他嵌入式OS比较演示:

HelloWindowsCE!WinCE能做什么:手机WinCE能做什么:PDA便携式多媒体设备WinCE能做什么:游戏机LinuxWindowsWinCE能作什么:汽车电子BMWCitroënClarionCo.Ltd.DaimlerChryslerFiatSubaruHondaHyundaiMitsubishiToyota…WinCE能做什么:其它网关工业控制机顶盒医疗设备银行ATM系统放映机和大屏幕显示器VoIP设备…WindowsCE发展历史1996年发布WindowsCE1.0WindowsCE.NET4.x被广泛应用最新版WindowsCE5.0WindowsCE特点与桌面版本比较:

硬件平台桌面版WindowsOnlyruns

onx86architectureWindowsCEARM/XscaleMIPSPowerPCSHx86WindowsCE特性WindowsCE能运行在不同的硬件平台之上:是如何实现的?NewPlatformWizard答案是BSP!BSP介绍BSP(BoardSupportPackage,板级支持包)是用来支持OEM适配层(OEMadaptationlayer,OAL)和软件开发板(softwaredevelopmentboard,SDB)的设备驱动的这部分软件。HardwareOperatingSystemBoardSupportPackage与桌面版本比较:

镜像大小桌面WindowsWindows3.x:2-5MBWindows98:400MBWindowsXP:1.5GB越来越大…不能定制WindowsCE最小:200KB网络部分大约800KBGWES,ShellandApps大约4MB

InternetExplorer大约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的系统通常资源受限与桌面版比较:

微内核桌面WindowsNT系列力求微内核9xseries不是微内核WindowsCE微内核文件系统和设备驱动运行在用户模式内核负责传递消息WindowsCE特性:微内核增强的可靠性增强的可扩展性与桌面版比较:

共享源代码桌面Windows商业软件,源代码是微软的一级机密WindowsCEWindowsCE公开了70%的源代码用户可以对它进行修改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缺点:对于一些特殊的应用,镜像可能过大实时性?非免费:3$perruntimelicense995$forPlatformBuilder性能和安全性?作业用PlatformBuilder创建一个自己的WindowsCE平台,并运行它。熟悉WindowsCEGUI,文件系统,控制面板…用PlatformBuilder完成一个tic-tac-toe程序,在你自己的WindowsCE平台上运行它。嵌入式软件开发导论4.应用程序开发目录工具和技术常规的应用开发步骤WindowsCE编程特点WindowsMobile开发PocketPCSmartphone模拟器概述目录工具和技术常规的应用开发步骤WindowsCE编程特点WindowsMobile开发PocketPCSmartphone模拟器概述什么是应用程序开发在特定的WindowsCE平台下使用该平台的编程接口实现各种功能平台的价值依赖于运行在其上的应用程序WindowsCE应用程序开发工具PlatformBuilderEmbeddedVisualC++VisualStudio.NETEmbeddedVisualTools3.0(不提倡,被废弃)PlatformBuilderPlatformBuilder支持WinCEApp/DLL/Lib,使用Win32API开发应用程序将被链接到OS内核中一旦修改代码,必须再重新编译镜像容易调试OS内核,不容易调试应用程序首先必须创建一个debug版的OSDebugZoneEmbeddedVisualC++EmbeddedVisualC++支持WinCEApp/DLL/COM/LibusingWin32API,MFC,ATLandSTL与VisualC++6.0具有相似的工程管理模式和用户界面易于调试和测试必须安装相应的为特定平台开发的SDK,从而开发相应的应用程序VisualStudio.NETVisualStudio.NET2003开发WindowsCEApp/Assemblyusing.NETcompactframework可使用C#,VB.NET,J#...VS.NET具有完整的开发环境目标平台上需要安装.NETcompactframework易于调试和测试EmbeddedVisualTools3.0包括EmbeddedVisualBasic3.0andEmbeddedVisualC++3.0用户界面类似VisualStudio6.0开发的程序只能用于WindowsCEVersion3.0NativeApplicationModelManagedApplicationModelVisualStudio.NET2003C#orVB.NET.NETCompactFrameworkRuntimeCorC++Win32ApplicationsCompiledPlatformBuilderWindowsCEOperatingSystemCorC++Win32ApplicationseMbeddedVisualTools应用程序开发选择应用程序开发选择(将来)VisualStudio2005C#orVB.NET.NETCompactFramework2.xCorC++Win32ApplicationsWindowsCEOperatingSystemCorC++Win32ApplicationsPlatformBuilder相关技术

你有哪些选择?Win32MicrosoftFoundationClass(MFC).NETCompactFramework相关技术

对大小的影响RuntimeSize(Byte)SizeIncrementWin329,805,2310MFC10,234,415429,184.NETcompactframework11,201,4591,396,228*该测试是基于InternetAppliance“平台相关技术

开发和执行时间Developtimeperformanceruntimeperformance.NETCompactframeworkMFCWin32API相关技术

结论确定使用何种模式取决于你是否使用了Win32/MFC/C#/VB来开发程序,以及系统对操作系统镜像大小的要求,同时还要考虑其他因素,如应用程序开发速度以及系统的可靠性和兼容性等。

你可以根据项目的工作层来整合和匹配代码,如工作在:驱动中的Win32,Win32,MFC或者终端用户程序的C#/VB,开发人员可以充分利用他们在桌面windows下的开发经验来快速开发WindowsCE产品。目录工具和技术常规的应用开发步骤WindowsCE编程特点Windows移动开发PocketPCSmartphone模拟器概述常规的应用开发步骤:获得特定WindowsCE平台的SDK.在WindowsCE模拟器上编辑和调试代码.在实际目标平台上,编译、运行程序,如果需要在设备上调试程序,可以通过

ActiveSync.第一步:获得SDKSDK是用于在EVC和VisualStudio下开发应用程序的获得SDK的两种方法微软或第三方提供为自己的平台导出SDKMicrosoft提供:StandardSDK(CommonSDKdev)WindowsMobileSDK(PocketPC…)PB下的SDK向导它是一个工具,用来产生和导出特定平台的SDK(softwaredevelopmentkit)。被导出的SDK由头文件、库文件、运行文件、平台的外延和帮助文件等组成。应用程序开发人员可以利用这个SDK去关联MicrosoftembeddedVisualC++4.0或MicrosoftVisualStudio.NET,为特定平台开发应用。Platform->ConfigureSDKPlatform->BuildSDKPB、SDK和开发工具间的关系图演示:

在PB下导出SDK,

为EVC使用提示:只在StandardSDK不能满足需求时才使用自己的导出SDK用Platform->Configure

SDK

来配置SDK从控制面板中卸载SDK第二步:在模拟器下编程和调试与VisualC++6.0andVisualC++.NET类似取决于你的WindowsProgramming知识平台管理器(PlatformManager)它是一种通讯机制,用来管理宿主机和目标机之间的通讯。平台管理器允许宿主机上的开发工具以介质无关的方式下载和连接目标机,PB,EVC4.0,和Microsoft.NETCompactFramework使用平台管理器下载诸如应用、MSActiveX控件、实时运行库和远程客户端工具等到目标机上。WorkstationCEDeviceTCP/IPKITLActiveSyncPlatformManager远程工具你可以在宿主机上远程执行位于目标机上的各种程序不同的平台支持不同的远程工具位于PB和EVC的Tools

菜单下开发者可以使用相应的接口和APIs产生新的远程工具工具名称描述RemoteCallProfilerProvidesprofilingandanalysistoolswithinagraphicaluserinterface(GUI)thatenableyoutoidentifyalgorithmicbottlenecksinyourapplications.RemoteFileViewerDisplaysahierarchicalviewofthefilesystemonatargetdevice.RemoteHeapWalkerDisplaysinformationaboutheapidentifiersandflagsforprocessesthatarerunningonatargetdevice.RemoteKernelTrackerDisplaysarepresentationoftheexecutionoftheoperatingsystem(OS)onatargetdevice.RemotePerformanceMonitorMeasurestheperformanceofatargetdevice.RemoteProcessViewerDisplaysalistofprocessesandthreadsrunningonatargetdevice.RemoteRegistryEditorDisplaystheregistryforatargetdeviceandenablesyoutomanagetheregistry.RemoteSpyDisplaysalistofwindowsopenedonatargetdeviceandmessagesgeneratedbythosewindows.RemoteSystemInformationDisplayssystemsettingsandpropertiesforatargetdevice.RemoteZoom-inDisplaysanimagefromthescreenofatargetdevice.演示:

EVC下的HelloWorld

和远程工具第三步:在目标机上的运行和调试根据目标机使用的CPU编译程序下载这个可执行文件到目标机上,然后运行该可知行文件

如果需要,使用ActiveSync一步一步调试程序介绍ActiveSyncActiveSync提供了一种支持,用来同步基于桌面Windows系统和基于CE.NET的便携式系统间的数据,它使用时间标记(stamps)和用户参数来跟踪两个系统间的数据改变,并传送相应的数据使得每个系统上的数据都是最新的,过时的或者冗余的数据会被删除。ActiveSync支持USB,红外,调制解调器,以及Ethernet等多种连接。ActiveSync不支持CE设备间的数据同步,也不支持CE设备和服务器间的数据同步。ActiveSync工作模式使用ActiveSync调试安装ActiveSync(从Microsoft网站获得)宿主机和目标机间提供至少以下一种连接SerialUSBInfraredModemEthernet在EVC下选择“WindowsCEDevice”inEVC,调试运行在目标机上的程序目录工具和技术常规的应用开发步骤WindowsCE编程特点Windows移动开发PocketPCSmartphone模拟器概述GDI编程不能使用TextOutAPI注意CreateFontAPI注意WindowsCE调色板输入:Stick不能使用WM_MOUSEMOVE消息,使用GetMouseMovePointsAPI。WindowsCE数据库WinCEOS提供的APIs,用来支持简单的数据库应用不能被其他版本的Windows使用APIs:CeCreateDatabaseCeDeleteRecord…串行通讯//TraditionalWin32way.hSer=CreateFile(TEXT(“COM1:”),GENERIC_READ,0,NULL,OPEN_EXSITING,0,NULL);rc=ReadFile(hSer,&ch,1,&cBytes,NULL);TransmitCommChar(hSer,‘a’);CloseHandle(hSer);问题:我们能用什么,除了“COM1”以外RAPIRAPI是一个接口,它可以使运行于桌面系统的应用调用目标机上的函数。桌面系统被叫作RAPI客户端,目标机被叫作RAPI服务器端。

RAPI远行在WinsockandTCP/IP之上,API通常以Cexxxx开头。RAPI结构WinCERunRAPIApplicationRAPIServer目录工具和技术常规的应用开发步骤WindowsCE编程特点WindowsMobile开发PocketPCSmartphone模拟器概述介绍Windows

MobileWindows

Mobile是微软为PocketPCs和Smartphones开发的软件平台

Windows移动延伸到微软的桌面系统和个人设备Windows移动家族PocketPCSmartphoneWindows汽车电子SmartphonePocketPC为什么要开发Windows移动移动设备的市场越来越大截止2008,将会有超过10亿集成设备和2亿的移动手机用户(IDC,2004).PocketPC已经是PDA市场的龙头,超过PalmSmartphone的快速发展WindowsMobile的特点Microsoft提供了平台和SDKOEMs提供硬件开发人员不能修改Platform特性Windows移动开发

第一步:下载和安装SDKsURL:/mobility/downloads/sdks/default.aspxSDK能被用在EVC和VisualStudio.NET2003上Windows移动开发

第二步:开发、调试,运行参考前面的部分你需要知道什么1.只能使用Unicode字符集a.ANSI是一个字节,UNICODE是两个字节b.声明:CHAR->WCHAR

orTCHARc.字符串函数:strlen()->wcslen()strcmp()->wcscmp()你需要知道什么(2)2.注意内存的使用减少静态和全局变量的使用注意函数的递归注意图片、视频文件的大小检查动态内存的分配情况你需要知道什么(3)3.检查屏幕分辨率620×240、240×320….屏幕分辨率例子我们在哪?Getplatform&SDKfromOEMsCoding&TestingReleasetoManufactureExportyourSDK目录工具和技术常规的应用开发步骤WindowsCE编程特点Windows移动开发PocketPCSmartphone模拟器概述概述仿真器是一个用来模拟支持WindowsCE平台的硬件行为的工具。

使用仿真器,你不需要硬件就可以设计、建立和测试一个CE平台,它是用软件的形式来实现对硬件平台的模拟。用软件模拟硬件。相关软件MicrosoftVirtualPCVMWare共享代码的Bochs使用场景平台开发DMA的支持支持KITL,可以调试OS应用开发用你的SDK发布它在真实的环境上运行前,测试你的应用在模拟器上映射一个目录使用模拟器,你可以将一个宿主机上的目录映射到仿真器上,就好像这个目录是安装在模拟器上的一个驱动设备。在模拟器的文件里,这个映射到模拟器上的目录现在处于根目录下,名字是StorageCard,模拟器一次只能映射一个目录。在模拟器上映射一个目录映射一个目录到模拟器上在模拟器上,运行一个WindowsCE系统,它可以支持宿主机目录映射到模拟器上在模拟器窗口里,从模拟器菜单中选择文件夹共享

选择共享文件夹选择一个目录共享,然后点OK删除映射目录在模拟器窗口里,从模拟器菜单中选择文件夹共享

在共享文件夹中选择目录的路径

选择不共享模拟器的限制—

通讯和网络模拟器要运行在NAT连接上拨号连接不支持模拟器不能建立RemoteDesktopProtocol(RDP)不支持:IrDABluetooth802.11模拟器的限制—

硬件限制Universalserialbus(USB)设备PCCard设备存储设备,包括CF卡和硬盘文件系统驱动,包括fileallocationtable(FAT),compactdisc(CD),anddigitalvideodisc(DVD)driversIEEE1394devices仿真器的限制—

多媒体限制不支持对多媒体的硬件加速DirectXWindowsMediaDVD-VideoAPIDigitalrightsmanagement(DRM)VoiceoverIP(VoIP)Multiple-screensupport下一节,我们将在真正的硬件系统上学习作业在PB上导出你自己CE的SDK在EVC下重写tictactoe程序,用你自己的SDK,如果可能使用MFC,要包括以下特性:用户可以选择外形尺寸存游戏结果到WinCE数据库(如23赢10输)移植这个游戏到pocketPC和smartphone(没鼠标……)嵌入式软件开发导论5.操作系统开发目录介绍PlatformBuilder用户界面UI目录(Catalog)and特性(Feature)配置平台平台创建流程Build系统定制目录Catalog目录介绍PlatformBuilder用户界面UI目录(Catalog)and特性(Feature)配置平台平台创建流程Build系统定制目录Catalog介绍PlatformBuilder一个定制基于WindowsCE的平台定制集成开发环境(IDE)提供所有与基于WindowsCE平台设计、创建、编译、测试和调试相关的开发工具该集成开发环境提供统一的与平台和项目相关的工作空间

PB能做什么?(1)平台向导帮助你创建一个新的平台(platform)BSP向导帮助你创建新的板级支持包(BSP)目录(Catalog)显示用户定制的平台OS属性列表依赖性自动监测(Automateddependencychecking)可以确保与平台相关的所有属性都会被包含在OS镜像中

导出向导可以导出目录中的属性给其它PB使用者

基本配置(Baseconfigurations)是创建用户特定定制OS的起点PB能做什么?(2)WindowsCE测试套件(TestKit)提供了整套驱动测试工具

内核调试器可以调试定制的OS镜像,同时提供给用户镜像运行状况的信息

应用调试器可以调试在特定OS上运行的应用程序

远程工具可以调试基于WindowsCE的目标机上运行任务,并获取相关信息

模拟器通过模拟硬件可以加快和简化开发过程,使用户可以在宿主机上完成平台和应用程序的初步开发

SDK导出向导可以为用户导出一个特定的软件支持包(softwaredevelopmentkit—SDK).平台向导(PlatformWizard)平台向导帮助你一步步的创建一个基于WindowsCE的平台使用平台向导的4步选择一个安装的BSP为你的设备选择一个基本平台配置

为你的设备选择配置变量

为你的平台选择其它的属性PlatformBuilder用户界面TextEditorWorkspaceWindowSearchTextConnectivityDeviceNameOutputWindowsDebugtoolstatusindicatorsMultipleviewsoftheworkspaceBuildConfiguration目录(Catalog)包含BSPs,驱动,OS内核配置和平台管理器等,在目录中出现的所有项目包含了你所设计的CE平台所使用到的属性BSP:BoardSupportPackagesCoreOS:includesheadlessdevicesanddisplay-baseddevices:ApplicationsandServicesDevelopmentApplications-EndUserCommunicationServicesandNetworkingCoreOSServicesFileSystemsandDataStoreFontsInternationalInternetClientServicesMultimediaTechnologiesSecurityShellandUserInterfaceDeviceDriversPlatformManager目录(Catalog)项属性组(FeatureGroup)和属性(Feature)属性组定义了通用的属性而没有定义具体的实现。属性组在你选择一个实现的时候才被解析,这个实现决定了它的具体功能。一个属性是OS组件的任何一个逻辑群Feature图标图标描述BSPCoreOSdesignCatalogitemgroup.RequiredCatalogitem.OptionalCatalogitem.Catalogitem,type,orimplementationexcludedfromthecurrentOSdesign.FolderCatalogitemthathasoneormorespecialnotifications.CatalogpropertiesforaspecificimplementationofaCatalogitem.Implementation

Feature图标(2)图标描述User-specifiedCatalogitem.Catalogitem(optional).Catalogitemthatcanbebuiltbutisexcludedfromtherun-timeimage.Catalogitemexcludedfromthebuildandtherun-timeimage.Sourcecodefile.Feature选项显示备选feature信息.Feature依赖关系显示备选feature的依赖关系挑战了解尽可能多的features挑战丰富的经验和知识没有这些不能设计合理的平台WindowsCE上可以使用简体中文?WindowsCE支不支持VBScript?关于属性的功能可参照:有关WindowsCE.NET->CatalogFeaturesPlatformSetting使你可以浏览和修改关于整个平台的每个属性的选项菜单:Platform->Settings…BuildOptions(1)EnableCETargetControlSupport选择该选项可以在启动时使能目标控制功能(targetcontrolsupport).选择这一项同时也打开了内核无关传输层(KernelIndependentTransportLayer—KITL).EnableEbootSpaceinMemory

选择该选项可以在Config.bib文件中预留内存空间,允许在启动过程中操作系统可以读取bootloader存储的数据.EnableEventTrackingduringBoot选择该选项可以开启事件跟踪子系统(event-trackingsubsystem).EnableFullKernelMode

选择该选项可使线程运行在内核模式,选择该模式会使系统较脆弱,但是性能会有所提高.EnableImageforFlash选择该选项可以使编译好的镜像下载后被烧写的到Flash中BuildOptions(2)EnableKernelDebugger

允许调试器建立宿主机和目标机间的链接和传送调试信息EnableKITL

要建立宿主机和目标机间的通讯就必须选择该选项,取消该项也会同时取消被选定的“EnableCETargetControlSupport”选项EnableProfiling选择该选项可以将WindowsCE的有关内核的信息以日志的形式装入平台镜像中EnableShipBuild这是一个有条件编译的标志,设置它表示OS会提供详细的调试信息来帮助调试.FlushEventstoReleaseDirectory选择该选项将事件放入release目录,同时开启事件跟踪平台配置文件PlatformBuilder使用两类配置文件:

原码配置文件Build工具使用原码配置文件去build模块、属性,同时为你的OS镜像build原码

镜像配置文件MakeBinaryImage工具调用相应的工具,这些工具使用镜像配置文件来产生OS镜像原码配置文件文件类型描述DirsFile描述包含源代码的子目录SourcesFile包含要编译的代码及宏MakefileFileMakefile镜像配置文件参数视图配置文件:.BIB文件表明应该被包含在镜像中的模块和组件包含4个部分的文本文件:文件部分:为静态数据文件预留的内存模块部分:指定被装载到内存中的目标模块;Name Path MemoryTypeTahoma.ttf $(_FLATRELEASEDIR)\Tahoma.ttfNK SHUTaskman.exe $(_FLATRELEASEDIR)\Taskman.exeNK

配置文件:.BIB文件内存部分

定义平台的内存信息划分物理内存的数据存储和程序存储部分配置部分不是必须的用来设置属性等Name Startaddress Size(bytes) Type

NK 8C800000 00800000 RAMIMAGE

RAM 8C050000 007AFFFF RAM配置文件:.REG文件定义默认的注册设置COMMON.REG,IE.REG,WCEAPPS.REG,WCESHELL.REG:为WindowsCE模块定义注册设置PLATFORM.REG:与平台相关的注册设置,如驱动入口等PROJECT.REG:定义与你的工程相关的注册设置[HKEY_LOCAL_MACHINE\init]“Launch10”=“shell.exe”“Launch20”=“device.exe”配置文件:.DAT文件定义镜像的文件夹结构COMMON.DAT,IE.DAT,WCEAPPS.DAT,WCESHELL.DATPLATFORM.DATPROJECT.DAT例子:Root:-Directory(“ProgramFiles”)Directory(“\ProgramFiles”):-Directory(“MyProjects”)Root:-Directory(“MyDocuments”)Directory(“\MyDocuments”):-File(“MyFile.doc”,“\Windows\Myfile.doc”)配置文件:.DB文件定义默认的镜像数据库COMMON.DB,WCEAPPS.DB,WCESHELL.DB这些.DB文件是与Common,Wceapps,andWceshell模块相关的数据库PLATFORM.DB该文件包含特定平台的默认数据库

PROJECT.DB该文件特定工程的默认数据库产生镜像整合release文件夹中的文件来生成WindowsCE镜像过程整合配置文件:

所有的.bib文件到CE.BIB

所有的.reg文件到REGINIT.INI

所有的.dat文件到INITOBJ.DAT

所有的.db文件到INITDB.INI压缩reginit.ini到二进制注册文件(DEFAULT.FDF)由于语言的适配,替换.exeand.dll中的资源forlanguageadaptation生成WindowsCE镜像(NK.BIN)Build的几个阶段Sysgen阶段FeatureBuild阶段ReleaseCopy阶段MakeImage阶段当你在IDE的Biuld菜单下选择

BuildPlatform

命令时,系统创建平台依次经历了以下4个过程:Sysgen阶段任务链接相应的静态库到模块MakeSDK过滤系统头文件,产生只包含为声明被平台导出的函数的头文件.为系统模块产生输入库构建板级支持包(BSP)SystemGenerationCompleteheaderandsourcecodefilesCompletesystemlibrariesModuledefinitions(.def)Cesysgen.batSystem-specificheaderfilesLinkedlibrariesSpecific.deffilesSYSGEN.BATFeatureBuild阶段任务所有的用户属性,包括PB工程文件(.pbp),dirs文件,源文件,makefiles(.mak)被编译和创建ReleaseCopy阶段任务拷贝所有用户生成OS镜像所需的文件到release目录下,在Sysgen阶段生成的模块和文件首先被拷贝,接着是FeatureBuild阶段生成的模块和文件.MakeImage阶段任务Rrelease目录中的文件被整合的二进制镜像文件Nk.bin中.这一阶段对应Build菜单下的

MakeImage

命令

Build过程COMMONDATASYNCDCOMDIRECTXIERDPSCRIPTSERVERSWCEAPPSFEWCESHELLFE…..\cesysgen\ddk..\cesysgen\oak..\cesysgen\sdk\target,\filesStep1.SystemGenerationStep2.BuildStep3.BuildingtheReleaseDirectoryStep4.MakinganImageNK.BIN..\platform\..\target,\files%_FLATRELEASEDIR%Build结果nk.bin:WindowsCE二进制镜像数据格式运行时必须首先装载到内存中.由数据段和代码段组成nk.nb0:二进制数据文件格式能够被转载到Flash中可以以XIP模式运行XIP介绍ExecuteInPlace的简称程序的执行可以直接在ROM中,而不是必须得先装载到RAM中

被NORflash类型的闪存支持如何解决Build中的错误查看Output

窗口NoenoughharddiskspaceCompile&linkerror检查WINCE420根目录下的Build.log&Build.err

文件详细的输出信息Windows编程经验和知识是你解决问题的关键解释BuildErrorsSysgen阶段的错误Causedbymissingfiles,missingconfigurationoftheoperatingsystemfeatures,andapplicationsbuiltduringtheSysgenphaseModulebuild阶段的错误CompilationerrorsorunresolvedlinkerrorsBuildingthereleasedirectory阶段的错误FilecopyerrorsMakinganimage阶段的错误Romimage.exefailedinCE.BIBRomimage.exefailedinreginit.iniWarning:Imageexceeds作业阅读在线文档“CEPCHow-toTopics”和“Tutorial:UsingPlatformBuilderwithaCEPC”,x86硬件平台上下载、运行自己的一个WindowsCE提示:制作wince的启动盘和配置IP地址用cepcBSP创建你的WinCE用你的启动盘启动系统通过TCP/IP链接、下载目录介绍PlatformBuilder用户界面UI目录(Catalog)and特性(Feature)配置平台平台创建流程Build系统定制目录Catalog应用程序开发回顾Getplatform&SDKfromOEMsCoding&TestingReleasetoManufactureExportyourSDK平台创建流程得到特定软件开发板(specifiedSoftwareDevelopmentBoard—SDB)的BSP用PlatformBuilder定制平台通过SDB下载、调试和运行平台为你的平台构建发布版系统第一步:获得BSPMicrosoftCEPC第三方OEMsMotorolaDragonballAdvantech7230…生成自己的BSP后面讨论…从哪获得BSP?安装和使用BSP如果BSP是以MSI文件提供,象其它的软件那样安装它如果BSP是以源文件的形式提供,在PB中添加相应的.CEC文件注意:你必须首先在PB中安装了相应CPU的支持演示:

安装和使用MotorolaDragonBallMXLBSP第二步:定制平台在Microsoft提供的模板中选择一个,在它的基础上进行修改从头定制HLBaseandIABaseHL意思headless,表示该OS没有图形用户界面GUI如果选择IABase,OS包含GUI第三步:通过SDB下载、调试和运行平台获得EbootorSboot配置网络配置串行调试接口(可选)配置PlatformBuilder链接下载OS镜像到板子常规步骤:获得EbootorSbootBootloader通常做为BSP的一部分由OEMs提供.bootloader的目的是装载OS镜像到内存中,然后跳到OS启动程序Eboot:EthernetBootloaderSboot:SerialBootloader通常在release版中被除去各种BootloaderFlashintoflashRomUsebootfloppydiskUseCFcard…唯一的目的:下载OS镜像为串口配置网络只插串口链接线缺点:太慢为以太网配置网络用Hub为以太网配置网络使用独立的网络链接配置串行调试接口插RS232串口适配器到ADS板和你主机上默认的COM口.选择StartMenu→Programs→Accessories→Hyperterminal→Hyperterminal去激活一个Hyperterm窗口超级终端配置PB链接从Target->ConfigureRemoteConnection配置PB链接Eboot会向LAN发送广播包,PB接收和显示设备ID下载OS镜像到板子在PB中点击Target→Download/Initialize.在设备的屏幕上你会看到我们到哪了?Gethardware&BSPfromOEMsNeedplatformcustomization?Getplatform&SDKfromOEMsCustomizeyourWinCEplatformExportyourSDKCoding&TestingReleasetoManufacture目录介绍PlatformBuilder用户界面UI目录(Catalog)and特性(Feature)配置平台平台创建流程Build系统定制目录CatalogPB目录结构DirectoryDescriptionOthersRun-timefiles,binaryfilesforbuildingOSimagefiles,registryfiles,andbatchfilesthatareusedtoaddfilestoanOSimage.PlatformBSPandDevice-specificfilesanddirectories.PrivateSourcecodefortheWindowsCEOS.PublicDirectoriesfortheWindowsCEOSconfigurations.SDKToolsandlibrariesintheWindowsCESDKthatsupportPlatformBuilder.环境变量%_WINCEROOT%-WindowsCE安装的根目录通常为C:\WINCE500%_PUBLICROOT%-%_WINCEROOT%\PUBLIC%_PLATROOT%-%_WINCEROOT%\Platform其它在build窗口的命令提示符中使用‘set’

可以查看当前的环境变量包含与特定硬件平台相关的BSP文件定位在以下目录%_WINCEROOT%\Platform包含以下子目录每一个目录用于描述某一特定WindowsCE平台的应用每一目录包含一个dirs文件和至少

一个特定BSP的批处理文件将你与该特定硬件平台相关的文件放入对应目录Platform目录Public目录包含与平台无关的组件和配置设置定位在以下目录%_WINCEROOT%\Public包含以下子目录:模块、组件子目录Common,Wceshellfe,Wceappsfe,IE,Servers相关配置子目录-CEBASESDK目录定位在以下目录%_WINCEROOT%\SDK包含支持PlatformBuilder的工具ProcessorcompilersDevelopmenttoolsMiscellaneousutilitiesOthers目录定位在以下目录%_WINCEROOT%\OTHERS包括以下子目录:ATL:包含调试用的ATL头文件,库和原码等DOTNET:包含.NET可用的各处理器的二进制文件和portable.NETCompactFramework文件MFC:包含调试用的MFC头文件,库和原码等

SAMPLES:包含MFC和ATL应用例程WCETK:包含WindowsCETestKit(CETK)相关二进制文件Private目录定位在以下目录%_WINCEROOT%\PRIVATE在安装的时候必须检查选项,与SharedSourceLicense项保持一致你可以装载你的产品的最新版私人代码Premium(“Almosteverything”)Source都是可用的包括的:KernelGWEScomponentsFilesyscomponents回顾Build的4个步骤2134

SYSGEN根据OS设计配置过滤模块和组件Build使用DIRS,SOURCES和OS设计工作空间为BSP和应用build原码BUILDREL拷贝文件到release目录下MakeImage用release目录里的文件身成OS实时镜像1234BuildSystem概述IDE作为客户端,通过命令行创建buildsystem.命令行工具使用环境变量确认Build设置,并调用编译器和连接器命令行工具存放在:%_PUBLICROOT%\COMMON\OAK\MISC环境变量重要目录%_WINCEROOT%%_PublicRoot%可选的OS属性SYSGEN_AYGSHELLSYSGEN_BATTERYSYSGEN_STANDARDSHELLPlatform->SettingoptionsIMGAUTOFLUSHWINCESHIPIMGRAM64原码结构DIRSSOURCESMakeFilemakefile.defDIRS文件DIRS类似工作空间“Workspace”中包含的工程“projects”列表文本文件列出了包含其它DIRSorSOURCES文件的目录列表BUILD.EXE通过读DIRS文件确定build的内容例如:DIRS=\ Eboot\ DriversSOURCESSOURCES工程的源文件列表TARGETNAME输出目标名(非扩展)TARGETTYPEPROGRAM–(.EXE)ApplicationDYNLINK–(.DLL)DynamicLinkLibraryLIBRARY–(.LIB)Staticlibrary文件结构文本文件被包含在makefile.def,提供给目标机关于build的相关信息MAKEFILE.INCSOURCESMAKEFILE.DEFLocalprojectfolder%_MAKEENVROOT%有用的命

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论