Windows CE工程实践完全解析(Windows CE项目开发实践丛书)
分類: 图书,计算机与互联网,家庭与计算机,Windows使用,
品牌: 李大为
基本信息·出版社:中国电力出版社
·页码:399 页
·出版日期:2008年
·ISBN:7508374738/9787508374734
·条形码:9787508374734
·包装版本:1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:Windows CE项目开发实践丛书
产品信息有问题吗?请帮我们更新产品信息。
内容简介《Windows CE工程实践完全解析》讲述了Windows CE操作系统底层驱动软件开发技术。全书共分5篇25章,内容包括开发Windows CE的BootLoader、OAL、显示设备驱动程序、串口驱动程序和PC卡总线接口驱动程序,通过解析和研读微软的DeviceEmulator开发板的BSP的源代码,旨在帮助读者系统、全面、具体地了解Windows Embedded CE的BSP的原理与开发技术,从而达到理解和实践Windows CE嵌入式系统软件开发目的。
《Windows CE工程实践完全解析》注重系统性、先进性和实用性,具有特色鲜明、逻辑性强、针对性强的特点。
编辑推荐《Windows CE工程实践完全解析》适合于从事Windows CE操作系统软件开发的工程技术人员使用,也可作为高等院校自动化、电子、计算机、通信工程等专业师生的科研参考书。
目录
前言
绪论
第一篇 开发Windows CE的BootLoader
第1章 BootLoader的理论知识介绍
1.1 BootLoader是大多数嵌入式操作系统运行最初的开始
1.2 微软建议Windows CE的BootLoader所应实现的功能
1.3 BootLoader并不是基于Windows CE的嵌入式软件系统的必不可少的组成部分
第2章 Windows CE BootLoader的软件框架和支持库
2.1 以Eboot为实例学习WindOWS CE BootLoader的软件框架
2.2 BLCOMMON支持库
2.3 Eboot支持库
2.4 EthDbg驱动程序
第3章 案例解说开发实现OEM函数
3.1 DeviceEmulator虚拟平台的硬件设计
3.2 开天辟地的Startup函数
3.3 控制流OEM函数
3.4 调试功能OEM函数
3.5 下载功能OEM函数
3.6 以太网收发帧OEM函数
3.7 Flash操作OEM函数
3.8 时钟功能OEM函数
3.9 可选实现的OEM函数
3.10 在BootLoacler和操作系统之间共享信息的数据结构
3.11 保存用户选项配置参数的数据结构
第4章 认识Windows CE操作系统镜像文件的格式
第二篇 开发Windows CE的OAL
第5章 Windows CE操作系统的系统启动执行流程
5.1 图览Windows CE的初始化启动流程
5.2 开天辟地的StartUp函数
5.3 KemelStart函数
5.4 ARMlnit函数
5.5 kernel.d11模块的入口点函数NKStartup
5.6 ARMSetup函数
5.7 KemelStart函数
第6章 案例解说WindOWS CE OAL的开发任务汇总
6.1 OAL是什么
6.2 OEMGLOBAL结构体及其全局变量
6.3 OEM地址映射表
6.4 OEMIoControl函数
6.5 OAL的Cache操作OEM函数
第7章 Windows CE操作系统的中断处理机制
7.1 ISR和IST协同处理外设的中断请求
7.2 设置系统中断向量表
7.3 初始化函数OEMInit并启用硬件中断处理机制
7.4 实现OEMInterruptHandler函数供操作系统处理IRQ中断
7.5 实现OEMInterruptHandlerFIQ函数处理FIQ中断
7.6 案例解说中断处理的另一组成部分IST
7.7 为IST做哪些事情
第8章 系统时钟管理
8.1 初始化函数OEMInit并启用系统时钟
8.2 ISR必须处理系统时钟的定时中断请求
第9章 TOC的秘密
9.1 初识pTOC指针
9.2 解析实例以加深认识TOC数据
9.3 TOC的条目
9.4 TOC数据的实质
第10章 KITL调试技术
10.1 什么是KITL
10.2 图览KITL的初始化流程
10.3 初始化KITL库
10.4 初始化Windows CETL连接
10.5 0AL KITL ARGS结构体
10.6 0AL KITL DEVICE结构体
10.7 主动的KITL模式与被动的KITL模式
10.8 KITLTRANSPORT结构体
10.9 汇总OAL的开发者需要为启用KITL功能做哪些事情
第11章 案例解说以太网端口设备EthDbg驱动程序的开发
11.1 CS8900A的硬件原理知识
11.2 读写ReadlPacketPage和WritePacketPage
11.3 硬件初始化函数CS8900AInit
11.4 发送以太网数据帧函数CS8900ASendFrame
11.5 接收以太网数据帧函数CS8900AGetFrame
11.6 启用与禁用CS8900A的中断功能的函数CS8900AEnableInts和CS8900ADisableInts
11.7 CS8900A的配置地址过滤机制的函数CS8900ACurrentPacketFilter和 CS8900AMultleastList
第三篇 开发Windows CE的显示设备驱动程序
第12章 从DDI系列函数开始
12.1 DDI函数是什么
12.2 WindLOWS CE的GWES子系统如何获得DDI函数
12.3 DrvGradientFill和DrvAlphaBlend函数
12.4 DrvEnablePDEV和DrvDisablePDEV函数
12.5 DrvEnableSurface和DrvDisableSurfaee函数
12.6 DrvCreateDeviceBitmap和DrvDeleteDeviceBitmap函数
12.7 DrvRealizeBrush函数
12.8 DrvStrokePath函数
12.9 DrvFillPath函数
12.10 DrvPaim函数
12.11 块传输功能函数DrvAnyBlt、DrvBitBlt、DrvCopyBits和DrvTransparentBlt
12.12 DrvSetPalette函数
12.13 DrvSetPointerShape函数
12.14 DrvMovePointer函数
12.15 DrvGetModes函数
12.16 DrvRealizeColor和DrvlJnrealizeColol‘函数
12.17 DrvGetMasks函数
12.18 DrvContrastControl函数
12.19 DrvPowerHandler函数
12.20 DrvEscape函数
12.21 DrvDisableDriver函数
第13章 Windows CE的显示表面及与之相关的数据结构
13.1 显示表面
13.2 调色板、颜色转换对象和颜色转换类
13.3 SLIRFOBJ结构体和TmpGPESmf类
13.4 路径
13.5 剪切板对象CLIPOBJ
13.6 画笔
第14章 GPE类是用户开发WindOWS CE的显示设备驱动程序工作的起点
14.1 从DDI到CPE
14.2 GPE类
14.3 GPE类和块传输操作
14.4 GPE类和画线操作
14.5 DeviceEmulator的显示设备驱动程序实现——S3C2410DISP类
第15章 显示设备及其驱动程序对DirOCtDraw功能的支持
15.1 由导出函数HALInit引出DDHALINFO结构体
15.2 DDHALINFO结构体
15.3 DDCAPS结构体
15.4 DDHAL DDCALLBACKS结构体
15.5 DDHAL_DDSURFACECALLBACKS结构体
15.6 DirectDraw显示表面
15.7 DDGPE类
第四篇 开发Windows CE的串口驱动程序
第16章 设备管理器和流式接口设备驱动程序
16.1 串口驱动程序是典型的流式接口设备驱动程序
16.2 设备管理器以总线枚举的方式加载流式接口的设备驱动程序
16.3 总线枚举器加载一个设备驱动程序的具体步骤
第17章 串口设备句柄和串口文件句柄
17.1 从COM—Init导出函数到HW INDEP INFO结构体
17.2 pHWObji成员
17.3 pHWHead成员
17.4 DCB成员
17.5 CommTimeouts成员
17.6 RxBufferInfo和TxBufferInfo成员
17.7 pAccessOwner、0penList、OpenCS和OpenCnt成员
17.8 fEventMask成员
17.9 pDispatchThread、PIiority256、hKillDispatchThread、KillRxThread和 hSerialEvent成员
17.10 hReadEvent和hTransmitEvem成员
17.11 fAbortRead和fAboffTransmit成员
17.12 DroppedBytesMDD、DroppedIBytesPDD、RxBytes、TxBytes、TxBytesPendillg和 TxBytesSent成员
17.13 XFlow、StopXmit、SentXoff、DtrFlow和RtsFlow成员
17.14 ReceiveCritSecl和TransmitCritSecl成员
17.15 dwMddErrors成员
第18章 CSeriaIPDD类是OEM用户开发WindOWS CE串口驱动程序PDD层工作的起点
18.1 CSerialPDD类定义
18.2 CSerialPDD类的初始化部分
18.3 CserialPDD类的串口设备操作部分
18.4 CSerialPDD类的中断接口部分
18.5 CSerialPDD类的数据发送与接收部分
18.6 CSerialPDD类的MODEM功能部分
18.7 CSerialPDD类的线路功能部分
18.8 CSerialPDD类的串口配置部分
18.9 CSerialPDD类的IR特殊处理部分和错误处理部分
第19章 Windows CE操作系统对外设的电源状态管理
19.1 电源管理架构和电源管理器
19.2 设备电源状态和系统电源状态
19.3 电源管理器与设备驱动程序之间的编程接口
19.4 电源管理器与应用程序之间的编程接口
19.5 例说设备驱动程序开发中的电源管理实务
第20章 案例解说串口驱动程序的具体开发
20.1 DeviceEmulator的串口驱动程序PDD层的类定义
20.2 CReg2410uan类
20.3 S3C2410串口驱动程序PDD层的初始化
20.4 CPdd2410Uart类的PostInit成员函数
20.5 串口数据接收中断请求处理函数Recei、veInterruptHandler
20.6 串口MODEM事件中断请求处理函数:ModemInterruptHandler
20.7 串口线路中断请求处理函数LineInterruptHandler
20.8 串口驱动程序PDD层的流控功能函数xmitcomchaT、SetDTlR和SetRTs
20.9 串口数据发送中断请求处理函数XmitInterruptHandler
20.10 串口发送间断信号的功能函数SetBreak
20.11 CancelReceive函数和CantelXlmit函数
20.12 SetOutputMode函数和SetBaudRate函数
第五篇 开发Windows CE的PC卡总线接口驱动程序
第21章 PC卡总线桥驱动程序
21.1 PC卡驱动程序的分层结构
21.2 PC卡接口驱动程序实体分离的MDD层和PDD层
21.3 PC卡总线桥驱动程序
第22章 CPCCardBusBridgeBase类是OEM开发者开发PC卡总线桥驱动程序工作的起点
22.1 CPCCardBusBridgeBase类定义
22.2 CPcmciaWindowlnfo类
22.3 CPCCardBusBridgeBase类的数据成员和成员函数
第23章 CPcmciaBusBridge类——DeviceEmulator的PC卡总线桥驱动程序具体实现
23.1 CPcmciaBusBridge类的抽象意义及继承关系
23.2 CPcmciaBusBradge类的数据成员
23.3 CPcmciaBusBridge类的构造函数要负责生成PC卡总线桥驱动程序的IST线程
23.4 CPcmciaBusBridge类的Init成员函数负责初始化PC卡总线桥硬件和向上提交Socket Service
第24章 PC卡的Socket
24.1 Socket Service的内容
24.2 DeviceEmulator的Pc卡Socket的类数据结构及其继承关系
24.3 Socket的属性(信息)和状态
24.4 PC卡Socket在系统中的组织管理
24.5 Socket的句柄
24.6 Socket的电源管理
24.7 PC卡总线桥设备与Pc卡Socket在软件数据结构上的关联
第25章 PCMCIA桥驱动程序的lST线程和ISR
25.1 CPcmciaBusBridge类成员函数Installlsr初始化PCMCIA控制器的卡状态改变中断
25.2 PC卡总线桥驱动程序的IST线程负责处理PC卡插拔和Socket电源状态改变事件
参考文献
……[看更多目录]
序言2006年的11月份,微软正式发布了Windows CE的6.O版本,全名为Windows EmbeddedCE 6.0。伴随Windows CE 6.0版本的操作系统开发工具一起,微软还公开了它的全部内核态的源代码。对于有志于深入钻研Windows CE操作系统的技术人员来说,这无疑是一个特大的好消息。市面上充斥着大量的解析Linux内核源代码的书籍,却没有一本与之相应的解析Windows CE内核源代码的书,原因是显而易见的,因为这是微软首次向中国内地完全免费地公布Windows CE操作系统的内核源代码。
当时我正在微软的一家代理商那里做微软嵌入式Windows产品的技术支持工作,面对着这种有利的形势,当时我就萌生了写一本解析Windows CE内核源代码的书,内容应该包括:Windows CE操作系统的进程(线程)调度机制、内存管理技术、设备驱动程序管理机制等。但是随后结合我所接触的Windows CE的使用者的情况来看,我发现他们中的大多数最需要的不是线程调度、内存管理之类的深入的技术内容,而是实实在在的Windows CE操作系统的底层移植。
由于嵌入式硬件的无标准、非规范的特性,嵌入式的操作系统都存在着一个底层移植的问题。厂商所提供的嵌入式操作系统一般都只是与特定嵌入式硬件平台无关的操作系统中间层,使用这些嵌入式操作系统开发具体的电子产品的开发者需要实现底层驱动软件以供操作系统的中间层使用。离开了这些底层的驱动软件,操作系统的中间层就无法操作硬件,于是整个操作系统的启动运行就无从谈起。微软将Windows CE的底层驱动软件使用标准的目录结构进行打包,并且命名为BSP,意思是板级支持包(Board Support Package),这里所谓的“板”就是特定嵌入式硬件的电路设计主板,与之相应的,不同的嵌入式硬件设计就有不同的BSP软件包。由于为嵌入式操作系统开发底层驱动软件同时涉及操作系统的底层接口机制和对特定硬件操作的技术,这对开发者的技术能力提出了更高的要求,事实上对任何一款嵌入式操作系统开发底层驱动软件比开发上层应用软件的难度都要大得多。
大的嵌入式电子产品厂商通常以商业运作的手段解决技术所带来的问题。由于国家的法律不能够充分地保护知识产权,企业在技术方面的投资成果很容易随着技术人员的跳槽而被带走,甚至是带到企业的竞争对手那里。而国内的大多数企业管理水平都不够,不能够很有效地应对高科技产品的研发和技术积累的工作。此外,在中国的人才市场上获得合格的技术人才并不是很容易,企业的管理者们在有些情况下不得不迁就技术人才。所有这些都对国内的企业投资技术不利,技术的含量越高,投资的风险也就越大。
文摘插图: