标题：ARM嵌入式应用开发完全自学手册
图书信息
作　者：张绮文，王廷广编著 
出 版 社： 电子工业出版社
出版时间： 2009-4-1
页　数：420页
开　本： 16开
  
ISBN 9787121085093
分类： 图书>> 计算机>ARM嵌入式
估价：55.00元（含光盘1张）
内 容 简 介
本书语言简洁、层次清晰，内容从零开始、循序渐进，讲解全面深入。应用技术与实际案例紧密结合，实例典型丰富，好学易懂，具有较高的实战和商业参考价值。读者学习后可以举一反三，快速实现从入门到精通的飞跃。 
本书配有光盘一张，包含了全书所有实例的硬件原理图和程序源代码，方便读者学习和使用。本书适合计算机、自动化、电子及通信等相关专业的大学生，以及从事ARM开发的科研人员使用。
前 言
ARM是目前应用最热门的嵌入式处理器之一，在无线通信、工业控制、数字消费类电子以及家居安全领域得到了广泛深入地应用。由于ARM嵌入式开发软硬件相结合的过程技术性较强，因此读者需要了解ARM的硬件结构、指令系统，熟悉C语言、汇编编程以及ARM常用开发工具，学习基于Linux和μC/OS-Ⅱ平台的系统移植和开发，并最终掌握ARM外围设备的编程与综合系统的设计方法。
但目前市场上关于ARM入门学习的书，要么内容不够全面，要么实用性不强，或者就是结构不合理、讲解方式不易学等，本书将重点弥补这些不足，内容全面、系统、实用，技术涉及更加新颖深入，并安排典型的系统开发实例，突出应用性和实用性，方便读者快速入门和提高。
本书内容
全书共分12章，主要内容安排如下：
本书特色
与同类书相比，本书具有以下特色：
内容安排系统全面、由浅入深，讲解方式从零开始、循序渐进，方便初学者快速上手。
以应用和实践为核心，ARM开发技术与实际案例紧密结合，边讲边练，实战价值高；同时提供了系统设计的详细思路与流程，对实例程序代码做了详细注释，利于读者理解和巩固知识点。
本书配有光盘一张，包含了全书所有实例的硬件原理图和程序源代码，方便读者学习和使用，同时读者只需对其稍加修改，便可应用于自己的工作中或完成自己的课题，物超所值。
光盘说明
1、光盘内容与使用说明
本光盘内容包括实例章节的程序代码和电路图文件。各文件夹以书的章节编号来命名。
程序代码文件夹：包含本书所有源代码文件。
电路图文件夹：包含本书各实例原理图文档，请读者使用protel 99或者DXP软件查看。
2、系统配置要求
该光盘运行只需一般的PC机就可以。
对使用Protel99操作的用户，建议系统配置为128MB以上内存，1024×768分辨率，8MB以上显存。
对使用Protel DXP或Protel 2006的用户，建议系统配置为256MB以上内存，1280×1024分辨率，32MB以上显存。
本书适合高校计算机、自动化、电子及通信等相关专业的大学生以及从事ARM开发的科研人员使用。
本书主要由张绮文、王廷广编写，另外参加编写的人员还有：唐清善、邱宝良、周克足、刘 斌、李亚捷、李永怀、李宁宇、刘伟捷、黄小欢、严剑忠、黄小宽、李彦超、付军鹏、张广安、贾素龙、王艳波、金 平、徐春林、谢正义、郑贞平、张小红等。他们在资料收集、整理和技术支持方面做了大量的工作，在此一并向他们表示感谢！
由于时间仓促，再加之作者的水平有限，书中难免存在一些不足之处，欢迎广大读者批评和指正。
目 录
基 础 篇
第1章 ARM 处理器概述 1
1.1 ARM 公司简介 1
1.2 ARM特点与应用领域 2
1.2.1 ARM特点 2
1.2.2 ARM应用领域 2
1.3 ARM处理器系列 3
1.4 ARM主流芯片介绍 7
1.4.1 ATMEL公司带ARM核的芯片 7
1.4.2 ADMtek公司带ARM核的芯片 12
1.4.3 Cirrus Logic公司带ARM核的芯片 13
1.4.4 Intel公司带ARM核的芯片 14
1.4.5 LinkUp公司带ARM核的芯片 16
1.4.6 NetSilicon公司带ARM核的芯片 17
1.4.7 SAMSUNG公司带ARM核的芯片 21
1.4.8 TI公司带ARM核的芯片 23
1.4.9 Triscend公司带ARM核的芯片 24
1.5 本章总结 26
第2章 ARM的系统结构 27
2.1 ARM内核基本结构 27
2.1.1 ARM内核 27
2.1.2 ARM扩展功能块 28
2.1.3 ARM启动方式 30
2.2 ARM处理器运行模式 31
2.3 ARM寄存器 31
2.3.1 通用寄存器 32
2.3.2 程序状态寄存器 33
2.3.3 ARM状态下的寄存器 35
2.3.4 Thumb状态下的寄存器 36
2.4 ARM存储系统 37
2.4.1 ARM存储方法 37
2.4.2 存储空间管理单元MMU 37
2.5 ARM流水线与时序 39
2.5.1 ARM流水线 39
2.5.2 ARM时序 40
2.6 ARM中断与异常 41
2.6.1 ARM异常类型 41
2.6.2 异常的响应及返回 42
2.6.3 异常的描述 42
2.6.4 异常的处理 44
2.7 ARM的总线接口 45
2.7.1 ARM的存储器接口 45
2.7.2 ARM的协处理器接口 55
2.7.3 AMBA接口 60
2.8 本章总结 64
第3章 ARM 指令系统与编程 65
3.1 ARM 32位指令系统 65
3.1.1 ARM指令系统概述 65
3.1.2 ARM定点指令集 68
3.1.3 ARM浮点指令集 89
3.2 ARM 16位Thumb指令系统 93
3.2.1 Thumb指令系统概述 93
3.2.2 Thumb指令集 94
3.3 ARM汇编语言设计 105
3.3.1 ARM汇编器所支持的伪指令 105
3.3.2 汇编语言的语句格式 112
3.3.3 汇编语言的程序结构 115
3.4 ARM C语言设计 117
3.4.1 ARM C/C++编程设计 117
3.4.2 ARM C/C++与汇编混合编程 127
3.4.3 ARM C/C++编译器 136
3.4.4 C语言优化编程 141
3.5 本章总结 146
第4章 ARM开发环境与工具 147
4.1 ADS开发环境 147
4.1.1 CodeWarrior的使用 147
4.1.2 AXD的使用 152
4.2 SDT开发环境 154
4.2.1 SDT开发环境及特点 154
4.2.2 SDT调试环境 154
4.2.3 利用SDT软件编程实例 154
4.3 Linux的GNU编译工具 157
4.3.1 Linux基础知识 157
4.3.2 GNU汇编器gas 159
4.3.3 GNU编译器gcc 160
4.3.4 GNU Make工具 162
4.3.5 GNU链接器ld 169
4.3.6 GNU应用实例 170
4.4 本章总结 171
第5章 ARM的系统调试 172
5.1 ARM调试方法概述 172
5.2 AXD平台仿真器调试 173
5.2.1 初始化存储器 173
5.2.2 在线仿真 174
5.2.3 常见问题 175
5.3 基于Angel的调试系统 175
5.3.1 基于Angel的调试系统概述 176
5.3.2 使用Angel开发应用程序 178
5.3.3 Angel执行的操作 182
5.3.4 将Angel移植到特定的目标系统 184
5.4 基于JTAG的调试系统 201
5.4.1 调试接口JTAG介绍 201
5.4.2 基于JTAG的调试系统的特点 203
5.4.3 基于JTAG的调试系统结构 204
5.4.4 目标系统中的调试功能扩展部件 205
5.4.5 基于JTAG的调试过程 206
5.5 本章总结 206
提 高 篇
第6章 μC/OS-Ⅱ移植与应用设计 207
6.1 μC/OS-Ⅱ概述 207
6.1.1 μC/OS-II简介 207
6.1.2 μC/OS-II的特点 208
6.2 μC/OS-Ⅱ移植过程 209
6.2.1 准备内容说明 209
6.2.2 μC/OS-II文件体系结构 209
6.2.3 μC/OS-II移植条件 209
6.2.4 μC/OS-II在S3C44B0X上的移植 210
6.3 μC/OS-Ⅱ软件设计实例 211
6.4 实例总结 213
第7章 ARM嵌入式Linux的应用开发 214
7.1 嵌入式Linux开发的一般流程 214
7.2 ARM嵌入式Linux开发环境构造 215
7.3 BOOT LOADER的安装 217
7.4 Linux系统移植原理与过程 228
7.4.1 Linux系统移植原理 228
7.4.2 ARM Linux的移植过程 230
7.5 Linux根文件系统的原理与创建 237
7.5.1 根文件系统原理 237
7.5.2 根文件创建过程 240
7.5.3 相关总结 246
7.6 Linux下的GUI系统配置与移植 246
7.6.1 GUI系统原理 246
7.6.2 不同GUI平台的移植配置 249
7.6.3 GUI图形显示的实现 251
7.7 编写嵌入式Linux的设备驱动程序 254
7.8 Linux应用开发实例：GPIO设备程序开发 256
7.8.1 实例说明 256
7.8.2 GPIO设备驱动原理 257
7.8.3 GPIO设备程序开发 258
7.9 本章小结 259
第8章 ARM外围设备的编程开发 260
8.1 ARM外围设备编程原理 261
8.1.1 Flash的工作原理与编程 261
8.1.2 SDRAM的工作原理与编程 268
8.1.3 串口、以太网口的设计 272
8.1.4 电源模块 273
8.1.5 液晶显示模块LCD 274
8.1.6 键盘模块 275
8.2 ARM外围设备设计实例1——USB设备模块设计 276
8.2.1 实例说明 276
8.2.2 设计思路分析 276
8.2.3 硬件电路设计 279
8.2.4 软件设计 282
8.2.5 实例小结 286
8.3 ARM外围设备设计实例2——I2C总线接口设计 286
8.3.1 实例说明 286
8.3.2 I2C设计原理 286
8.3.3 I2C硬件电路设计 287
8.3.4 软件设计 289
8.3.5 实例小结 298
8.4 本章小结 298
实 战 篇
第9章 ARM嵌入式系统组成与开发流程 299
9.1 ARM嵌入式系统的组成 299
9.2 ARM嵌入式系统体系结构 299
9.2.1 硬件体系结构 300
9.2.2 软件体系结构 301
9.3 ARM嵌入式硬件平台实现方法 302
9.3.1 硬件电路板设计 302
9.3.2 ARM硬件设计原则 303
9.4 ARM嵌入式软件的开发方法 304
9.4.1 软件开发流程 304
9.4.2 软件开发环境构建 306
9.5 本章总结 306
第10章 远程控制用印系统设计（基于μC/OS-II系统） 307
10.1 实例说明 307
10.2 设计思路分析 308
10.2.1 远程用印系统实现方案 308
10.2.2 用印系统的扩展应用实现方案 308
10.3 硬件电路设计 308
10.3.1 总体电路设计 308
10.3.2 步进电机驱动模块 309
10.3.3 LCD数据显示模块 310
10.4 软件设计 312
10.4.1 步进电机的S曲线实现 312
10.4.2 程序代码与注释 313
10.5 实例总结 330
第11章 基于ARM无线的无纸化排队叫号系统 331
11.1 系统说明 331
11.2 系统实现方案 332
11.3 硬件电路设计 333
11.3.1 CC1100芯片 333
11.3.2 接口电路 335
11.3.3 SPI 介绍 337
11.3.4 LPC2132的SPI控制寄存器介绍 339
11.4 软件设计 339
11.5 程序代码与注释 345
11.6 实例总结 370
第12章 基于GPSOne的CDMA车辆报警器设计 371
12.1 系统说明 371
12.1.1 系统构成 371
12.1.2 报警器构成 372
12.2 系统方案设计 372
12.2.1 传统设计思路 372
12.2.2 采用GPSOne的设计思路 373
12.3 硬件电路设计 374
12.3.1 DTGS-800介绍 374
12.3.2 电源电路 375
12.3.3 DTGS-800接口以及其与LPC2132通信接口 376
12.3.4 UIM卡的接口电路 377
12.3.5 工作指示灯、模块忙信号指示灯电路及按键电路 377
12.3.6 模块复位、蜂鸣器和震动传感器电路 378
12.3.7 I2C及串行EEPROM电路 378
12.3.8 系统总体电路 379
12.4 软件设计 380
12.4.1 DTGS-800支持的AT指令 380
12.4.2 软件工作流程 383
12.5 代码说明与注释 384
12.5.1 系统初始化 384
12.5.2 主函数处理的任务 389
12.5.3 中断处理和数据接收判断 392
12.5.4 源程序附录（主要程序） 394
12.6 实例总结 408