《ARM9嵌入式系统设计 基于S3C2410与Linux》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:徐英慧,马忠梅,王磊,王琳编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2015
  • ISBN:9787512417540
  • 页数:419 页
图书介绍:本书围绕ARM9处理器和Linux操作系统介绍嵌入式系统的设计与开发,重点介绍了嵌入式系统的概念、ARM9的体系结构、基于ARM9的硬件设计原理与方法以及基于Linux操作系统的移植、驱动程序的开发和应用程序的开发。本书总共分八章,分别是:第一章嵌入式系统基础;第二章ARM嵌入式处理器;第三章ARM9体系结构;第四章ARM系统硬件设计基础;第五章S3C2410系统的硬件设计;第六章嵌入式Linux操作系统;第七章嵌入式Linux操作系统平台搭建;第八章嵌入式Linux软件设计。本书的特点是将理论与实践融为一体。通过该书的学习,读者能够了解从硬件到软件的整个嵌入式系统设计和开发的技术和方法。本书适合研发人员作为嵌入式系统开发的参考用书,也可作为高校嵌入式系统课程的教材使用以及学习嵌入式Linux的参考用书。

第1章 嵌入式系统基础 1

1.1 嵌入式系统概述 1

1.1.1 嵌入式系统的定义 1

1.1.2 嵌入式系统的组成 2

1.1.3 嵌入式系统的特点 4

1.1.4 嵌入式系统的应用 5

1.1.5 实时系统 6

1.2 嵌入式处理器 8

1.2.1 嵌入式处理器的分类 8

1.2.2 嵌入式微处理器 8

1.2.3 微控制器 9

1.2.4 DSP处理器 10

1.2.5 片上系统 11

1.2.6 典型的嵌入式处理器 11

1.3 嵌入式操作系统 13

1.3.1 操作系统的概念和分类 13

1.3.2 实时操作系统 17

1.3.3 常见的嵌入式操作系统 20

1.4 实时操作系统的内核 24

1.4.1 任务管理 24

1.4.2 任务间的通信和同步 31

1.4.3 存储器管理 33

1.4.4 定时器和中断管理 34

1.5 习题 34

第2章 嵌入式系统开发过程 35

2.1 嵌入式软件开发的特点 35

2.2 嵌入式软件的开发流程 37

2.3 嵌入式系统的调试 43

2.3.1 调试方式 43

2.3.2 调试方法 46

2.4 板级支持包 47

2.5 习题 49

第3章 ARM体系结构 50

3.1 ARM体系结构概述 50

3.1.1 ARM体系结构的特点 50

3.1.2 ARM处理器结构 53

3.1.3 ARM处理器内核 63

3.1.4 ARM处理器核 74

3.2 ARM编程模型 76

3.2.1 数据类型 76

3.2.2 处理器模式 77

3.2.3 处理器工作状态 77

3.2.4 寄存器组织 78

3.2.5 异常 83

3.2.6 存储器和存储器映射I/O 85

3.3 ARM基本寻址方式 87

3.4 ARM指令集 92

3.4.1 条件执行 92

3.4.2 指令分类说明 93

3.4.3 Thumb指令集与ARM指令集的区别 116

3.4.4 Thumb-2指令集的特点 118

3.5 ARM9与ARM7的比较 123

3.6 ARM9TDMI内核 126

3.6.1 ARM9TDMI编程模型 126

3.6.2 ARM9TDMI存储器接口 128

3.7 ARM920T核 135

3.7.1 ARM920T编程模型 136

3.7.2 存储器管理单元(MMU) 149

3.7.3 Cache、写缓冲和物理地址TAG RAM 164

3.7.4 时钟模式 176

3.7.5 总线接口单元 179

3.8 习题 187

第4章 ARM系统硬件设计基础 188

4.1 ARM开发环境简介 188

4.1.1 RealView MDK开发工具简介 188

4.1.2 IAR EWARM集成开发环境简介 198

4.2 基于ARM的汇编语言程序设计 206

4.2.1 ARM汇编器支持的伪指令 206

4.2.2 基于ARM的汇编语言语句格式 208

4.2.3 ARM汇编语言程序的基本结构 208

4.2.4 基于ARM的汇编语言程序举例 210

4.3 基于ARM的硬件启动程序设计 211

4.3.1 分配中断向量表 211

4.3.2 初始化存储系统 212

4.3.3 初始化堆栈 212

4.3.4 初始化有特殊要求的硬件模块 213

4.3.5 初始化应用程序执行环境 213

4.3.6 改变处理器模式 214

4.3.7 调用主应用程序 215

4.4 基于ARM的C语言与汇编语言混合编程 215

4.4.1 C语言与汇编语言混合编程应遵守的规则 215

4.4.2 汇编程序调用C程序的方法 217

4.4.3 C程序调用汇编程序的方法 217

4.4.4 C程序中内嵌汇编语句 218

4.4.5 基于ARM的C语言与汇编语言混合编程举例 218

4.5 印制电路板制作简介 219

4.5.1 印制电路板设计软件——Protel 219

4.5.2 单面板与多层板 220

4.5.3 印制电路板设计的注意事项 221

