第1章 基于底层硬件的软件设计概述 1
1.1 底层硬件操作软件及设计的总体阐述 1
1.1.1 底层硬件操作软件的综合阐述 1
1.1.2 底层硬件操作软件的层次组织 2
1.1.3 基于底层硬件的操作软件设计 3
1.1.4 硬件操作软件设计的目的和要求 4
1.2 通用计算机底层硬件操作软件及设计 4
1.2.1 通用计算机的底层硬件软件概述 4
1.2.2 常用操作系统及其设备驱动介绍 5
1.3 嵌入式体系底层硬件操作软件及设计 8
1.3.1 嵌入式体系的底层硬件软件概述 8
1.3.2 常用E-RTOS及其软件体系设计 10
1.3.3 嵌入式体系中的可编程逻辑设计 14
1.3.4 嵌入式软件体系架构的考虑要素 14
本章小结 15
第2章 Windows底层硬件的软件设计 18
2.1 Windows底层硬件驱动及其软件开发设计概述 18
2.1.1 Windows系统构造及其底层硬件驱动概述 18
2.1.2 Windows底层硬件设备驱动软件开发综述 22
2.2 用WinDDK开发设计Windows设备驱动软件 27
2.2.1 WinDDK设备驱动程序的软件编写 27
2.2.2 WinDDK设备驱动程序的编译构建 30
2.2.3 WinDDK设备驱动程序的检查验证 32
2.2.4 WinDDK设备驱动程序的安装/调试 33
2.2.5 WinDDK设备驱动程序的测试/使用 34
2.3 用DriverStudio开发设计Windows设备驱动软件 35
2.3.1 DriverStudio设备驱动软件开发设计概述 35
2.3.2 DriverStudio设备驱动程序的编译与装载 35
2.3.3 使用DriverStidio快速开发设备驱动软件 36
2.4 用WinDriver开发设计Windows设备驱动软件 37
2.4.1 WinDriver设备驱动程序开发工具概述 37
2.4.2 主要WinDriver数据结构和API函数介绍 38
2.4.3 用WinDriver编程向导快速开发驱动程序 40
2.4.4 直接利用WinDriver的API函数开发驱动程序 41
2.4.5 WinDriver开发的驱动程序的分发与应用 41
2.5 通过常见Windows通信接口进行数据传输设计 42
2.5.1 在Windows下通过异步串行口传输数据 42
2.5.2 在Windows下通过并行接口传输数据 54
2.5.3 通过Winsock编程接口实现以太网络通信 60
2.6 USB接口硬件设备的Windows驱动软件设计 68
2.6.1 USB体系及其WDM型驱动程序结构 68
2.6.2 USB硬件设备驱动程序应用设计举例 70
2.7 ISA/PC104接口板卡的Windows驱动软件设计 72
2.7.1 ISA/PC104接口板卡及其驱动程序设计概述 72
2.7.2 ISA/PC104板卡硬件驱动程序设计举例 72
2.8 PCI/CPCI接口板卡的Windows驱动软件设计 75
2.8.1 PCI/CPCI板卡硬件设备驱动程序的特点 75
2.8.2 常见PCI/CPCI板卡驱动程序的开发设计 76
2.8.3 DMA传输的PCI/CPCI板卡驱动程序设计 82
2.8.4 PCI/CPCI板卡驱动程序的调用与调试 86
本章小结 87
第3章 基于Linux操作系统底层硬件的软件设计3.1 Linux硬件驱动及其软件开发设计概述 89
3.1.1 Linux下的硬件设备驱动概述 89
3.1.2 Linux硬件驱动软件开发设计基础 93
3.2 字符型硬件设备的驱动程序软件设计 101
3.2.1 字符型硬件设备驱动综述 101
3.2.2 向系统中添加字符型设备 101
3.2.3 字符型设备驱动软件设计举例 102
3.3 块型硬件设备的驱动程序软件设计 106
3.3.1 块型硬件设备驱动综述 106
3.3.2 向系统中添加块型设备 107
3.3.3 块型设备驱动程序的设计 109
3.4 网络型硬件设备的驱动程序软件设计 114
3.4.1 网络设备驱动程序的运行机理概述 114
3.4.2 网络型设备驱动程序的具体实现 115
3.4.3 网络设备驱动程序的应用设计举例 116
3.5 常见硬件的Linux硬件驱动软件设计 118
3.5.1 在Linux下进行异步串行数据传输 118
3.5.2 在Linux下通过并行接口传输数据 121
3.5.3 Socket接口的以太网络数据传输 125
3.5.4 USB外设的Linux驱动软件设计 131
3.5.5 ISA/PC104板卡的Linux驱动设计 140
3.5.6 PCI/CPCI板卡的Linux驱动设计 146
3.6 用WinDriver开发Linux设备驱动程序 153
3.6.1 WinDriver for Linux开发工具简介 153
3.6.2 应用WinDriver快速开发驱动程序 154
3.6.3 WinDriver驱动程序的分发与应用 155
本章小结 156
第4章 VxWorks底层硬件的软件设计 158
4.1 VxWorks底层硬件驱动及其开发设计概述 158
4.1.1 VxWorks操作系统及其体系结构 158
4.1.2 VxWorks的BSP及其开发设计 160
4.1.3 VxWorks设备驱动程序及其开发设计 163
4.1.4 Tornado IDE及其VxWorks程序设计 166
4.2 字符型硬件设备的驱动程序软件设计 168
4.2.1 字符型硬件设备及其驱动综述 168
4.2.2 字符型设备驱动程序的访问过程 171
4.3 块型设备驱动程序设计及其文件系统操作 171
4.3.1 块型硬件设备及其驱动程序综述 171
4.3.2 块型硬件设备支持的文件系统概述 174
4.3.3 块型设备驱动编写举例——电子盘操作 174
4.4 常见通信接口的VxWorks数据传输实现 177
4.4.1 在VxWorks下通过异步串口传输数据 177
4.4.2 在VxWorks下通过并行接口传输数据 180
4.4.3 以Socket编程接口实现网络传输数据 182
4.5 USB接口设备的VxWorks驱动软件设计 186
4.5.1 USB协议栈及其驱动层次结构概述 186
4.5.2 VxWorks下的核心驱动USBD详解 187
4.5.3 VxWorks下的USB设备驱动及应用 191
4.6 ISA/PC104板卡的VxWorks驱动软件设计 192
4.6.1 ISA接口设备VxWorks驱动设计概述 192
4.6.2 ISA/PC104板卡设备的驱动设计举例 192
4.7 PCI/CPCI板卡的VxWorks驱动软件设计 194
4.7.1 PCI/CPCI板卡的驱动程序设计综述 194
4.7.2 PCI/CPCI板卡的驱动程序设计举例 196
4.8 用WinDriver开发VxWorks设备驱动程序 197
4.8.1 WinDriver for VxWorks开发工具介绍 198
4.8.2 用WinDriver开发VxWorks驱动程序 199
本章小结 199
第5章 嵌入式基本体系及外设接口的直接软件架构5.1 嵌入式应用系统的直接软件架构概述 201
5.1.1 嵌入式应用系统的直接软件架构 201
5.1.2 嵌入式系统直接软件架构的特点 202
5.2 嵌入式单片机基本体系的软件架构设计 203
5.2.1 嵌入式单片机体系的软件架构综述 203
5.2.2 嵌入式单片机体系的直接软件架构 203
5.3 嵌入式DSPs基本体系的软件架构设计 218
5.3.1 嵌入式DSPs体系的软件架构综述 218
5.3.2 嵌入式DSPs体系的直接软件架构 218
5.4 嵌入式体系中的接口直接驱动软件设计 224
5.4.1 嵌入式体系硬件接口及其驱动概述 224
5.4.2 常见嵌入式接口的直接驱动软件设计 225
5.5 嵌入式体系中的外设直接驱动软件设计 245
5.5.1 嵌入式体系硬件外设及其驱动概述 245
5.5.2 常见嵌入式外设的直接驱动软件设计 245
5.6 嵌入式体系外设与接口的驱动程序测试 266
5.6.1 外设与接口驱动程序测试概述 266
5.6.2 外设与接口驱动测试软件编制 267
5.7 使用软件架构工具快速构建应用软件平台 270
5.7.1 常用嵌入式体系软件架构工具介绍 270
5.7.2 嵌入式体系软件架构工具应用举例 270
本章小结 279
第6章 嵌入式μC/OS基本体系及外设接口的软件架构6.1 μC/OS嵌入式实时操作系统概述 280
6.1.1 μC/OS操作系统简要介绍 280
6.1.2 μC/OS下的多任务信息流 281
6.1.3 μC/OS的任务调度与切换 284
6.1.4 μC/OS的中断处理与优化 285
6.1.5 μC/OS软件体系的利弊分析 286
6.2 嵌入式μC/OS基本软件体系架构 288
6.2.1 μC/OS基本软件体系综述 288
6.2.2 μC/OS下的C语言编程 289
6.2.3 μC/OS移植的方法技巧 291
6.2.3 μC/OS移植的关键技术阐述 295
6.3 常见嵌入式体系的μC/OS移植 300
6.3.1 SCM体系的μC/OS移植 300
6.3.2 DSPs体系的μC/OS移植 314
6.4 μC/OS下的外设/接口驱动设计 315
6.4.1 外设接口驱动设计综述 315
6.4.2 典型外设接口驱动设计 315
6.5 μC/OS下的文件系统及存取访问 322
6.5.1 μC/FS文件系统及其应用 322
6.5.2 EMFS文件系统及其应用 323
6.6 μC/OS嵌入式软件体系架构应用 325
6.6.1 数据采集/传输系统软件架构 325
6.6.2 总线式数据采集软件体系架构 327
本章小结 329
第7章 嵌入式DRTOS基本体系及外设接口的软件架构7.1 DRTOS嵌入式实时操作系统综述 330
7.1.1 DRTOS嵌入式操作系统概述 330
7.1.2 嵌入式DSP/BIOS体系综述 332
7.2 嵌入式DSP/BIOS基本软件体系架构 338
7.2.1 嵌入式DSP/BIOS软件体系开发 338
7.2.2 DSP/BIOS的配置工具及其使用 338
7.2.3 DSP/BIOS文件及其编译与链接 340
7.2.4 DSP/BIOS启动序列及自举引导 341
7.2.5 DSP/BIOS软件的调试与监测 343
7.3 DSP/BIOS下的外设/接口驱动软件设计 344
7.3.1 DSP/BIOS外设接口驱动设计概述 344
7.3.2 DSP/BIOS典型I/O数据传输设计 345
7.3.3 DSP/BIOS典型网络通信操作设计 348
7.3.4 DSP/BIOS类/微型驱动程序设计 351
7.4 DSP/BIOS嵌入式软件体系架构应用 358
7.4.1 DSP/BIOS数据采集体系软件架构 358
7.4.2 DSP/BIOS图像处理体系软件架构 359
7.4.3 DSP/BIOS机顶盒多任务调度架构 361
本章小结 364
第8章 嵌入式WinCE/XPE基本体系及外设接口的软件架构8.1 WinCE/XPE嵌入式操作系统综述 366
8.1.1 WinXPE及软件体系开发概述 367
8.1.2 WinCE及软件体系开发简介 367
8.1.3 WinCE体系结构与功能综述 369
8.1.4 WinCE下应用软件开发总览 371
8.2 定制WinCE嵌入式基本软件体系 372
8.2.1 WinCE定制的一般设计流程 372
8.2.2 PB/组件/WinCE及构建详述 373
8.2.3 简单示例:定制并运行CEPC 374
8.3 移植WinCE嵌入式实时操作系统 375
8.3.1 WinCE运行的硬件需求 375
8.3.2 WinCE BSP及开发设计 375
8.3.3 WinCE引导程序的编写 376
8.3.4 WinCE OAL程序的编制 378
8.4 WinCE的设备驱动程序及其设计 380
8.4.1 WinCE设备驱动程序综述 380
8.4.2 WinCE设备驱动程序设计 384
8.4.3 WinCE设备驱动设计举例 385
8.4.4 开发与测试设备驱动程序 393
8.5 WinCE USB设备驱动程序及设计 394
8.5.1 WinCE USB软件体系综述 394
8.5.2 编写WinCE USB驱动程序 395
8.5.3 简单示例:USB鼠标驱动 396
8.6 WinCE NDIS网络设备驱动及设计 401
8.6.1 WinCE NDIS网络驱动概述 401
8.6.2 WinCE微端口驱动及其实现 402
8.7 WinCE块型设备驱动及文件系统操作 407
8.7.1 WinCE的块型设备驱动综述 407
8.7.2 块型设备系统体系及文件系统 408
8.7.3 实现WinCE块型设备驱动程序 409
8.8 常用的WinCE数据通信及其实现 411
8.8.1 WinCE下的通信模型综述 411
8.8.2 WinCE串行数据通信实现 412
8.8.3 WinCE网络数据通信实现 415
本章小结 421
第9章 嵌入式Linux基本体系及外设接口的软件架构9.1 Linux嵌入式实时操作系统综述 422
9.1.1 Linux嵌入式操作系统概述 422
9.1.2 嵌入式μCLinux体系综述 423
9.2 μCLinux开发环境的建立及其移植 425
9.2.1 μCLinux开发环境简介 425
9.2.2 建立μCLinux开发环境 427
9.2.3 μCLinux的芯片级移植 428
9.3 μCLinux设备驱动程序及设计综述 435
9.3.1 μCLinux设备驱动程序概述 435
9.3.2 μCLinux内核模块基本框架 436
9.3.3 Makefile文件及其基本框架 436
9.4 μCLinux字符型设备驱动程序设计 437
9.4.1 字符型设备驱动的整体架构设计 437
9.4.2 相关接口操作的函数代码编写 438
9.4.3 底层中断及其处理程序的设计 441
9.4.4 编译指导文件Makefile的编制 442
9.4.5 字符型设备驱动的应用程序调用 443
9.5 μCLinux块型设备驱动与闪存文件操作 444
9.5.1 嵌入式块驱动及文件操作概述 444
9.5.2 μCLinux的块型设备驱动程序设计 444
9.5.3 闪存Flash驱动及文件系统操作 448
9.6 μCLinux的网络设备驱动及网络通信 450
9.6.1 μCLinux网络设备驱动程序设计 450
9.6.2 基于μCLinux的Socket网络通信 459
本章小结 460
第10章 嵌入式VxWorks基本体系及外设接口的软件架构10.1 嵌入式VxWorks软件体系架构基础 461
10.1.1 VxWorks体系结构及设备驱动 461
10.1.2 VxWorks的BSP及其开发设计 463
10.1.3 Tornado开发工具及其IDE简介 463
10.2 VxWorks内核移植及BSP软件编写 464
10.2.1 VxWorks操作系统的移植过程 464
10.2.2 S3C4510B VxWorks BSP开发 464
10.2.3 LPC2104 VxWorks BSP设计 467
10.3 VxWorks下字符型设备驱动软件设计 472
10.3.1 字符型设备驱动及其设计简述 472
10.3.2 字符型设备驱动程序软件框架 473
10.3.3 字符型设备驱动设计应用举例 477
10.4 VxWorks下块型设备驱动及文件系统架构 479
10.4.1 块型设备驱动与文件系统操作概述 479
10.4.2 闪存介质CF卡及TFFS操作 480
10.4.3 TFFS构建与大容量闪存操作 482
10.5 VxWorks下的异步串口驱动程序设计 486
10.5.1 VxWorks异步串口驱动概述 486
10.5.2 串口驱动程序设计流程分析 487
10.5.3 示例:编写S3C2410串口驱动 490
10.6 VxWorks下的网络设备驱动及其实现 496
10.6.1 VxWorks网络设备驱动综述 496
10.6.2 END设备驱动程序及其编写 499
10.6.3 示例:RT8139C网络接口驱动 502
本章小结 504
第11章 硬件外设/接口及其片上系统的可编程软件实现11.1 外设/接口及其片上系统软件实现综述 505
11.1.1 软件实现外设/接口及其片上系统 505
11.1.2 硬件设施软件实现应用技术简介 506
11.2 可编程实现常见外设/接口及简易系统 515
11.2.1 嵌入式应用体系的外存模块设计 515
11.2.2 总线接口的时序逻辑变换实现 518
11.2.3 常见外设/接口的PLD简易实现 521
11.2.4 专用外设/接口的PLD简易实现 523
11.2.5 简单测量/控制体系的可编程实现 529
11.3 外设/接口的片上可编程软件配置实现 538
11.3.1 PSD外设/接口的灵活软件实现 538
11.3.2 μPSD及其片内外设/接口的应用 543
11.3.3 PSoC及其片内外设/接口的应用 544
11.4 模拟硬件外设/接口的可编程软件设计 547
11.4.1 ispPAC系列器件及应用设计简介 547
11.4.2 用ispPAC器件设计模拟外设/接口 548
11.5 特定DSP算法的FPGA可编程设计 553
11.5.1 DSP Builder及其DSP设计简介 554
11.5.2 System Generater及DSP实现综述 554
11.5.3 典型DSP算法的FPGA实现举例 556
11.6 嵌入式体系的FPGA-SoPC实现技术 560
11.6.1 常用FPGA-SoPC实现技术综述 561
11.6.2 FPGA-SoPC技术应用设计实践 565
本章小结 575
第12章 基于底层硬件的软件设计实践 577
12.1 在项目设计中规划基于底层硬件的软件架构 577
12.1.1 基于底层硬件体系软件架构的总体考虑 577
12.1.2 嵌入式应用体系软件架构的规划设计 578
12.1.3 通用计算机通信相关的设备驱动设计 579
12.1.4 特定应用系统的数据通信规约及其制订 580
12.2 铁路道岔运行状况监控系统的软件体系架构 581
12.2.1 项目构成及软件架构的主要环节综述 581
12.2.2 关键性子系统的软件体系架构及实现 583
12.3 交流电机伺服驱动监控系统的软件体系架构 599
12.3.1 项目系统组成及其需要架构的软件体系 599
12.3.2 上/下位软件体系之间的通信及其规约 599
12.3.3 交流电机伺服控制器系统的软件架构 600
12.3.4 上位机数据传输通信软件体系的构造 615
12.4 μLinux下的ARM与DSPs的数据通信实现 620
12.4.1 项目体系的构造及关键硬件电路组成 620
12.4.2 ARM-Linux下的HPI接口驱动设计 621
12.5 嵌入式RTOS下跨平台通信体系的软件架构 624
12.5.1 E-RTOS体系跨平台通信的整体设计 624
12.5.2 E-RTOS跨平台通信的部分代码示例 626
12.6 基于FPGA-SoPC的MP3播放器及软件架构 628
12.6.1 系统的总体框架设计及其功能描述 628
12.6.2 FPGA-SoPC的软硬件协同设计实现 629
12.7 基于底层硬件的软件设计参考书籍推荐 632
本章小结 633
参考文献 634