《ARM微处理器与应用开发》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:赖于树主编
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2007
  • ISBN:7121047586
  • 页数:479 页
图书介绍:本书从嵌入式的基本概念入手,以目前常用的32位ARM9处理器(三星S3C2440A)的应用开发为主线,结合嵌入式Linux操作系统,系统介绍了嵌入式系统开发设计的整个过程。具体内容是,首先介绍嵌入式系统的基本概念和软硬件体系结构,然后系统阐述嵌入式应用系统的环境创建、工具软件和开发调试过程,最后介绍了嵌入式Linux驱动程序和应用程序的设计开发技术。

第1章 嵌入式系统概述 1

1.1 嵌入式系统基础 2

1.1.1 嵌入式技术的发展历史 2

1.1.2 嵌入式系统的定义与特点 3

1.1.3 嵌入式系统的分类与组成结构 4

1.1.4 嵌入式系统的应用领域 6

1.1.5 嵌入式技术发展趋势 6

1.2 嵌入式系统的硬件系统 9

1.2.1 嵌入式处理器 9

1.2.2 嵌入式外围设备与接口 11

1.2.3 典型嵌入式处理器与开发板介绍 12

1.3 嵌入式系统的软件系统 15

1.3.1 嵌入式软件的基本特点与分类 15

1.3.2 嵌入式软件开发环境 17

1.3.3 嵌入式软件开发基本流程 18

1.3.4 嵌入式软件开发的要点 19

1.3.5 嵌入式操作系统 20

1.4 小结 23

第2章 ARM微处理器概述 25

2.1 ARM微处理器的技术特点 26

2.1.1 ARM微处理器体系结构及其发展历程 26

2.1.2 ARM微处理器体系结构 33

2.1.3 ARM微处理器的技术特点 34

2.1.4 ARM微处理器的应用与选型 34

2.2 ARM微处理器系列介绍 35

2.2.1 ARM7微处理器系列 36

2.2.2 ARM9微处理器系列 36

2.2.3 ARM9E微处理器系列 36

2.2.4 ARM10E微处理器系列 37

2.2.5 SecurCore微处理器系列 37

2.2.6 Intel的Xscale系列与StrongARM系列 37

2.3 ARM微处理器的编程模型 38

2.3.1 ARM微处理器的数据类型 38

2.3.2 ARM微处理器的工作状态 38

2.3.3 ARM微处理器模式 38

2.3.4 ARM微处理器的寄存器组织 39

2.3.5 ARM体系中的存储系统 45

2.3.6 异常(Exceptions) 48

2.4 小结 53

第3章 ARM程序设计基础 55

3.1 ARM预定义的寄存器和协处理器 56

3.2 ARM的指令系统介绍 56

3.2.1 ARM指令系统概要 56

3.2.2 ARM寻址方式介绍与示例 59

3.2.3 指令系统分类 63

3.2.4 ARM指令集介绍与使用范例 63

3.2.5 Thumb指令集介绍 76

3.3 ARM汇编语言体系 77

3.3.1 ARM汇编开发环境 77

3.3.2 基于ADS/STD环境的ARM伪指令系统 77

3.4 ARM汇编语言程序设计规范 79

3.4.1 汇编语言中常用的符号 80

3.4.2 汇编语言中的表达式与运算符 81

3.5 ARM汇编语言程序设计范例 84

3.5.1 ARM汇编语言的程序结构与设计方法 84

3.5.2 ARM汇编语言与C语言混合编程 86

3.6 基于GNU的ARM汇编开发环境介绍 87

3.6.1 Linux汇编环境中的基本定义 88

3.6.2 Linux下ARM汇编的常用伪操作 89

3.6.3 Linux下ARM汇编程序示例 91

3.6.4 两种汇编环境之间代码的移植 92

3.7 小结 93

第4章 嵌入式Linux操作系统 95

4.1 Linux操作系统基础 96

4.1.1 Linux简介 96

4.1.2 Linux与其他操作系统 97

4.1.3 Linux与UNIX和GNU 97

4.1.4 Linux操作系统的优良特性 99

4.1.5 Linux的应用 101

4.2 Linux内核概述 101

4.2.1 Linux内核 101

4.2.2 进程调度 104

4.2.3 内存管理 111

4.2.4 文件系统管理 116

4.2.5 Linux中设备管理 121

4.3 嵌入式Linux操作系统 124