4.6 习题 222

第5章 基于S3C2410的系统硬件设计 223

5.1 S3C2410简介 223

5.1.1 S3C2410A的特点 225

5.1.2 存储器控制器 229

5.1.3 NAND Flash控制器 230

5.1.4 时钟和电源管理 233

5.2 I/O口 234

5.2.1 S3C2410A的I/O口工作原理 234

5.2.2 I/O口编程实例 241

5.3 中断 243

5.3.1 ARM的中断原理 243

5.3.2 S3C2410A的中断控制器 244

5.3.3 中断编程实例 247

5.4 DMA 249

5.4.1 DMA工作原理 249

5.4.2 S3C2410A的DMA控制器 250

5.4.3 DMA编程实例 254

5.5 UART 255

5.5.1 UART的工作原理 255

5.5.2 S3C2410A的UART 257

5.5.3 UART编程实例 263

5.6 A/D接口 266

5.6.1 A/D接口原理 266

5.6.2 S3C2410A的A/D转换器 267

5.6.3 A/D接口编程实例 270

5.7 键盘和LED控制 272

5.7.1 键盘和LED的接口原理 272

5.7.2 键盘和LED控制的编程实例 273

5.8 LCD 276

5.8.1 LCD显示原理 276

5.8.2 S3C2410A的LCD控制器 277

5.8.3 LCD显示的编程实例 283

5.9 触摸屏 286

5.9.1 触摸屏工作原理 286

5.9.2 S3C2410A的触摸屏接口 287

5.9.3 触摸屏编程实例 289

5.10 音频录放 292

5.10.1 音频录放的实现原理 292

5.10.2 S3C2410A的I2S总线接口 293

5.10.3 音频录放的编程实例 297

5.11 USB设备的数据收发 299

5.11.1 USB接口及编程简介 299

5.11.2 S3C2410A的USB设备控制器 300

5.11.3 USB设备收发数据编程实例 300

第6章 Linux操作系统基础 304

6.1 Linux操作系统概述 304

6.1.1 Linux操作系统的产生及发展 304

6.1.2 Linux操作系统的特点 305

6.2 Linux内核的结构 308

6.2.1 进程调度 309

6.2.2 内存管理 312

6.2.3 虚拟文件系统 313

6.2.4 进程间通信 314

6.2.5 网络接口 322

6.2.6 各个子系统之间的依赖关系 324

6.3 Linux设备管理 325

6.3.1 设备文件 325

6.3.2 设备驱动 326

6.3.3 控制方式 326

6.4 Linux的使用 326

6.4.1 Linux常用命令 326

6.4.2 vi编辑器的使用 342

6.4.3 make工具和gcc编译器 345

第7章 嵌入式Linux软件设计 354

7.1 Bootloader引导程序 354

7.1.1 BootLoader的启动过程 354

7.1.2 BootLoader——vivi 355

7.2 Linux的移植 358

7.2.1 Linux内核的目录结构 359

7.2.2 Linux内核源码 360

7.2.3 交叉编译环境的建立 360

7.2.4 Linux内核文件的修改 361

7.2.5 Linux内核及文件系统的编译 364

7.2.6 Linux内核及文件系统的下载 364

7.3 驱动程序开发 365

7.3.1 驱动程序的开发步骤 368

7.3.2 键盘驱动程序的开发 370

7.3.3 LCD驱动程序的开发 374

7.4 应用程序开发 377

7.4.1 应用程序的开发步骤 377

7.4.2 键盘应用程序的开发 378

7.4.3 基本绘图应用程序的开发 379

7.4.4 跑马灯应用程序的开发 382

第8章 图形用户接口MiniGUI 385

8.1 MiniGUI简介 385

8.1.1 MiniGUI的功能特色 385

8.1.2 MiniGUI的技术优势 385

8.2 MiniGUI在Linux下运行环境的建立 387

8.2.1 MiniGUI在Linux下的运行环境 387

8.2.2 安装资源文件 390

8.2.3 配置安装MiniGUI库文件 390

8.3 MiniGUI在QVFB上的仿真应用 392

8.4 在Linux下S3C2410 FrameBuffer的启动 394

8.4.1 FrameBuffer简介 394

8.4.2 FrameBuffer驱动的添加 395

8.4.3 FrameBuffer设备文件的添加 396

8.4.4 FrameBuffer测试程序的编写 396

8.5 MiniGUI在S3C2410上的移植 399

8.5.1 安装MiniGUI资源文件 399

8.5.2 配置安装MiniGUI库文件 399

8.5.3 MiniGUI的移植步骤 401

8.6 MiniGUI输入引擎IAL的开发 402

8.6.1 IAL引擎简介 402

8.6.2 IAL引擎的开发 402

8.7 在S3C2410上运行简单的绘图程序 406

8.7.1 MiniGUI的基本绘图函数 406

8.7.2 绘图程序举例 407

附录A EL-ARM-860型嵌入式实验开发系统简介 409

一、系统结构简介 409

二、可开设的实验项目 412

三、产品特点 414

附录B 达盛科技Techv-DM355介绍 415

参考文献 419