《嵌入式系统设计与应用开发》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:郑灵翔等编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2006
  • ISBN:7810777467
  • 页数:455 页
图书介绍:本书基于2.6版内核的嵌入式操作系统,全面介绍嵌入式系统开发的一般过程。包括:嵌入式开发入门知识;嵌入式系统硬件设计和软件驱动原理以及对应接口的应用软件开发方法等。

第1章 绪论 1

1.1 嵌入式系统的概念 1

1.2 嵌入式系统的分类 1

目录 1

1.3 嵌入式系统的组成 2

1.4 嵌入式系统的设计流程 3

1.5 嵌入式技术的发展趋势 5

习题与思考题 7

2.1.1 RISC体系结构 8

第2章 ARM与XScale体系结构简介 8

2.1 ARM处理器介绍 8

2.1.2 ARM系列处理器 9

2.2 ARM体系结构的一些重要概念 11

2.2.1 处理器工作状态 11

2.2.2 处理器模式 11

2.2.3 ARM寄存器 12

2.2.4 异常 15

2.3 XScale体系结构 16

2.3.1 XScale超级流水线 17

2.3.2 协处理器 18

2.3.3 无线MMX指令单元 19

2.3.4 内存管理 19

2.3.5 指令快存 20

2.3.6 数据快存 20

2.3.9 性能监视 21

2.3.10 电源管理 21

2.3.11 调试 21

2.3.8 写缓冲器 21

2.3.7 转移目标缓冲器BTB 21

2.4 PXA系列处理器 22

2.4.1 PXA255处理器 22

2.4.2 PXA27x处理器 24

2.5 XScale开发平台 26

2.5.1 XSBase255开发平台 26

2.5.2 XSBase270开发平台 29

本章小结 31

习题与思考题 31

3.2 操作系统的发展过程 32

3.1 操作系统的概念 32

第3章 操作系统基础 32

3.3 嵌入式操作系统 34

3.3.1 嵌入式操作系统的演化及其发展趋势 35

3.3.2 常见的嵌入式操作系统 36

3.3.3 嵌入式操作系统的选择 39

3.4 操作系统的功能 41

3.4.1 进程管理 41

3.4.2 存储器管理 44

3.4.4 文件管理 48

3.4.3 设备管理 48

本章小结 49

习题与思考题 49

第4章 Linux概述 50

4.1 Linux的历史 50

4.2 Linux常见发行版简介 51

4.3 Linux操作系统的构成 51

4.3.1 总体结构 51

4.3.2 Linux内核 52

4.3.3 根文件系统目录树结构 53

4.3.5 Linux文件 55

4.3.4 Shell简介 55

4.4 Linux的基本操作 56

4.4.1 Linux命令的使用 56

4.4.2 vi编辑器的使用 74

4.4.3 Linux配置与管理的相关命令 75

4.5 嵌入式Linux简介 78

4.5.1 自制嵌入式Linux 78

4.5.2 商业版嵌入式Linux 79

4.5.3 NMT RT-Linux 79

4.5.4 RTAI 80

4.5.5 μClinux 81

本章小结 82

习题与思考题 82

第5章 Linux程序开发简介 83

5.1 GNU Compiler Collection简介 83

5.1.1 用GCC编译简单程序 84

5.1.2 GCC使用简介 84

5.2 GNU make与Makefile编写 87

5.2.1 Makefile的编写 88

5.2.3 Makefile的变量 89

5.2.2 Makefile的处理过程 89

5.2.4 Phony目标 91

5.2.5 利用隐含规则简化Makefile 92

5.2.6 make的命令行参数 93

5.2.7 Makefile示例 93

5.3 Autoconf和Automake简介 94

5.3.1 使用前的准备 95

5.3.2 自动生成Makefile的方法 95

5.3.3 Makefile.am的编写 97

5.3.4 自动处理复杂软件包 98

5.4 GDB/Insight调试器的使用 100

5.4.1 GDB调试工具简介 100

5.4.2 GDB图形前端Insight简介 111

5.5 Linux下集成开发工具的使用 118

本章小结 122

习题与思考题 122

第6章 嵌入式Linux开发入门 123

6.1 嵌入式系统的开发模式 123

6.2 嵌入式Linux系统的开发流程 124

6.3.1 开发环境的安装 125

6.3 嵌入式Linux的构造 125

6.3.2 内核裁剪与编译 126

6.3.3 Busybox与根文件系统的构造 131

6.4 在开发板上运行嵌入式Linux 137

6.4.1 Bootloader简介 137

6.4.2 U-boot烧写与使用 138

6.4.3 用U-boot启动嵌入式Linux 143

6.5 嵌入式硬件仿真环境SkyEye 150

6.5.1 SkyEye安装 151

6.5.2 在SkyEye中运行嵌入式Linux 152

