基于WindowsCE的嵌入式应用程序开发实例

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第6章基于WindowsCE的嵌入式应用程序开发实例备注•前面一章是介绍在于VS2005下的开发环境,Wince6.0的PB不像Wince5.0是独立的,而是作为VS2005的插件,以后建立和定制OS,编译调试全部都在VS2005下完成。•本章实训一和实训二介绍Wince5.0的嵌入式软件开发环境搭建方法。•6.1概述•本章将从嵌入式软件工程师的角度,着重介绍基于WindowsCE的嵌入式系统开发流程和嵌入式应用程序开发。首先介绍开发平台和开发环境的搭建,然后介绍基于WindowsCE的嵌入式系统开发流程,最后以实训的方式由浅入深地引导初学者能够熟练地进行基于WindowsCE的嵌入式系统应用程序开发。•本章主要要求掌握下面三部分内容:•(1)用PB定制WindowsCE操作系统内核映像,并下载到开发板上运行•(2)导出所定制内核的SDK,并安装到EVC中•(3)用EVC开发WindowsCE上的应用程序,并下载到开发板上或用模拟器运行6.2基于WindowsCE嵌入式应用程序开发环境•随着编译技术、处理器和内存的不断发展,采用高级语言设计应用程序变得通用起来,本章介绍的EVC就是嵌入式专用的VC语言,是一种高级语言用于嵌入式系统应用程序的开发。•6.2.1硬件资源•硬件资源包括:•(1)PXA255实验箱一个;•(2)PC一台;•(3)交叉串口线一根;•(4)网线一条;•(5)USB连接线一根(可选)。•6.2.2软件资源•软件资源包括:•(1)MicrosoftPlatformBuilder4.2;•(2)实验箱的BSP安装包;•(3)MicrosoftEVC4.0withSP4;•(4)MicrosoftActiveSync3.7(可选)。•注意:在阅读后续章节内容之前,应该准备好以上的硬件资源,并在PC上安装好PB、BSP、EVC等软件。基于WindowsCE的嵌入式应用程序开发流程•(1)元器件选型;•(2)原理图编制;•(3)印制板设计;•(4)样板试制;•(5)硬件功能测试;•(6)编写引导程序;•(7)操作系统移植;•(8)驱动程序编写;•(9)API设计与开发;•(10)支撑软件设计与调试;•(11)应用程序设计与调试;•(12)系统联合调试;•(13)样机交付。•从中可以看到,开发一个嵌入式系统要考虑整个系统的软硬件设计中的各个问题。本书先向初学者介绍在PC上开发嵌入式应用软件的流程。开发者只需要上述步骤中的两个:•(1)应用程序设计与测试;•(2)系统联合调试;•如果在PC平台上开发一个带有硬件的应用系统,则开发流程为:•(1)硬件系统(适配卡)与接口设计;•(2)驱动程序开发;•(3)应用程序设计与测试;•(4)系统联合调试。•下面将从最基本的环境搭建开始,以实训的形式非常详细地带领初学者进入嵌入式应用程序的开发中来。实训一和实训二是后续开发的基础,不能跳过,如果把实训样例都能认真独立做完,那么对嵌入式应用程序的开发就能达到一个系统掌握的水平。对于没有PXA255实验箱的学习者,可以在PC上使用模拟器进行实训,这在实训二中进行了详细说明。•6.4.1实训一定制操作系统内核•一、实验目的•(1)熟悉PlatformBuilder集成开发环境;•(2)掌握使用PlatformBuilder的NewPlatformWizard创建一个新的平台;•(3)掌握根据需要对该平台进行裁减和自定义;•(4)掌握构建系统的配置选项的设置和连接配置选项的设置;•二、实验内容•(1)使用模板创建新平台;•(2)客户化定制;•(3)构建内核映像;•(4)下载内核映像到开发板上运行;6.4.2实训二用EVC开发应用程序•一、实验目的•(1)熟悉EVC集成开发环境;•(2)掌握使用PlatformBuilder的SDK工具导出定制内核的SDK开发包。•二、实验内容:•(1)定制操作系统内核后导出SDK;•(2)用EVC开发一个简单的应用程序。6.4.3实训三WindowsCE.NET动态链接库•一、实验目的•掌握动态链接库的创建和应用。•二、实验内容•创建一个动态链接库,通过API实现NK核心载入和卸载EXE和DLL进程,我们所实现的是调用动态链接库。•三、实验原理:•开发人员使用API函数手工加载和卸载DLL,以达到调用DLL的目的,动态调用较之静态调用,在使用上更为复杂,但却能更加有效地使用内存,因此是编制大型应用程序的重要方式。动态调用是指在应用程序中使用LoadLibrary函数或MFC提供的AfxLoadLibrary函数然后再使用GetProcAddress()获取所需引入的函数,使用完毕之后需要释放。•DLL(DynamicLinkableLibrary)的概念:可以简单地把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。•静态链接库和动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的exe文件中。但是若使用DLL,该DLL不必被包含在最终exe文件中,exe文件执行时可以“动态”地引用和卸载这个与exe独立的DLL文件。静态链接库和动态链接库的另外一个区别在于:静态链接库中不能再包含其他动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库。6.4.4实训四WindowsCE.NET虚拟内存管理•一、实验目的•通过自己设计虚拟内存管理程序,了解虚拟内存分配、释放等操作。•二、实验内容:•创建一个虚拟内存的管理程序,实现虚拟内存的分配、释放等基本功能。6.4.5实训五WindowsCE.NET设备驱动程序开发•一、实验目的•通过实验理解驱动程序的特点及WindowsCE下驱动程序的实现原理,掌握流式驱动接口的工作原理,掌握中断处理的架构、方法、过程及DMA的方法和ISR、IST等概念。•二、实验内容•阅读XSBase255系统中WindowsCE4.2的BSP中串口驱动的源代码,理解WindowsCE下驱动程序的基本结构,了解串口驱动的原理和开发流程。最后编写一个简单的串口通信程序,理解底层函数的调用过程。6.4.6实训六WindowsCE.NET文件系统开发•一、实验目的•了解文件系统的原理和工作过程。•二、实验内容•(1)实现RAMDISK的功能:通过程序动态加载Ramdisk的驱动,并实现自动分区和格式化,并将其挂载到根目录下。然后编写程序从RAMDisk中读入0号扇区的参数内容,并对其值进行解析。•(2)文件系统和目录结构:设计实现一个打印目录列表的函数,编写一个函数可以由当前的目录返回上一层目录,或进入一个子目录。图6.57运行结果6.4.7实训七个人通讯录•一、实验目的•在WindowsCE.NET下实现一个简单的个人通讯录程序。•二、实验内容•创建一个通讯录程序,要求可以添加姓名、电话号码和邮箱,并且将添加的数据保存在文件中。可以编辑和删除已经添加的数据,将数据上移和下移查看,并且可以直接移动到第一条和最后一条数据。6.4.8实训八画图程序•一、实验目的•在WindowsCE.NET下实现一个简单的画图程序。•二、实验内容:•创建一个画图程序,要求可以在屏幕上画出矩形、直线、椭圆等图像,并添加的数据保存在文件中,而且可以重新打开文件实验图像的重画。6.4.9实训九计算器程序编制•一、实验目的•在WindowsCE.NET下设计一个简单的计算器。•二、实验内容•创建一个嵌入式计算器程序,实现加减乘除四则运算,并且运算次数可以进行多次,如两个数加完之后还可以进行运算。

1 / 30
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功