《ARM9嵌入式系统设计直通车》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:潘念,李立功,葛广一编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2014
  • ISBN:9787121220012
  • 页数:531 页
图书介绍:本书详细介绍了ARM9处理器基础知识、ARM9嵌入式系统基础、ARM9的Linux开发环境的建立、ARM9嵌入式Linux系统移植,以及ARM9嵌入式Linux应用开发实例,将实际项目开发经验贯穿于全书。在内容安排上,则根据读者的学习习惯和内容的梯度合理安排,更加适合读者学习。

第1篇 ARM处理器基础知识 2

第1章 嵌入式系统开发介绍 2

1.1嵌入式系统介绍 2

1.1.1嵌入式系统概念 3

1.1.2重要组成部分 3

1.2嵌入式系统的组成 4

1.2.1通用设备接口和1/O接口 6

1.2.2中间层 7

1.2.3系统软件层 8

1.3嵌入式系统的优点及特点 8

1.3.1嵌入式系统的优点 9

1.3.2嵌入式系统的特点 9

1.4嵌入式处理器 10

1.4.1嵌入式微处理器 10

1.4.2嵌入式微控制器 11

1.4.3嵌入式DSP处理器 11

1.4.4 SoC——片上系统 11

1.5嵌入式操作系统 12

1.5.1操作系统包含的功能 12

1.5.2嵌入式操作系统的特点 13

1.5.3嵌入式操作系统的分类 14

1.5.4嵌入式技术应用及发展趋势 15

1.6嵌入式技术发展趋势 16

1.7小结 17

第2章 ARM处理器概述 18

2.1 ARM处理器介绍 18

2.2 ARM体系结构的版本和变量 19

2.2.1 ARM体系结构的版本 19

2.2.2 ARM体系结构的变量 24

2.2.3 ARM/Thumb体系结构版本命名 25

2.3 ARM处理器的命名规则 26

2.4 ARM处理器结构 28

2.4.1 RISC中的关键技术 29

2.4.2 ARM和Thumb状态 30

2.4.3 ARM寄存器 30

2.4.4 ARM指令集概述 31

2.4.5 Thumb指令集概述 31

2.5 ARM处理器系列 32

2.5.1 ARM7系列 32

2.5.2 ARM9系列 33

2.5.3 ARM9E系列 33

2.5.4 ARM10E系列 34

2.5.5 ARM11系列 35

2.5.6 SecurCore系列 35

2.5.7 XScale系列 36

2.5.8 StrongARM系列 37

2.5.9 Cortex系列 38

2.6小结 39

第3章 ARM9处理器与编程模型 40

3.1 ARM9处理器产品 40

3.1.1 ARM9进步之处 40

3.1.2操作指令 41

3.1.3 ARM9产品举例 42

3.1.4 ARM9E系列微处理器 44

3.2 ARM9编程模型 45

3.2.1 ARM9数据类型 45

3.2.2 ARM9体系结构的存储器格式 45

3.2.3 ARM9处理器的工作状态 46

3.2.4 ARM9处理器模式 47

3.2.5 ARM寄存器 47

3.2.6异常 51

3.3小结 54

第4章 ARM指令集与寻址方式 55

4.1指令集编码 55

4.2条件执行 55

4.3指令分类及指令格式 57

4.3.1数据处理指令 57

4.3.2 Load/Store指令 61

4.3.3程序状态寄存器与通用寄存器之间的传送指令 66

4.3.4转移指令 66

4.3.5异常中断指令 67

4.3.6协处理器指令 68

4.3.7乘法指令 70

4.3.8伪指令 71

4.4 ARM基本寻址方式 72

4.4.1立即寻址 72

4.4.2寄存器寻址 72

4.4.3寄存器间接寻址 73

4.4.4基址变址寻址 74

4.4.5基址加偏址寻址 74

4.4.6堆栈寻址 74

4.4.7块复制寻址 75

4.4.8相对寻址 76

4.5小结 76

第5章 Thumb指令集 77

5.1 Thumb指令集概述 77

5.2 Thumb寄存器和ARM寄存器之间的关系 78

5.3 Thumb指令集分类介绍 79

5.3.1存储器指令 79

5.3.2数据处理指令 82

5.3.3分支指令 86

5.3.4中断和断点指令 88

5.4小结 88

第2篇 S3C2440嵌入式系统基础 90

第6章 GPIO接口 90

6.1 GPIO硬件介绍 90