4.3.1 Linux作为嵌入式操作系统的优势与不足 124

4.3.2 嵌入式Linux引导过程 124

4.3.3 典型嵌入式Linux操作系统 127

4.4 实时操作系统与Linux的实时化改造 130

4.4.1 实时操作系统 130

4.4.2 Linux系统的实时化改造 132

4.5 小结 135

第5章 ARM9开发环境与开发工具 137

5.1 嵌入式应用程序开发——交叉开发、调试 138

5.1.1 嵌入式开发环境概述 138

5.1.2 GNU Tools开发工具集 139

5.1.3 嵌入式系统调试技术介绍 140

5.1.4 ARM应用开发系统总体框架 142

5.1.5 使用NFS调试ARM嵌入式应用程序 143

5.2 编译工具gcc与调试工具gdb 146

5.2.1 gcc编译工具与编译过程 146

5.2.2 gdb调试工具与调试示例 150

5.2.3 使用gdb实现嵌入式交叉调试 153

5.3 GNU Make与Makefile的编写 154

5.3.1 什么是Make、Makefile 155

5.3.2 Makefile初步 156

5.3.3 Makefile概述 158

5.3.4 规则的书写 160

5.3.5 规则的命令书写 164

5.3.6 Makefile中的变量 167

5.3.7 条件判断 173

5.4 小结 174

第6章 嵌入式Linux操作系统移植 175

6.1 如何获得Linux源代码 176

6.2 Linux内核源代码目录结构概述 177

6.3 Linux Kernel Makefile的规则 178

6.3.1 哪些人需要使用内核Makefile 178

6.3.2 kbuild Makefile 179

6.3.3 编译中宿主机需要使用的文件 182

6.3.4 kbuild中的clean 184

6.3.5 Arch Makefiles 185

6.3.6 kbuild变量 191

6.4 配置、编译Linux内核 192

6.4.1 最小硬件系统 192

6.4.2 开发板平台描述文件分析 192

6.4.3 修改内核添加对板载NAND Flash闪存的支持 195

6.4.4 为NAND闪存系统添加YAFFS文件系统 196

6.4.5 修改编译器及启动镜像生成工具 202

6.4.6 编译内核 202

6.5 小结 203

第7章 Boot Loader和文件系统详解 205

7.1 Boot Loader简介 206

7.2 几种常见的Boot Loader 206

7.3 U-Boot的板级移植 207

7.3.1 U-Boot的启动流程 207

7.3.2 U-Boot源代码结构分析及导读 209

7.3.3 U-Boot的板级移植 215

7.4 嵌入式文件系统 226

7.4.1 文件系统的概念 226

7.4.2 根文件系统的基本结构 228

7.4.3 根文件系统的基本结构——/usr目录 231

7.4.4 根文件系统目录结构——/var目录 234

7.5 YAFFS文件系统详解 238

7.5.1 选择文件系统 238

7.5.2 Flash闪存简介 239

7.5.3 YAFFS文件系统 240

7.6 创建根文件系统 242

7.6.1 必要的命令、工具——/bin、/sbin目录 243

7.6.2 建立Busybox工具 244

7.6.3 设备文件:/dev目录 246

7.6.4 链接库文件:/lib目录 247

7.6.5 系统启动配置:/etc目录 249

7.6.6 生成rootfs.yaffs文件系统映像 250

7.7 小结 250

第8章 设备驱动开发入门 251

8.1 Linux设备驱动基础 252

8.1.1 Linux设备驱动概述 252

8.1.2 设备类型分类 253

8.1.3 设备节点、文件节点、设备文件 254

8.1.4 主设备号和辅设备号 255

8.1.5 加载和删除驱动程序 255

8.2 设备驱动程序模块化编程 256

8.2.1 内核空间与用户空间 257

8.2.2 一个简单的内核模块 257

8.2.3 简单驱动程序模块实例 259

8.3 字符设备驱动程序入门 262

8.3.1 字符设备定义与常见字符设备 262

8.3.2 驱动程序中的关键数据结构分析 262

8.3.3 驱动程序中的基本函数分析 266

8.4 字符设备驱动程序编写范例分析 269

8.4.1 一个最简单的字符设备驱动程序 269

8.4.2 S3C2440A片上A/D采样设备驱动程序编写范例 274

84.3 S3C2440A触摸屏接口驱动程序实例分析 283

8.5 块设备驱动入门 296

8.5.1 块设备与块设备驱动 296