6.5.3 在图形化的SkyEye-Insight下调试Linux内核 156

6.6 嵌入式应用程序开发调试 158

6.6.1 将应用程序加入嵌入式Linux系统 158

6.6.2 应用程序的移植 159

6.6.3 通过NFS调试嵌入式应用程序 161

6.6.4 通过Cross-gdb调试应用程序 163

本章小结 166

习题与思考题 166

7.1 基本原理 168

7.1.1 设备分类 168

第7章 Linux 2.6内核驱动原理 168

7.1.2 设备号 169

7.2 内核模块 169

7.2.1 内核模块的概念 169

7.2.2 内核模块的框架 170

7.2.3 2.6系列内核模块的编译和加载 170

7.3 设备驱动程序的结构 174

7.3.1 虚拟文件系统与硬件驱动的接口 174

7.3.2 简单字符设备的驱动 176

7.4.1 Linux2.6设备模型概述 178

7.4 Linux2.6内核设备模型 178

7.4.2 移植到新的驱动模式 180

7.5 Linux 2.6内核的中断处理 182

7.5.1 中断处理程序的注册与释放 183

7.5.2 中断处理程序的编写 184

7.6 Linux 2.6内核的工作推后执行的机制 184

7.6.1 软中断 185

7.6.2 Tasklet 185

7.6.3 工作队列 187

习题与思考题 190

本章小结 190

第8章 处理器核心电路设计和底层软件移植 191

8.1 最小硬件系统设计 191

8.1.1 系统存储器接口 191

8.1.2 串口电路原理 194

8.2 最小硬件系统的配置 195

8.2.1 处理器的配置 195

8.2.2 Flash SDRAM的配置 196

8.2.3 GPIO和串口的配置 199

8.3 最小硬件系统与Bootloader 201

8.3.1 U-boot启动阶段1的处理过程 202

8.3.2 U-boot启动阶段2的处理过程 207

8.3.3 U-boot移植原理 208

8.3.4 基于U-boot的硬件调试 214

8.4 最小硬件系统与Linux 2.6内核移植 216

8.4.1 建立开发板平台描述文件 217

8.4.2 编写硬件include文件 219

8.4.3 修改内核配置文件 219

本章小结 219

习题与思考题 220

9.1 Keypad硬件原理 221

9.1.1 Keypad接口设计 221

第9章 Keypad接口设计与驱动开发 221

9.1.2 Keypad电路原理 222

9.2 Keypad软件驱动原理 224

9.2.1 内核模块的注册和撤销 224

9.2.2 虚拟文件系统与硬件驱动的接口 225

9.2.3 设备打开操作接口函数 225

9.2.4 设备读取操作接口函数 226

9.2.6 获取键值子函数 227

9.2.5 设备关闭操作接口函数 227

9.2.7 读缓冲区子函数 229

9.2.8 内核定时器的使用 229

9.2.9 利用等待队列实现阻塞型I/O 230

9.2.10 poll系统调用操作接口函数 231

9.2.11 在设备驱动中实现异步通知 233

9.3 键盘信息读取应用实例 234

本章小结 236

习题与思考题 236

10.1 RTC电路设计 237

10.1.1 处理器与RTC-4513接口设计 237

第10章 RTC接口电路设计与驱动开发 237

10.1.2 RTC-4513电路原理 238

10.1.3 RTC-4513操作参数 240

10.1.4 RTC-4513的串行操作流程 243

10.2 RTC软件驱动原理 246

10.2.1 内核模块的注册和撤销 247

10.2.2 虚拟文件系统与硬件驱动的接口 247

10.2.3 设备打开操作接口函数 248

10.2.4 使用ioctl()方法 248

10.2.6 读时钟寄存器子函数 252

10.2.5 设备关闭操作接口函数 252

10.2.7 写时钟寄存器子函数 253

10.3 RTC操作应用实例 253

本章小结 256

习题与思考题 256

第11章 触摸屏电路设计与驱动开发 257

11.1 触摸屏的工作原理 257

11.2 ADS7843触摸屏控制器简介 258

11.3 处理器与ADS7843的接口设计 260

11.3.1 电路接口设计 260

11.3.2 Micrwoire数据帧结构 261

11.4.1 Linux内核输入设备子系统驱动架构 263

11.4.2 硬件操控原理 263

11.4 触摸屏软件驱动原理 263

11.4.3 输入设备驱动接口的使用 266

11.4.4 中断处理 268

11.5 基于触摸屏驱动的应用实例 270

本章小结 272

习题与思考题 272

12.1.1 功能介绍 273

12.1.2 引脚定义 273

第12章 以太网电路设计与驱动开发 273

12.1 CS8900A以太网芯片简介 273

12.2 处理器与以太网芯片接口设计 274

12.3 CS8900A片内寄存器介绍 275

12.3.1 总线接口寄存器组 275