6.1.1 GPxCON寄存器 91

6.1.2 GPxDAT寄存器 92

6.1.3 GPxUP寄存器 92

6.2软件访问硬件 92

6.2.1访问单个引脚 92

6.2.2以总线方式访问硬件 92

6.2.3软件如何读写GPIO 93

6.3 LED的GPIO接口实例 95

6.4小结 98

第7章 存储器控制器 99

7.1概述 99

7.2功能描述 101

7.2.1 bank0总线宽度设置 101

7.2.2 nWAIT引脚操作 102

7.2.3 nXBREQ/nXBACK引脚操作 103

7.3存储器接口实例 103

7.3.1 ROM存储器接口实例 104

7.3.2 SRAM存储器接口实例 105

7.3.3 SDRAM存储器接口实例 106

7.3.4可编程存储器访问周期 107

7.4存储器控制寄存器 108

7.4.1总线宽度和等待控制寄存器 108

7.4.2 bank控制寄存器 109

7.4.3刷新控制寄存器 111

7.4.4 banksize寄存器 111

7.4.5模式寄存器集寄存器 112

7.5存储器实例 112

7.6小结 116

第8章 MMC/SD/SDIO控制器 117

8.1概述 117

8.2 SD操作 118

8.3特殊寄存器 119

8.4 SD实例 127

8.5小结 141

第9章 Nand Flash控制器 142

9.1 Nand Flash介绍及其控制器使用 142

9.1.1 Flash 142

9.1.2 Nand Flash的物理结构 144

9.1.3 Nand Flash的访问方法 148

9.2 S3C2440 Nand Flash控制器 160

9.2.1操作方法概述 161

9.2.2寄存器介绍 161

9.3 Nand Flash控制器实例 162

9.4小结 182

第10章 系统时钟和定时器 183

10.1 S3C2440时钟体系和电源管理模块 183

10.1.1功能描述 184

10.1.2电源管理 189

10.1.3特殊寄存器 195

10.2 PWM及定时器 200

10.2.1特点 200

10.2.2脉宽调制定时器特殊寄存器 206

10.3实时时钟 211

10.3.1特点 211

10.3.2实时时钟操作 212

10.3.3实时时钟特殊寄存器 213

10.4看门狗定时器 219

10.4.1特点 219

10.4.2看门狗定时器操作 219

10.4.3看门狗定时器特殊寄存器 220

10.5小结 222

第11章 中断控制器 223

11.1概述 223

11.2中断控制器操作 223

11.3中断控制器特殊寄存器 227

11.4中断方式键盘扫描实例 235

11.5小结 238

第12章 UART 239

12.1概述 239

12.2 UART操作 241

12.3特殊寄存器 246

12.4 UART实例 252

12.5小结 258

第13章 串行外围设备接口 259

13.1概述 259

13.1.1 SPI相关概念 259

13.1.2 S3C2440A的SPI 260

13.2 SPI操作方法 261

13.2.1编程步骤 261

13.2.2传输格式 262

13.3 SPI特殊寄存器 263

13.4 SPI使用实例 265

13.5小结 276

第14章 ADC和触摸屏接口 277

14.1概述 277

14.2特点 277

14.3 ADC及触摸屏接口操作 278

14.4功能描述 279

14.4.1 AD转换时间 279

14.4.2触摸屏接口模式 279

14.4.3编程细节 280

14.5 ADC及触摸屏接口特殊寄存器 281

14.5.1 ADC控制寄存器 281

14.5.2 ADC触摸屏控制寄存器 282

14.5.3 ADC开始延时寄存器 283

14.5.4 ADC转换数据寄存器0 283

14.5.5 ADC转换数据寄存器1 284

14.5.6 ADC触摸屏指针上下中断检测寄存器 284

14.6 ADC驱动程序及测试程序 284

14.6.1三通道ADC驱动程序 285

14.6.2三通道ADC采样测试程序 289

14.7小结 291

第3篇 建立ARM9嵌入式开发环境 294

第15章 无操作系统的ARM9开发方法 294

15.1硬件开发 294

15.2软件开发 295

15.2.1软件开发基础 295

15.2.2软件开发方法 298

15.3使用EWARM进行无操作系统开发 301

15.4 EWARM使用实例 305

15.5小结 314

第16章 嵌入式Linux开发环境的搭建 315

16.1嵌入式Linux概述 315

16.2嵌入式Linux常用工具 319

16.2.1交叉编译工具 319

