《ARM 9原理与应用设计》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:三恒星科技编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2008
  • ISBN:7121060019
  • 页数:510 页
图书介绍:本书以ARM9为基础详细介绍了ARM微处理器的体系结构、指令系统和程序设计方式;并介绍了ARM9微处理器S3C2410的基本组成、硬件资源的详细说明,以及集成开发环境ADS的使用方法;最后简要介绍了几种嵌入式软件的应用。本书可作为从事嵌入式系统应用开发的工程技术人员的参考资料。

第1章 了解嵌入式系统 1

1.1 嵌入式系统的概念 1

1.2 嵌入式系统介绍 1

1.2.1 嵌入式系统组成 1

1.2.2 嵌入式系统分类与应用 3

1.2.3 嵌入式系统特征 4

1.2.4 嵌入式系统的产生与发展 5

1.3 嵌入式系统的核心 6

1.3.1 嵌入式系统处理器 6

1.3.2 嵌入式操作系统 8

1.3.3 嵌入式系统的软硬件协同设计 12

1.3.4 嵌入式系统开发环境 15

1.4 本章小结 17

第2章 ARM微处理器 18

2.1 ARM应用简介 18

2.1.1 ARM的内核介绍 18

2.1.2 ARM工作状态 21

2.1.3 ARM工作模式 22

2.2 ARM微处理器结构 23

2.2.1 ARM体系结构(RISC) 23

2.2.2 ARM寄存器介绍 24

2.2.3 ARM9系列 31

2.3 异常 33

2.3.1 异常类型 33

2.3.2 异常发生过程 35

2.4 ARM微处理器的选型 35

第3章 ARM指令集 37

3.1 ARM指令集简介 37

3.2 ARM指令集代码表 37

3.3 ARM指令格式 38

3.4 寻址方式 42

3.5 ARM指令集分类介绍 47

3.5.1 跳转指令 48

3.5.2 数据处理指令 51

3.5.3 移位指令 63

3.5.4 ARM存储器访问指令 65

3.5.5 协处理器指令 79

3.5.6 杂项指令 84

3.6 ARM浮点指令集 89

3.7 未定义的指令空间 95

第4章 Thumb指令集 97

4.1 Thumb指令集概述 97

4.1.1 Thumb指令集编码 97

4.1.2 Thumb指令集代码 98

4.2 Thumb存储器访问指令 99

4.2.1 寄存器偏移的加载/存储指令 100

4.2.2 立即数偏移的加载/存储指令 101

4.2.3 SP相对偏移LDR/STR指令 103

4.2.4 PC相对偏移的LDR指令 104

4.2.5 偏移量到堆栈指针的ADD指令 104

4.2.6 寄存器入栈及出栈指令 105

4.2.7 块数据加载/存储指令 106

4.3 Thumb数据处理指令 107

4.3.1 加减算术运算指令(3位操作数) 107

4.3.2 立即数为8位的指令 107

4.3.3 算术逻辑单元(ALU)操作指令 108

4.3.4 对寄存器进行移位并传送的操作指令 112

4.3.5 高寄存器操作指令 113

4.4 Thumb软中断指令 113

4.5 Thumb跳转指令 114

4.6 Thumb指令集与ARM指令集的切换与区别 117

第5章 汇编语言与伪指令 118

5.1 汇编语言的基本语句 118

5.2 语句格式 118

5.2.1 ARM汇编语言中的符号 119

5.2.2 汇编语句中的表达式 121

5.3 伪指令与伪操作 124

5.3.1 数据定义伪指令 124

5.3.2 符号定义伪指令 132

5.3.3 过程定义伪指令 134

5.3.4 报告伪指令 134

5.3.5 汇编控制伪指令 136

5.3.6 他伪指令 138

5.4 源程序结构 145

5.4.1 完整段定义的程序结构 145

5.4.2 简化段定义的程序结构 147

5.4.3 段组定义的程序结构 148

5.5 汇编语言上机与工作环境 148

第6章 ARM汇编与C语言编程 149

6.1 汇编语言的文件格式 149

6.2 ARM汇编程序的规范 149

