《系统开发概述.pptx》由会员分享,可在线阅读,更多相关《系统开发概述.pptx(70页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 概述Windows嵌入式系统选择原则WinCE系统定制与开发 为应用开发创建SDK WinCE应用开发WinCE调试方法解析 使用模拟器和远程调试工具 第1页/共70页2Windows嵌入式系统选择原则选择一个Windows嵌入式系统WindowsCE版本与SDK之间的关系第2页/共70页3选择一个Windows嵌入式系统电池驱动?CPU架构?OS RAM 的占用情况?使用现有的应用程序?16 MB+X86 PCNo第3页/共70页4选择一个Windows嵌入式系统(Continued)FeatureWindows CEWindows XPEDisk Space5MB-56MB500 k
2、16MBImage Size200KB 14MB+5 MB 35 MB+ConfigurabilityExtremely modularModularAPI SupportBest of Win32 plus Windows CE-specific enhancements Complete Win32,same as XPCPU Supportx86,MIPS,SHx,ARMPentium class x86Device DriverFine-tuned for sizeSame as XPSecurityImproved over 3.0Same as XPDevelopment Envi
3、ronmentWindows 2000/XPPlatform BuilderWindows 2000/XPTarget Designer第4页/共70页5WindowsCE的版本与SDK之间的关系目前比较常用的Windows CE三代产品,其内核分别是Windows CE 3.0、Windows CE.Net 4.2、Windows CE 5.0。开发平台开发平台内核版本内核版本开发工具开发工具Pocket PC 20023.0EVC 3.0EVB 3.0Windows Mobile 2003Pocket PC 20034.2EVC 4.0Visual Studio.Net 2003Visua
4、l Studio.Net 2005SmartPhone 20034.2Windows Mobile 2005Pocket PC 20055.0SmartPhone 20055.0第5页/共70页6WinCE系统定制与开发介绍Platform Builder配置WinCE操作系统构建OS映像加载OS映像平台开发过程第6页/共70页7介绍Platform Builder配置WinCE操作系统从Platform wizard开始选择系统功能特征选择已有的BSP嵌入式WinCE开发工具编译器基于IDE的调试器WinCE远程工具导出SDK集成开发环境(IDE)运行时库样本程序第7页/共70页8配置Win
5、CE操作系统Platform Wizard可用的BSPsPlatform ConfigurationsApplication and MediaNetworking and CommunicationsFinish第8页/共70页9Platform Wizard允许为你的平台选择一个基本的操作系统选择操作系统的初始特性选择一个预先配置的BSP设定支持操作系统的环境和文件第9页/共70页10选择可用的BSPs一个BSP表示基本的OAL和驱动集合,直接与硬件平台通信创建一个指定特性集BSP,作为一个平台的默认功能。如果需要把自建的BSP整合到Platform wizard,必须使用BSP Wiza
6、rd.第10页/共70页11Platform Configurations选择与你的应用平台最接近的设计模版第11页/共70页12Application and Media依赖于你选择的平台默认选项与所选择的平台相关在该项目下添加或删除对应的组件第12页/共70页13Networking and Communications第13页/共70页14Finish第14页/共70页15构建OS映像IDE环境介绍状态监控WinCE映像文件第15页/共70页16IDE环境介绍状态监控第16页/共70页17WinCE OS映像All.EXEsAll.DLLsAll Data Files(.txt,.doc
7、,.wav,)NK.BIN第17页/共70页18加载OS映像配置设备配置远程服务以太网设置使用BOOTME下载映像到设备第18页/共70页19配置设备开发工作站的线缆连接至少需要一个主要的下载线缆方式,如:100Base-T、并口、串口或者JTAG设置下载的适配器对于某些设备,如网卡,需要设置特定的参数设置视频适配器选择适合设备硬件的视频模式构建时从PB中添加合适的视频适配器驱动设备相关的配置问题Bootloader相关的技术也许需要从一系列菜单中选择合适的操作第19页/共70页20配置远程服务Target菜单允许你控制目标板上的服务第20页/共70页21以太网设置配置当前设备连接的以太网参数
8、第21页/共70页22使用BOOTME当使用以太网下载服务,第一个包将发送BOOTME包目标板与主机必须在同一个子网接收捕获到的CE设备名现在可以下载映像文件到目标板了第22页/共70页23加载OS映像在Target菜单中选择下载Reset目标板目标板通过以太网口下载NK.bin文件第23页/共70页24平台开发过程并行开发的优点典型的项目推进表迭代开发过程第24页/共70页25并行开发的优点Port H/WCustomize OSDevelop Apps串行开发模型并行开发模型Port H/WCustomize OSDevelop Apps第25页/共70页26典型的项目推进表Boot lo
9、aderOAL时间时间Driver ADriver BDriver N在 SDB上开发SDB在在H/WH/W上优化上优化OSOS最后验证完成移植完成移植在在 SDBSDB上定制上定制OSOS早期测试在H/W上开发App完成项目完成项目稳定的硬件平台稳定的硬件平台移植OSOSAppsQA%完成百分比完成百分比第26页/共70页27迭代开发过程BuildMake Platform HeadersCompileLinkMake Image (NK.BIN)Download Connect via Ethernet,Parallel,or JTAGCopy NK.BIN to deviceStart
10、Windows CE Debug MonitorDebugConfigure PlatformCreate PlatformModify PlatformBootloaderOALDevice DriversConfiguration FilesApplicationsAdd catalog components LocalizeExport SDK第27页/共70页28为应用开发创建SDK为什么需要SDK从PB中导出SDK导入SDKWindows CE OS configurationRun-time librariesOALDevice driversLibrariesHeader fil
11、esHelp filesRuntime filesPlatform extensionPlatform Manager componentsToolkits for Visual C+Toolkits for Visual BasicPlatform BuilderCustom SDKWindows CE Toolkits第28页/共70页29为什么需要SDKWinCE是模块化的CE设备暴露出来的接口与平台包含的组件相关很难确定给定设备所支持的API定制的SDK包含了指定设备所支持的API第29页/共70页30从PB中导出SDK必须在导出SDK之前构建好一个平台选择Platform菜单中的Co
12、nfigure SDK设置SDK信息第30页/共70页31从PB中导出SDK(Continued)接下来选择SDK支持的语言第31页/共70页32从PB中导出SDK(Continued)Platform-Build SDK 可以进一步配置SDK第32页/共70页33从PB中导出SDK(Continued)可以添加其它文件到SDK中第33页/共70页34导入SDK使用SDK安装程序安装在eVC或VS2005中选择新安装的SDKSDK可以通过控制面板的添加/删除程序卸载第34页/共70页35WinCE应用开发创建Win32应用程序有用的Win32函数Unicode Character Set进程和
13、线程异常处理第35页/共70页36创建Win32应用程序第36页/共70页37创建Win32应用程序(continued)第37页/共70页38创建Win32应用程序(continued)第38页/共70页39有用的Win32函数MessageBox Displays message windowExample:MessageBox(NULL,_T(Hello),_T(Title),0);NKDbgPrintfW Format&debug outputExample:NKDbgPrintfW(_T(Value is%dnr),iVal);第39页/共70页40ANSI Characters a
14、nd Strings:H“Hello Unicode”=Store as char or unsigned charUnicode Characters and Strings:LHL”Hello Unicode”=Store as“short or unsigned shortBi-Modal(_UNICODE)TEXT(H)TEXT(“Hello Unicode”)Unicode-Compiler Support第40页/共70页41ANSICHAR-resolves to charLPSTR-resolves to char*UnicodeWCHAR-resolves to unsign
15、ed shortLPWSTR-resolves to unsigned short*Bi-Modal(_UNICODE)TCHAR-resolves to char or unsigned shortLPTSTR-resolves to char*or unsigned short*Unicode-Data Types第41页/共70页42ANSIstrlen()-query lengthstrcpy()-copy stringstrcat()-concatenate stringUnicodewcslen()-query lengthwcscpy()-copy stringwcscat()-
16、concatenate stringBi-Modal(_UNICODE)_tcslen()-query length_tcscpy()-copy string_tcscat()-concatenate stringUnicode-C-Runtime Functions第42页/共70页43Converting to Unicodembstowcs(wchar_t*wcstr,/Output string.const char*mbstr,/Input string.size_t count);/Character count.Converting From Unicodewcstombs(ch
17、ar*mbstr,/Output string.const wchar_t*wcstr,/Input string.size_t count);/Character count.Unicode-C-Runtime Conversion Functions第43页/共70页44线程和进程Processes同时可以最大支持32个进程支持控制台应用Threads执行的最小单元线程的数量只受限于内存基于优先级的抢占式调度(256 个优先级)第44页/共70页45CreateProcess(LPCTSTR lpszImageName,/EXE file nameLPCTSTR lpszCmdLine,/
18、ParametersLPSECURITY_ATTRIBUTES lpsaProcess,/=NULLLPSECURITY_ATTRIBUTES lpsaThread,/=NULLBOOL fInheritHandles,/Windows CE requires FALSEDWORD dwFlags,/See docs for detailsLPVOID lpEnvironment,/=NULLLPTSTR lpszCurDir,/Startup directory/=NULLLPSTARTUPINFO lpStart,/=NULLLPPROCESS_INFORMATION lppi);/Ret
19、urn handles线程和进程 创建一个进程第45页/共70页461G 0Slot 32Slot 31Slot 30.Slot 3Slot 2Slot 1Slot 0private.dllshared.dllcoredll.dllApp.Exe64K NML64K NML32M AddressSpace线程和进程 系统和进程内存第46页/共70页47Creating Threads:CreateThread(Win32)Suspending Threads:SuspendThread(Win32)ResumeThread(Win32)Destroying Threads:ExitThread
20、(Win32)TerminateThread(Win32)线程和进程 线程 API第47页/共70页48_try /Protected block._except(/*filter*/)/Exception handler.异常处理 异常语法第48页/共70页49_try ._except()./hard code a value_except(EXCEPTION_EXECUTE_HANDLER)/call a function_except(CheckIt(GetExceptionCode().int CheckIt(DWORD dwCode)switch(dwCode)case xxxx:
21、.return EXCEPTION_EXECUTE_HANDLER;/expression_except(GetExceptionCode()=EXCEPTION_ACCESS_VIOLATION)?EXCEPTION_EXECUTE_HANDLER :EXCEPTION_CONTINUE_SEARCH)异常处理 过滤器第49页/共70页50Create an exceptionVOID RaiseException(dwCode,dwFlags,cArgs,lpArgs)Query exceptionDWORD GetExceptionCode(VOID)Query abnormal ter
22、minationBOOL AbnormalTermination(VOID)Query exception informationLPEXCEPTION_POINTERS GetExceptionInformation(void)异常处理 异常 API第50页/共70页51WinCE调试方法解析调试过程概述介绍内核调试理解WinCE远程工具其它调试技术第51页/共70页52调试过程概述构建调试映像的两种技术内核调试映像驱动调试映像设置调试传输串口网口第52页/共70页53介绍内核调试构建OS的调试映像下载映像到目标板启动调试特点DLL被调试器停止后保持活动状态停止调试器后DLL保持活动状态可以
23、调试XIP方式加载的模块调试窗口源码和反汇编窗口监视窗口变量窗口调用堆栈和寄存器窗口高级内存对话盒第53页/共70页54理解WinCE远程工具Remote Kernel TrackerRemote Performance MonitorRemote System Information其它远程工具Remote SPYRemote Registry EditorRemote Heap WalkerRemote File ViewerRemote Process ViewerRemote Call Profiler第54页/共70页55其它调试手段逻辑分析仪调试LEDJTAG第55页/共70页56
24、使用模拟器和远程调试工具模拟器简介创建内核并下载到模拟器上 远程调试工具的使用第56页/共70页57模拟器简介模拟器(emulator)是PB的一部分模拟器用于在PC下模拟WinCE的物理平台 是一个运行在CPU Ring 3级别的用户程序 专用于调试在PB下创建的内核及应用程序 模拟器本身有很大的限制只能运行简单的应用程序 仅能模拟DEC 2114x 网卡驱动来提供网络支持 仅能模拟FLAT显示驱动不支持USB设备 不支持PC卡、硬盘、CF卡。不支持FAT、CDFS、DVD文件格式不支持IEEE1394设备第57页/共70页58创建内核并下载到模拟器上使用新内核向导创建内核 在支持的BSP中
25、选择EMULATOR:X86 配置带有内核和外壳的预定义应用完成配置后新加环境变量“IMGRAM64”1 编译 配置模拟器的设置800X600,系统内存64M启动模拟器在PB中创建一个应用下载到调试器运行第58页/共70页59远程调试工具的使用远程调用评测程序(Remote Call Profiler)远程文件浏览程序(Remote File Viewer)远程堆查看程序(Remote Heap Walker)远程内核跟踪程序(Remote Kernel Tracker)远程性能监视程序(Remote Performance Monitor)远程进程浏览程序(Remote Process Vi
26、ewer)远程注册表编辑程序(Remote Registry Editor)远程消息监视程序(Remote Spy)远程系统信息(Remote System Information)远程屏幕截图程序(Remote Zoom-in)第59页/共70页60远程调用评测程序(Remote Call Profiler)包含评测和分析工具 利用图形图像显示出你的代码中算法的效率或者占用资源情况 在需要评测的代码中调用提供的接口函数 第60页/共70页61远程文件浏览程序(Remote File Viewer)向实际平台导入或导出文件 选择访问的平台 第61页/共70页62远程堆查看程序(Remote H
27、eap Walker)查看操作系统中每个进程使用的堆的情况 可以查看内核中正运行的进程的名字、ID、及使用的所有的堆的ID进程的一个堆中的首地址、结束地址、及标志(Fixed、Free)堆中每块(Block)的实际内容 第62页/共70页63远程内核跟踪程序(Remote Kernel Tracker)跟踪实际平台内核的执行情况 从开始运行起跟踪,跟踪结束的时间由数据接收缓冲区的大小决定 缓冲区的大小从1MB到100MB,由用户自己设定 在Build选项中选择“Enable Event Tracking During Boot”“Enable Profiling”第63页/共70页64远程性能
28、监视程序(Remote Performance Monitor)监视项目Remote Access Server(RAS)Internet Control Message Protocol(ICMP)TCP/IPUser Datagram Protocol(UDP)MemoryBatterySystemProcessThread。第64页/共70页65远程进程浏览程序(Remote Process Viewer)三个窗口当前内核中所有进程进程中的线程进程中所有加载的DLL进程的窗口中显示进程名、进程ID、基本优先级级别、拥有的线程总数、基地址、访问键值、主窗口名线程的窗口中显示线程ID、当前进
29、程ID、线程优先级、访问键DLL模块的窗口中显示模块名、模块ID、当前进程使用计数、全局使用计数、基地址、大小、模块句柄、路径 第65页/共70页66远程注册表编辑程序(Remote Registry Editor)显示、编辑开发平台下的注册表和实际平台下的注册表 第66页/共70页67远程消息监视程序(Remote Spy)和VC下附带的工具spy非常相似 列出平台下的窗口和窗口消息 第67页/共70页68远程系统信息(Remote System Information)查看平台的系统信息硬件信息 软件信息第68页/共70页69远程屏幕截图程序(Remote Zoom-in)截取实际平台屏幕图像适合写说明书或者演示程序截图单击“File”“New Bitmap”第69页/共70页70感谢您的观看!第70页/共70页