16.2.2 vim编辑器 320

16.2.3 Linux编译器gcc及编译工具 322

16.2.4 Makefile和Make命令 324

16.2.5 GNU调试工具 326

16.2.6 Linux内核编译 327

16.3建立micro2440开发板的Linux开发环境 328

16.3.1 Fedora 9.0安装步骤 329

16.3.2解压安装源代码及其他工具 344

16.3.3配置网络文件系统NFS服务 348

16.4小结 350

第17章 SkyEye环境搭建 351

17.1 SkyEye概述 351

17.1.1 SkyEye的特点 351

17.1.2 SkyEye的配置 352

17.1.3 SkyEye的使用指南 353

17.2环境搭建 354

17.2.1 Linux操作系统安装和配置 354

17.2.2交叉编译环境安装 357

17.3 SkyEye测试 359

17.3.1 SkyEye-testsuite-1.3.0_rcl测试包 359

17.3.2测试U-Boot 359

17.3.3测试μClinux 361

17.3.4测试μClinux的网络功能 364

17.3.5手工编译μClinux内核 364

17.4小结 371

第4篇 ARM9嵌入式Linux系统移植 374

第18章 BootLoader移植 374

18.1 BootLoader简介 374

18.1.1 BootLoader概述 375

18.1.2 BootLoader的安装媒介 375

18.1.3 BootLoader支持的体系结构 376

18.1.4 BootLoader的启动过程和操作模式 377

18.1.5 BootLoader的常见种类 378

18.2 U-Boot移植 381

18.2.1 U-Boot简介 381

18.2.2 U-Boot源码结构 381

18.2.3 U-Boot启动过程 382

18.2.4 U-Boot的编译过程 389

18.2.5 U-Boot移植 391

18.2.6 U-Boot移植实例 391

18.2.7 U-Boot常用命令 394

18.2.8 U-Boot命令启动Linux内核 401

18.3小结 402

第19章 Linux内核移植 403

19.1 Linux内核的基本概念 403

19.1.1 Linux内核版本和分类 403

19.1.2 Linux的体系结构 406

19.2内核启动 421

19.2.1 BootLoader启动过程 421

19.2.2 Linux启动过程 422

19.2.3建立目标板Linux的基本步骤 424

19.2.4 Linux内核的配置和编译 426

19.2.5 Linux内核的Kconfig及Makfile分析 427

19.3 Linux内核移植实例 436

19.4小结 443

第20章 构建Linux文件系统 444

20.1 Linux根文件系统概述 444

20.1.1 Linux文件系统的目录结构 444

20.1.2嵌入式Linux文件系统的常见类型 453

20.2 BusyBox制作根文件系统 457

20.2.1 BusyBox安装 457

20.2.2 BusyBox工作原理 460

20.2.3 BusyBox制作文件系统 467

20.3小结 468

第5篇 ARM9嵌入式应用开发实例 470

第21章 基于Qt的嵌入式GUI开发 470

21.1嵌入式GUI概述 470

21.1.1嵌入式GUI的发展状况 470

21.1.2基于ARM处理器的嵌入式Linux开发方法 471

21.2 Qt程序移植 473

21.2.1 Linux操作系统 473

21.2.2软件开发环境Qt4 473

21.2.3软件平台建立 474

21.3计算器实例 480

21.4小结 491

第22章 基于ARM9与QTE4的数据采集图形界面设计 492

22.1 micro2440开发板概述 492

22.2多通道AD驱动 494

22.2.1 Linux设备驱动 494

22.2.2多通道AD驱动 495

22.2.3 AD驱动编译进内核 498

22.2.4 AD采样程序设计 499

22.3图形界面设计及移植 500

22.3.1主界面设计 500

22.3.2曲线绘制的设计 503

22.3.3整体工作流程及程序移植 504

22.3.4测试 506

22.4主界面控制程序 508

22.5小结 515

第23章 基于ARM9及QTE4的图像处理 516

23.1 ARM9与图像处理 516

23.2 OpenCV库编译及移植 516

23.2.1 Linux下OpenCV编译安装 517

23.2.2 ARM版OpenCV编译安装 518

23.3在Qt软件添加OpenCV连接库 522

23.3.1动态连接库与静态连接库 522

23.3.2 Qt软件添加OpenCV库 523

23.3.3 OpenCV库中的IplImage类型与Qt的QImage类型转换 524

23.4基于ARM9和OpenCV图像边缘提取实例 529

23.5小结 531