Windows CE.Net 程序设计
作者 : 姜波
出版日期 : 2006-11-23
ISBN : 7-111-20121-3
定价 : 39.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 383
开本 : 16开
原书名 :
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

本书特色:
  ●作为中国电子学会嵌入式认证考试的系列教材之一,本书内容详实,基本上涵盖了Windows CE.Net程序设计所需的基本知识。
  ●作为中国电子学会嵌入式专家委员会的指定教材,本书得到了国内众多嵌入式领域专家的大力支持。
  ●本书是作者姜波及其同事多年从事Windows CE及Pocket PC程序设计经验的总结。作者本人开发的基于Windows CE.Net的微小型机器人控制软件已经被应用在教学、微小型机器人控制等多个领域。
  ●本书的程序实例都通过了国内著名嵌入式设备生产商北京博创兴业科技有限公司的嵌入式实验平台的测试。
  ●本书配有代码规模较大的程序实例及详细的代码分析,便于读者做到触类旁通,利于启发和培养读者的创造能力。
  ●本书作者多年从事IT相关的文章撰写、IT书籍编写等工作,因此语言通俗易懂。
  ●本书代码可以免费下载,需要者可登录机工新阅读网站.

图书特色

图书前言

20世纪,以PC机为代表的信息技术的迅速发展,对世界的政治、经济、军事和科教等方面产生了深刻的影响;由此而产生的信息产业已经成为世界经济发展的支柱之一。如果说20世纪被称之为“PC时代”的话,那么21世纪则被称之为“后PC时代”。而嵌入式技术无疑是这个时代最具代表性的技术之一。
  众所周知,在信息技术领域,我们和西方发达国家相比还存在一定的差距。嵌入式技术和产品的大规模应用,为我们提供了一个缩小差距的机会。在这个以嵌入式技术为代表性技术之一的“后PC时代”,培养出具备专业技能,同时可以适应国际竞争需要的嵌入式专业人才就显得尤为重要。在这种理念的指引下,中国电子学会及中国电子学会嵌入式专家委员会,在吸收国内外先进教学经验的基础上,结合我国实际情况,推出了此套嵌入式认证考试系列教材。其宗旨是普及嵌入式技术的基础知识,提高从业人员的实际动手能力,为嵌入式技术的发展和普及,为提高我国嵌入式技术的水平,进行有益的探索和尝试。
  实际上,从消费类电子产品领域,到航空航天,汽车电子,再到我们日常使用的网络通信、数据传输等领域,都有着嵌入式技术的身影。随着嵌入式技术的不断发展,以及其应用领域的日益广泛,嵌入式产品也在不断地改变着我们的生活方式。
  首先从体系结构上看,嵌入式产品一般都是由硬件和软件所组成。比如我们使用的手机、MP3等产品。其次从开发角度上看,嵌入式产品的设计往往需要专用的开发工具;比如本书所涉及的Windows CE.Net程序设计,我们用到了Embedded Visual C和Platform Builder等开发工具。再次从应用领域上看,那些使用PC机的地方几乎都可以用相应的嵌入式产品所替代。同时,嵌入式产品的广泛运用还极大地提高了整个系统的实时性。我们可以在不同的位置安放大量小型嵌入式产品,来实时地获取周围环境的参数,取代过去那种分散数据采集,再由中央计算机集中处理的方式。最后从用户体验上看,嵌入式产品性能的日益提高,给我们的工作、生活带来便利,提高了产品的使用感受。以目前日益流行的智能手机为例,其CPU的频率早已经达到了400MHz,最先进的产品已经达到了600MHz。同时还出现了运行在手机上的移动显卡等,这些都使得我们的手机在具备传统语音通话功能的同时,还具备了强大的多媒体播放功能、丰富的游戏功能、实时的网络浏览功能等。或许有一天,我们出差在外的时候,随身只要挟带一部移动电话,就可以实现文字办公、网络浏览、邮件发送、视频播放等诸多功能。
  在嵌入式产品中,广泛应用的嵌入式操作系统主要有嵌入式Linux、Windows CE、VxWorks、Symbian等。而本书介绍的Windows CE.Net是Windows CE应用最为广泛的版本之一,Windows CE在高端智能手机领域占据了极其重要的市场地位及市场份额。Windows CE.Net是一个具有抢先式多任务功能,并具有强大通信能力的嵌入式操作系统。也是微软公司专门为移动设备和消费类电子产品、嵌入式应用等非PC领域而全新设计的操作系统产品。因此根据其应用环境的特点,Windows CE.Net被设计成具有高度模块化、良好实时性、强大通信能力、支持多种CPU的嵌入式操作系统。它主要具有以下特点:
  1)良好的电源管理功能。由于很多嵌入式产品都是依靠电池来供电的,因此作为一款嵌入式操作系统,Windows CE.Net具备灵活的电源管理功能,包括睡眠/唤醒模式等。
  2)良好的多任务管理功能。与桌面Windows类似,Windows CE.Net同样具备良好的多任务管理功能。我们可以同时运行多个程序,并在这些程序之间自由地切换。
  3)人性化的图形用户界面。Windows获得成功的原因之一在于其使用了友好的图形用户界面。Windows CE.Net同样具备了类似的功能,当我们启动它的时候,不但会看到我们熟悉的操作系统界面,其使用方式和文件命名方式同桌面Windows也是完全一样的。
  4)多样的通信功能。Windows CE.Net的通信模块主要支持串行端口通信、红外通信和网络通信。我们可以利用这些功能灵活地设计出符合实际需要的产品来。
  5)优秀的多媒体扩展性。可以通过内置的MediaPlayer播放器播放音频和视频文件,同时还加入了对SD卡、CF卡等移动存储设备的支持。
  6)强大的实时功能。由于Windows CE.Net是一款实时性操作系统,因此可以被应用在很多对实时性要求较高的领域。
  那么如何设计Windows CE.Net下的应用程序,Windows CE.Net具有哪些特点,它和传统的桌面Windows相比又有什么样的不同呢?这就是本书要解决的问题。
  在本书中,作者全面、系统地介绍了Windows CE.Net程序设计的基本知识及程序设计方法。不仅在理论上详细地介绍了Windows CE.Net的特点,还通过多个程序实例的构建和代码讲解,向读者介绍了使用Embedded Visual C和Visual Studio.Net 2003进行Windows CE.Net程序设计的基本步骤和方法。使读者在了解基础理论的同时,进一步提高了自己的实际动手能力。同时,本书一改技术类书籍语言晦涩难懂的现状,做到了叙述语言的通俗易懂。
  本书共分为三大部分18章,具体内容安排如下:
  第一部分介绍Windows CE.Net程序设计的基础知识,包括第1章到第9章。包括什么是Windows CE.Net,Windows CE.Net的特点和用途是什么,启动过程和开发工具介绍,Windows CE.Net下的内存管理及进程、线程的特点,以及文件系统和注册表管理。同时在这里我们还为读者介绍了如何使用相关的API函数进行Windows CE.Net下屏幕图形的绘制和实现系统的输入。通过这一部分的学习,读者将会对Windows CE.Net有一个感性的认识。
  第二部分介绍Windows CE.Net驱动程序设计,包括第10章到第15章。主要介绍Windows CE.Net中的中断处理,驱动程序模型,流驱动程序开发以及不同总线的特点。同时在这一部分中,我们还为读者介绍了Windows CE.Net下PS/2键盘驱动程序设计和触摸屏等相关内容。
  第三部分为开发实例,包括第16章到第18章。主要介绍如何使用Platform Builder进行Windows CE.Net的内核定制,Platform Builder有哪些特点,如何使用Embedded Visual C开发Windows CE.Net程序以及如何使用Visual Studio.Net 2003开发Pocket PC版俄罗斯方块。在这里不但有详细的操作流程,我们还为读者详细地介绍了程序代码。使得读者不但可以按照我们叙述的步骤按部就班地操作,还可以对程序代码有非常深刻的认识。
  我在进行Windows CE.Net相关软件的开发过程中,深切地体会到,只有不断地实践才会把所学到的知识很好地运用到实际工作中。一些在书本上看似简单的原理,在应用中我们才会体会到其精髓所在。因此,在这里建议读者在阅读本书的同时,最好可以按照书中的操作步骤,亲自把整个程序构建一次;同时还可以尝试修改程序中的某段代码,看看其效果和原来有何不同,或者把自己的想法和疑问发到我们的网站上,和大家进行交流。我想,这些都会加深读者对Windows CE.Net程序设计的理解,真正提高大家的动手能力和思考问题的能力。
  本书在撰写的过程中,得到了众多良师益友的大力支持。我的硕士研究生导师,北京航空航天大学的魏洪兴副教授,不但向我传授嵌入式程序设计的相关知识,还积极地协调各方面的资源,保证了本书的顺利完成;北京博创兴业科技有限公司的相关技术人员也为本书提供了大量的技术支持。
  本书主要由姜波编写,参加编写的还有李淑云、宁峰、马一宁、杨亮和邹莹。
  在这里还要特别感谢我的父母,是他们在本书的编写过程中给了我极大的鼓励与支持,感谢他们为我所做的一切。
  由于作者水平有限,加之时间仓促,书中难免出现不足之处,请各位读者批评指正。如果有什么疑问,可以访问www.deegua.com或者发送电子邮件到deegua@126.com。

