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