12.3.2 状态与控制寄存器组 276

12.3.3 发送初始化寄存器组 285

12.4 CS8900A的操作方法 286

12.4.1 CS8900A的初始化 286

12.3.4 地址过滤寄存器组 286

12.4.2 CS8900A的I/O模式寄存器 287

12.4.3 CS8900A片内寄存器的读/写 287

12.5 Linux网络设备软件驱动原理 288

12.5.1 Linux网络设备驱动框架 288

12.5.2 Linux网络设备接口 289

12.5.3 网络驱动程序的实现 294

本章小结 303

习题与思考题 303

13.1.1 PCMCIA和CF接口简介 304

第13章 PCMCIA外围电路设计与驱动开发 304

13.1 PXA2XX处理器的PCMCIA接口 304

13.1.2 PXA2XX处理器的PCMCIA存储器映射 305

13.1.3 PCMCIA外部接口设计 305

13.2 外围电路驱动原理 307

13.2.1 双向收发器74LCX245的使用 307

13.2.2 CF卡插入检测 308

13.2.3 “卡读(写)使能”信号 310

13.2.4 PCMCIA接口的Socket Select 311

13.2.5 PCMCIA接口的电源管理 311

13.3.1 存储控制单元的GPIO连接原理 313

13.3 GPIO连接原理 313

13.3.2 与中断相关的GPIO连接原理 314

13.4 PCMCIA软件驱动原理 315

13.4.1 PCMCIA设备驱动体系结构 315

13.4.2 PCMCIA工作流程 316

13.4.3 插口驱动设计 316

13.5 PCMCIA Card Services软件包 319

13.5.1 软件包的安装 319

13.5.2 Ture IDE模式的CF卡驱动 320

13.5.3 CF存储卡的使用 321

本章小结 323

习题与思考题 323

第14章 AC97音频处理电路设计与驱动开发 324

14.1 PXA255 AC97硬件工作原理 324

14.1.1 PXA255 AC97音频处理电路设计 324

14.1.2 PXA255 AC97控制单元 324

14.1.3 CS4299音频编解码器 331

14.2 AC97软件驱动原理 335

14.2.1 音频设备的注册及初始化 335

14.2.2 DSP设备 338

14.2.3 混音器设备 340

14.3 音频应用实例 342

本章小结 346

习题与思考题 347

第15章 图形用户界面设计 348

15.1 PXA255显示驱动 348

15.1.1 LCD接口原理 348

15.1.2 LCD驱动流程 351

15.2 常见的嵌入式图形用户界面简介 358

15.3 QT/E和Qtopia移植 360

15.4 免费的GUI——Tiny-X 364

本章小结 366

习题与思考题 367

第16章 嵌入式Linux网络应用开发 368

16.1 TCP/IP和Linux网络简介 368

16.2 Linux套接字编程接口介绍 370

16.3 基于IPv4协议Socket编程 371

16.3.1 基于TCP的Socket编程 371

16.3.2 基于TCP Socket的应用实例——猜数字游戏 374

16.3.3 基于UDP的Socket编程 378

16.3.4 基于UDP Socket的应用实例——服务查询 379

16.4 IPv6网络应用程序开发 382

16.4.1 IPv6简介 382

16.4.2 IPv4程序移植到IPv6的方法 384

16.5 IPv4到IPv6程序移植实例 390

16.5.1 基于TCP Socket的猜数字游戏程序移植 390

16.5.2 基于UDP Socket的服务查询程序移植 393

本章小结 399

习题与思考题 399

17.1 嵌入式软件优化方法概述 400

第17章 嵌入式系统软件优化方法简介 400

17.2 基于Intel IPP/GPP库的软件优化 401

17.2.1 Intel IPP库简介 401

17.2.2 Intel GPP图形库简介 404

17.3 Intel VTune可视化性能分析工具 404

17.3.1 VTune概要 404

17.3.2 VTune实验 407

本章小结 413

习题与思考题 413

18.1 数字身份认证系统 414

18.1.1 系统原理 414

第18章 PXA处理器应用解决方案 414

18.1.2 系统设计 415

18.1.3 硬件设计 417

18.1.4 软件设计 418

18.2 智能家庭监控系统 423

18.2.1 系统原理 423

18.2.2 系统设计 424

18.2.3 硬件设计 425

18.2.4 软件设计 428

18.3.1 系统设计 430

18.3 支持NGI与自动目标跟踪的数字视频监控系统 430

18.3.2 硬件设计 431

18.3.3 软件设计 432

18.4 PMP便携式媒体播放器 435

18.4.1 方案选择 435

18.4.2 Intel PXA27x解决方案的优势 436

18.4.3 硬件设计 437

18.4.4 软件设计 439

本章小结 439

附录 基于μClinux的嵌入式开发 440

参考文献 452