8.5.2 驱动程序中的关键数据结构分析 297

8.5.3 驱动程序中的基本函数分析 299

8.6 块设备驱动程序编写范例分析 301

8.6.1 最简单的块设备驱动程序设计与分析 301

8.6.2 NAND Flash K9F 1208(块设备)驱动编写实例 303

8.7 小结 317

第9章 常用设备驱动 319

9.1 UART串口驱动与通信实现 320

9.1.1 异步串行通信介绍 320

9.1.2 S3C2440 UART相关寄存器 321

9.1.3 UART驱动程序设计分析 324

9.1.4 Linux下串口通信编程范例 328

9.2 LCD驱动程序设计与实现 335

9.2.1 嵌入式系统中LCD驱动程序实现原理 335

9.2.2 LCD驱动程序关键数据结构分析 337

9.2.3 LCD驱动程序的实现 342

9.2.4 Linux显示应用程序设计简介 343

9.3 USB驱动程序开发 344

9.3.1 USB驱动与Linux下USB系统文件节点 344

9.3.2 USB驱动程序结构分析 345

9.3.3 USB主机驱动程序的实现 346

9.4 网络控制芯片(DM9000)与驱动设计 353

9.4.1 DM9000以太网控制芯片 353

9.4.2 网络控制器驱动设计 356

9.4.3 DM9000网络芯片驱动程序分析 362

9.5 小结 378

第10章 嵌入式系统图形界面设计 379

10.1 嵌入式图形用户界面(GUI)简介 380

10.1.1 嵌入式GUI工作模式 380

10.1.2 嵌入式GUI的分层结构 381

10.2 常见的嵌入式GUI 382

10.2.1 MiniGUI 382

10.2.2 MicroWindows 384

10.2.3 OpenGUI 385

10.2.4 Qt/Embedded 385

10.2.5 几款嵌入式GUI的比较与选择 385

10.3 Qt/Embedded图形用户界面系统 386

10.3.1 Qt/Embedded简介 386

10.3.2 Qt/Embedded嵌入式图形引擎实现 389

10.3.3 Qt/Embedded的Server/Client模型 391

10.3.4 Qt/Embedded中鼠标与键盘的控制 393

10.3.5 Qt/Embedded应用程序的图形显示 397

10.4 Qt/Embedded应用程序的开发 399

10.4.1 Qt/Embedded应用程序开发流程 399

10.4.2 Qt/Embedded开发工具(qmake、qvfb)的使用 401

10.4.3 Qt/Embedded开发环境创建 406

10.4.4 将Qt/Embedded程序加载至目标板 407

10.5 Qt/Embedded应用程序开发示例 408

10.5.1 Qt与Qt/Embedded的主要类 408

10.5.2 使用C++编写Qt/Embedded应用程序示例 412

10.5.3 Qt/Embedded应用程序开发实例 415

10.5.4 使用Qt Designer开发Qt/Embedded应用程序 421

10.6 小结 422

第11章 嵌入式系统开发模式 423

11.1 嵌入式系统的开发过程 424

11.1.1 确定系统的要求 424

11.1.2 设计系统的体系结构 424

11.1.3 开发平台与开发工具 425

11.1.4 软、硬件联调 426

11.1.5 系统测试与评估 426

11.2 嵌入式Linux开发模式 426

11.2.1 引导加载程序 427

11.2.2 Linux内核 427

11.2.3 文件系统的装载 428

11.2.4 图形用户界面 428

11.2.5 应用程序开发 429

11.3 小结 430

第12章 嵌入式网络与嵌入式Web服务 431

12.1 嵌入式网络通信 432

12.1.1 嵌入式Internet技术 432

12.1.2 嵌入式网络通信协议TCP/IP 435

12.2 嵌入式Web服务 440

12.2.1 嵌入式Web服务器架构 440

12.2.2 Web服务中的超文本传输协议(HTTP) 444

12.2.3 嵌入式CGI 448

12.2.4 实现动态数据Web页面 456

12.2.5 实现交互式输入Web页面 457

12.3 嵌入式Web服务器设计与应用 459

12.3.1 远程重构概述与网络拓扑结构 460

12.3.2 嵌入式重构Web服务器端软件模块设计 461

12.4 小结 464

附录A 嵌入式开发网络资源 465

附录B Linux常见命令 467

附录C GNU GPL——GNU通用公共许可证 474

参考文献 479