姜波
2006年10月于北京

封底文字

本书特色:
●作为中国电子学会嵌入式认证考试的系列教材之一,本书内容详实,基本上涵盖了Windows CE.Net程序设计所需的基本知识。
●作为中国电子学会嵌入式专家委员会的指定教材,本书得到了国内众多嵌入式领域专家的大力支持。
●本书是作者姜波及其同事多年从事Windows CE及Pocket PC程序设计经验的总结。作者本人开发的基于Windows CE.Net的微小型机器人控制软件已经被应用在教学、微小型机器人控制等多个领域。
●本书的程序实例都通过了国内著名嵌入式设备生产商北京博创兴业科技有限公司的嵌入式实验平台的测试。
●本书配有代码规模较大的程序实例及详细的代码分析,便于读者做到触类旁通,利于启发和培养读者的创造能力。
●本书作者多年从事IT相关的文章撰写、IT书籍编写等工作,因此语言通俗易懂。

图书目录

第一部分初级Windows CE.Net程序设计
第1章嵌入式系统简介1
1.1什么是嵌入式系统1
1.1.1嵌入式系统的特点2
1.1.2嵌入式系统软件的特点2
1.1.3嵌入式系统的分类3
1.2嵌入式系统的组成4
1.2.1嵌入式系统处理器的分类4
1.2.2嵌入式微处理器的主要系列5
1.2.3嵌入式系统的存储器9
1.2.4嵌入式系统的输入方式10
1.3嵌入式系统的应用领域12
1.3.1在消费类电子产品中的应用12
1.3.2在工业控制领域的应用13
1.3.3在通信领域的应用13
1.3.4在机器人、办公等其他领域的应用14
1.4几种常见的嵌入式操作系统15
1.4.1嵌入式操作系统的分类15
1.4.2Windows CE16
1.4.3Symbian17
1.4.4Palm OS18
1.4.5嵌入式Linux21
1.4.6VxWorks22
第2章Windows CE.Net简介26
2.1Windows CE的发展历史26
2.2Windows CE功能简介27
2.2.1Windows CE的电源管理功能28
2.2.2Windows CE的多任务功能28
2.2.3Windows CE的图形界面28
2.2.4Windows CE的通信能力29
2.2.5Windows CE的多媒体和扩展功能29
2.2.6Windows CE的实时功能30
2.3Windows CE.Net的体系结构30
2.3.1Windows CE.Net的层次架构30
2.3.2内核模块31
2.3.3文件系统32
2.3.4网络与通信模块32
2.3.5GWES模块33
2.4Windows CE的应用领域34
2.4.1Windows CE在移动计算领域的应用34
2.4.2Windows CE在嵌入式领域的应用37
第3章Windows CE.Net开发基础38
3.1Windows CE.Net的启动过程38
3.1.1系统复位38
3.1.2运行KernelStart38
3.1.3运行FileSys.exe39
3.1.4运行可选择的进程39
3.1.5运行shell.exe和device.exe41
3.1.6运行gwes.exe42
3.1.7运行自定义进程43
3.1.8运行Explorer.exe进程43
3.2Windows CE设备的电源特性44
3.3Windows CE.Net程序开发环境44
3.3.1Platform Builder45
3.3.2EVC和EVB46
3.3.3Visual Studio.Net47
3.3.4ActiveSync48
3.3.5模拟器48
3.3.6程序开发所需的硬件50
3.4Windows CE.Net目录解析52
3.4.1Windows CE安装过程中应该注意的问题52
3.4.2目录解析52
第4章Windows CE.Net开发工具简介54
4.1Platform Builder54
4.1.1Platform Builder简介54
4.1.2使用Platform Builder进行平台的定制57
4.2Embedded Visual C62
4.2.1Embedded Visual C简介62
4.2.2Win32 API、MFC及ATL三种程序设计方式65
4.2.3在Embedded Visual C中构建一个MFC程序66
4.2.4在构建好的MFC程序框架中添加消息70
4.2.5EVC在安装及使用过程中应该注意的问题72
4.3Visual Studio.Net72
4.3.1Visual Studio.Net 2003简介73
4.3.2使用Visual Studio.Net 2003构建Smart Device工程74
第5章Windows CE.Net中的内存管理77
5.1RAM和ROM77
5.1.1RAM77
5.1.2ROM78
5.1.3RAM和ROM在实际设备中的体现78
5.2虚存80
5.2.1Windows CE.Net中的虚拟内存结构80
5.2.2Windows CE.Net中的分页式虚拟存储81
5.3堆85
5.3.1Windows CE中堆的特性85
5.3.2本地堆86
5.3.3独立堆87
5.4栈89
5.5静态数据块89
5.6Windows CE下的Bootloader90
5.6.1Bootloader简介90
5.6.2Bootloader的主要功能91
5.6.3Bootloader的结构91
第6章Windows CE.Net中的进程和线程93
6.1Windows CE.Net中的进程93
6.1.1进程概述93
6.1.2创建进程94
6.1.3终止进程96
6.1.4其他相关函数97
6.2Windows CE.Net中的线程98
6.2.1线程概述98
6.2.2创建线程100
6.2.3设置线程的优先级101
6.2.4查询线程的优先级别101
6.2.5设置线程的时间片102
6.2.6挂起和恢复一个线程102
6.3进程间通信102
6.3.1事件对象103
6.3.2线程等待104
6.3.3信号量105
6.3.4互斥106
6.3.5互锁函数107
6.3.6临界区108
第7章Windows CE.Net中的文件系统和注册表管理110
7.1Windows CE.Net文件系统110
7.1.1文件系统概述110
7.1.2对象存储111
7.1.3文件的输入输出112
7.1.4内存映射文件117
7.1.5文件管理120
7.2注册表123
7.2.1概述123
7.2.2相关API函数124
第8章Windows CE.Net中的屏幕绘制函数128
8.1Hello Windows CE128
8.1.1程序构建过程128
8.1.2代码添加133
8.2文本显示相关的函数133
8.2.1DrawText函数134
8.2.2ExtTextOut函数134
8.2.3文本的属性135
8.2.4SetBkColor函数136
8.2.5SetBkMode函数136
8.3字体137
8.4图形绘制138
8.4.1直线的绘制138
8.4.2画笔139
8.4.3刷子140
8.4.4矩形140
8.4.5圆141
8.4.6圆角矩形142
8.5使用Win32 API编程方式在Windows CE中显示文本142
8.5.1程序实例中涉及的框架函数143
8.5.2程序实例中涉及的文本显示函数144
8.5.3程序实例的运行效果145
8.5.4程序实例的完整代码146
8.6使用Win32 API编程方式在Windows CE中绘制图形149
8.6.1程序实例中涉及的主要函数149
8.6.2程序实例的运行效果151
8.6.3程序实例的完整代码152
第9章Windows CE.Net系统中的输入155
9.1概述155
9.2键盘输入155
9.2.1输入焦点156
9.2.2键盘消息157
9.2.3键盘测试160
9.3鼠标输入160
9.4Windows CE中的触摸屏161
9.4.1手写笔消息161
9.4.2电子墨水162
9.4.3关于输入焦点162
9.4.4右键单击163
9.5通过鼠标点击的方式进行屏幕绘制164
9.5.1程序实例中涉及的主要函数164
9.5.2程序实例的运行效果165
9.5.3程序实例的完整代码166
9.6在Windows CE中实现鼠标移动轨迹的绘制170
9.6.1程序实例中涉及的主要函数170
9.6.2程序实例的运行效果172
9.6.3程序实例的完整代码172
第二部分高级Windows CE.Net程序设计
第10章Windows CE.Net中的中断处理177
10.1中断基础知识177
10.1.1汇编语言与微处理器的体系结构177
10.1.2中断处理程序180
10.1.3保存和恢复上下文181
10.1.4中断禁止和中断延迟182
10.1.5共享数据问题的产生183
10.1.6共享数据问题的解决186
10.2Windows CE.Net中断的组成186
10.2.1中断服务例程ISR187
10.2.2中断服务线程IST188
10.3Windows CE.Net中断处理机制的特点189
10.4Windows CE.Net中断发生和处理的过程189
10.5Netarm2410-S设备中断简介191第11章Windows CE.Net中的驱动程序194
11.1Windows CE.Net的驱动程序模型194
11.1.1什么是驱动程序194
11.1.2本机驱动程序195
11.1.3流接口驱动程序195
11.1.4Windows CE.Net中的驱动程序接口196
11.2驱动程序的组成196
11.2.1单体驱动程序197
11.2.2分层驱动程序197
11.2.3单体/分层驱动程序在WindowsCE.Net中的集成197
11.3Windows CE.Net中的类型驱动程序199
11.4Windows CE简单驱动开发实例199
11.4.1原理及说明199
11.4.2步骤1:建立模拟器工具201
11.4.3步骤2:创建驱动程序工程201
11.4.4步骤3:编写驱动程序代码203
11.4.5步骤4:准备配置文件205
11.4.6步骤5:编译内核206
11.4.7步骤6:加载驱动208
第12章Windows CE.Net中的流驱动开发和相关注册表项209
12.1流驱动程序简介209
12.1.1什么是流接口驱动程序209
12.1.2流接口驱动程序的系统结构210
12.2设备文件名211
12.2.1设备文件名的格式211
12.2.2设备文件名的前缀211
12.2.3设备文件名的索引212
12.3流驱动的标准接口212
12.3.1常用的接口函数212
12.3.2接口函数的函数原型213
12.3.3与应用程序之间的调用关系215
12.3.4文件操作和设备操作函数参数间的对应关系216
12.3.5单访问和多访问218
12.4样本流接口驱动程序219
12.5Windows CE.Net的注册表219
12.5.1Windows CE.Net注册表的结构220
12.5.2Windows CE.Net的常用键值类型221
12.5.3流驱动程序用到的注册表设置221
12.5.4在驱动程序中访问注册表223
12.6流接口驱动程序的加载和卸载225
12.6.1流接口驱动程序的加载225
12.6.2流接口驱动程序的卸载226
12.7ADC流驱动程序226
12.7.1A/D转换器简介226
12.7.2A/D转换器的重要指标228
12.7.3Arm自带的十位A/D转换器229
12.7.4ADC驱动程序设计231
12.7.5操作步骤233
第13章Windows CE.Net中的总线235
13.1总线概述235
13.2总线的分类和主要参数236
13.2.1总线的分类236
13.2.2总线的主要参数237
13.3内部集成(IIC)总线237
13.3.1内部集成(IIC)总线的特点238
13.3.2传输方式238
13.3.3内部集成总线(IIC)与硬件
设备之间的数据交换239
13.4PCI总线242
13.4.1PCI总线的主体性能及特点242
13.4.2PCI总线的外设自动识别243
13.4.3Windows CE.Net中PCI总线驱动的作用243
13.4.4PCIBus.dll对PCI驱动的加载244
13.5USB总线244
13.5.1USB结构的特点244
13.5.2USB设备的结构245
13.5.3USB设备的传输类型246
13.5.4USB设备的软件设计247
13.5.5Windows CE.Net下USB系统的组成247
13.5.6Windows CE.Net下USB设备驱动程序的编写247
第14章Windows CE.Net下的PS/2
键盘驱动程序设计250
14.1PS/2电气接口概述250
14.2键盘及键盘协议251
14.2.1键盘的扫描码集251
14.2.2虚拟键码252
14.3键盘驱动程序的工作流程252
14.3.1键盘驱动程序的主要接口253
14.3.2PDD层的开发254
14.3.3一个典型的IST工作过程256
14.3.4键盘驱动程序结构图256
第15章Windows CE.Net下的触摸屏258
15.1触摸屏概述258
15.2触摸屏的工作原理258
15.3电阻类触摸屏259
15.3.1触摸屏的导电涂层259
15.3.2五线电阻触摸屏260
15.4触摸屏与Windows CE.Net系统260
15.4.1触摸屏设置函数261
15.4.2触摸屏使能函数261
15.4.3坐标转换函数262
15.4.4采样坐标点函数262
第三部分开发实例
第16章用Platform Builder进行内核定制265
16.1Platform Builder简介265
16.1.1Platform Builder的主要功能265
16.1.2Platform Builder的用户界面266
16.1.3定制嵌入式系统平台主要包括的内容269
16.2使用Platform Builder建立操作系统镜像270
16.2.1进入新建Platform向导270
16.2.2选择板级支持包270
16.2.3平台配置272
16.2.4自定义设备273
16.2.5选择程序开发的类库275
16.2.6选择应用程序276
16.2.7选择操作系统的核心服务278
16.2.8连接服务和网络服务280
16.2.9选择文件系统和数据存储方式281
16.2.10字体的选择282
16.2.11选择所支持的国家282
16.2.12选择客户端的Internet服务284
16.2.13多媒体技术的选择284
16.2.14安全设置286
16.2.15选择用户界面287
16.2.16提示信息287
16.2.17完成操作系统镜像的建立288
16.3使用Platform Builder生成操作系统镜像288
16.4把操作系统镜像下载到模拟器292
第17章用Embedded Visual C进行Windows CE程序设计295
17.1Embedded Visual C介绍295
17.1.1EVC 4.0特性简介295
17.1.2EVC中的模拟器298
17.1.3EVC中的远程调试工具300
17.2用EVC编写俄罗斯方块的步骤304
17.2.1MFC程序设计和Win32程序
设计的不同304
17.2.2程序简介305
17.2.3工程的建立306
17.2.4代码的添加310
17.3游戏程序界面的设计329
17.4源代码解释332
17.4.1fangkuaiDlg.h代码注释332
17.4.2fangkuaiDlg.cpp代码注释333
第18章用Visual Studio进行Pocket PC程序设计348
18.1Pocket PC简介348
18.1.1PDA的发展历史348
18.1.2Palm OS操作系统352
18.1.3Windows CE操作系统353
18.1.4Symbian354
18.1.5Linux操作系统354
18.2Pocket PC的发展355
18.2.1硬件的发展趋势355
18.2.2图形控制器356
18.2.3I/O设备356
18.2.4智能设备的供电解决方案358
18.2.5网络技术的应用359
18.3Visual Studio.Net 2003简介360
18.4程序的构建过程362
18.5源代码的添加364
18.6源代码的注释373
18.6.1全局量的声明373
18.6.2相关按键和菜单的处理374
18.6.3方块的下落375
18.6.4游戏的初始化375
18.6.5游戏的重置375
18.6.6游戏开始376
18.6.7游戏的暂停和退出376
18.6.8进行游戏数据的加载376
18.6.9方块的加载377
18.6.10方块的放置377
18.6.11方块的旋转378
18.6.12方块的移动和落定函数379
18.6.13判断移除整行379
18.6.14分数和等级的设定381
18.6.15程序画面的实现381

教学资源推荐
作者: John L. Hennessy; David A. Patterson
作者: 陈虎 吴涛 张安定
作者: [美] J. 斯坦利·沃法德(J. Stanley Warford)著
参考读物推荐
作者: 邱郁惠
作者: [美] 沃尔弗拉姆·多纳特(Wolfram Donat) 著
作者: 刘火良 杨森 编著
作者: 汪文祥 邢金璋 著