6.2.1 ARM汇编语言语句格式 149

6.2.2 段定义及宏定义 150

6.2.3 汇编语言的子程序调用 151

6.3 ARM汇编程序实例 152

6.4 嵌入式C语言程序 155

6.4.1 词法介绍 156

6.4.2 常用语句 161

6.4.3 程序结构 166

6.5 ATPCS介绍 171

6.6 C语言与汇编语言混合编程 176

6.6.1 内嵌汇编 177

6.6.2 从汇编程序中访问C程序变量 180

6.6.3 C程序调用汇编程序 181

6.6.4 汇编程序调用C程序 182

第7章 S3C2410嵌入式系统 183

7.1 S3C2410处理器概述 183

7.1.1 S3C2410处理器的特性 183

7.1.2 S3C2410的引脚信号描述 187

7.2 S3C2410A存储控制器 196

7.2.1 S3C2410A存储控制器特性 196

7.2.2 S3C2410A存储控制器功能 196

7.2.3 S3C2410A存储控制器——寄存器 198

7.3 NAND Flash控制器 213

7.3.1 NAND Flash控制器的特性 213

7.3.2 专用寄存器 216

7.4 时钟电源管理器 218

7.5 IIC总线接口 226

7.5.1 IIC总线接口操作 227

7.5.2 IIC总线接口的特殊功能寄存器 232

7.6 UART接口 234

7.6.1 UART接口概述 235

7.6.2 UART的操作 236

7.6.3 UART的特殊功能寄存器 241

7.7 I/O端口 247

7.7.1 S3C2410A端口功能配置 247

7.7.2 S3C2410A端口控制描述 250

7.7.3 I/O端口寄存器及引脚配置 251

7.8 ADC和触摸屏接口 268

7.8.1 ADC结构与工作原理 269

7.8.2 A/D转换器的工作模式 270

7.8.3 编程要点 271

7.8.4 ADC和触摸屏接口专用寄存器 272

7.9 DMA 274

7.9.1 DMA简介 274

7.9.2 DMA工作原理 275

7.9.3 DMA特殊功能寄存器 277

7.10 定时器 282

7.10.1 PWM(脉宽调制)概念 283

7.10.2 PWM定时器结构 283

7.10.3 PWM定时器工作原理 283

7.10.4 计数时钟和输出计算 286

7.10.5 PWM定时器的特殊功能寄存器 286

7.11 中断控制器 291

7.11.1 中断控制器的操作 292

7.11.2 S3C2410A中断源 292

7.11.3 中断控制器的特殊功能寄存器 294

7.12 LCD控制器 302

7.12.1 LCD控制器的特性 303

7.12.2 LCD外部接口信号 304

7.12.3 LCD控制器框图 304

7.12.4 LCD控制操作 305

7.12.5 LCD控制器的特殊功能寄存器 310

第8章 ADS集成开发系统 318

8.1 ADS系统组成与文件 318

8.1.1 ADS系统的组成 318

8.1.2 ADS系统中的文件 318

8.2 命令行开发工具 319

8.3 GUI开发环境(Code Warrior和AXD) 320

8.3.1 CodeWarrior集成开发环境 321

8.3.2 相关术语介绍 323

8.4 ADS创建工程 324

8.4.1 建立一个工程 324

8.4.2 编辑和链接工程 326

8.5 ADS调试器 330

8.5.1 AXD 330

8.5.2 创建工程调试 332

8.6 ADS链接器 335

8.6.1 链接器的基本功能 336

8.6.2 armlinkz的选项 337

8.6.3 取得映像符号 337

8.7 仿真器 338

8.7.1 链接仿真器 338

8.7.2 仿真器设置 339

8.7.3 仿真器应用问题 339

8.8 实用程序与支持软件 340

第9章 嵌入式Linux开发基础 341

9.1 Linux简介以及在嵌入式操作系统中的应用 341

9.1.1 Linux发展概述 341

9.1.2 Linux版本的发展史 342

9.1.3 Linux在嵌入式操作系统中的应用 342

9.2 Linux安装 343

9.2.1 基础概念 343

9.2.2 安装前的注意事项 344

9.2.3 Linux安装过程 345

9.3 Linux文件及文件系统 351

9.3.1 文件类型和文件属性 351

9.3.2 文件系统类型 352

9.3.3 Linux目录结构 353

9.4 Linux基础命令 354

9.4.1 Linux Shell环境 355

9.4.2 用户系统相关命令 355

9.4.3 文件目录相关命令 361

9.4.4 压缩打包相关命令 371

9.4.5 网络相关命令 373

9.5 Linux下的用户界面 377

9.5.1 X Window简介 378

9.5.2 X服务器 378

9.5.3 窗口管理器 379

第10章 嵌入式Linux系统的开发工具 381

10.1 文本编辑器vi的使用 381

10.1.1 vi的基本概念 381

10.1.2 vi的基本操作 381

10.2 编译器GCC的使用 384

10.3 GNU Make的使用 387

10.3.1 makefile基本结构 387

10.3.2 编写make 388

10.3.3 makefile的一个具体例子 391

10.4 调试器GDB的使用 393

10.4.1 GDB使用实例 393

10.4.2 GDB调试常用命令 396

10.4.3 设置断点(breakpoint)命令 396

10.4.4 设置观察点和捕获点 397

10.4.5 单步调试命令 398

10.4.6 源码查看相关命令 398

10.4.7 查看运行数据相关命令 399

第11章 嵌入式Linux的软件开发环境 400

11.1 开发环境的建立 400

11.1.1 交叉编译环境 400

11.1.2 Minicom配置及使用 402

11.1.3 DNW下载器 405

11.2 嵌入式Linux内核移植 407

11.2.1 Linux内核结构 408

11.2.2 编译Linux内核 410

11.3 Bootloader 428

11.3.1 Bootloader的架构和功能 428

11.3.2 U-Boot移植 429

第12章 Windows CE操作系统 438

12.1 Windows CE简介 438

12.1.1 什么是Windows CE 438

12.1.2 Windows CE的主要功能 439

12.1.3 Windows CE发展历史 441

12.2 Windows CE的应用领域 442

12.3 Platform Builder 442

12.3.1 Platform Builder简介 442

12.3.2 Platform Builder的安装和配置 443

12.4 eMbedded Visual C++ 445

12.4.1 eMbedded Visual C++简介 445

12.4.2 eMbedded Visual C++的安装和配置 445

12.4.3 eMbedded Visual C++开发应用程序基本操作 448

12.5 本章小结 453

第13章 Windows CE的体系结构和功能 454

13.1 Windows CE的结构功能概述 454

13.2 Windows CE的内存管理 455

13.2.1 存结构 455

13.2.2 RAM和ROM 457

13.2.3 虚拟内存 457

13.2.4 堆 460

13.2.5 栈 463

13.2.6 静态数据块 464

13.3 Windows CE的系统调度 464

13.3.1 进程 465

13.3.2 线程 466

13.3.3 同步 468

13.4 Windows CE的文件系统 473

13.4.1 ROM文件系统 473

13.4.2 对象存储 473

13.4.3 存储管理器 473

13.5 Windows CE下的注册表 478

13.6 本章小结 481

第14章 Windows CE驱动程序开发基础 482

14.1 Windows CE驱动程序结构概述 482

14.1.1 驱动程序的定义 482

14.1.2 本机设备驱动程序 482

14.1.3 流接口驱动程序 483

14.1.4 独立型驱动程序和层次型驱动程序 484

14.2 驱动程序的中断处理 485

14.2.1 中断体系结构 485

14.2.2 IST中断处理 487

14.2.3 OAL ISR处理 490

14.2.4 可安装的ISR 492

14.2.5 导致延迟的因素 494

14.3 设备文件名 495

14.4 流接口设备驱动程序 496

14.4.1 流接口设备驱动程序的结构 496

14.4.2 流接口设备驱动程序的实现 497

14.5 设备驱动程序的加载 502

14.5.1 驱动程序的加载过程 502

14.5.2 加载设备驱动所需的接口 504

14.6 串口驱动程序初始化过程 505

14.7 本章小结 509