《ARM-Linux嵌入式系统开发基础》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:孙弋主编
  • 出 版 社:西安:西安电子科技大学出版社
  • 出版年份:2008
  • ISBN:7560620725
  • 页数:319 页
图书介绍:

第1章 嵌入式系统开发基础 1

1.1 嵌入式系统概述 2

1.1.1 典型的嵌入式操作系统 2

1.1.2 Linux系统 3

1.2 嵌入式系统设计基础 6

1.2.1 嵌入式系统设计的特点 6

1.2.2 嵌入式系统的设计流程 7

1.2.3 嵌入式系统的软/硬件划分 10

1.2.4 嵌入式系统的产品硬件详细设计 10

1.2.5 嵌入式系统的软件设计 11

1.2.6 嵌入式开发电路基础 14

1.2.7 电子电路抗干扰设计基础 18

1.2.8 嵌入式系统电源管理技术 21

第2章 嵌入式微处理器及ARM9硬件开发平台 23

2.1 嵌入式微处理器 23

2.1.1 嵌入式微处理器的类型 23

2.1.2 典型32位ARM微处理器的结构和特点 25

2.2 ARM9微处理器简介 29

2.2.1 ARM9与ARM7处理器的比较 29

2.2.2 三星S3C2410X ARM9处理器寄存器详解 30

第3章 Linux C编译调试基础 63

3.1 Linux下C语言编程概述 63

3.2 Vi编辑器的使用 64

3.3 Emacs使用简介 65

3.3.1 Emacs的基本操作 65

3.3.2 Emacs编译概述 67

3.4 使用GNU CC编程 68

3.4.1 Linux C源程序的编译 68

3.4.2 “Hello,World!” 70

3.4.3 GCC的主要选项 72

3.5 使用GNU make 73

3.5.1 初识Makefile 73

3.5.2 Makefile规则 74

3.5.3 Makefile中的变量 75

3.5.4 简单的Makefile文件内容 76

3.5.5 假想目标 77

3.5.6 条件语句 77

3.5.7 依赖关系 78

3.5.8 函数 79

3.5.9 Makefile的扩展变量 80

3.5.10 Makefile中的替换 81

3.6 使用autoconf 83

3.6.1 创建configure脚本 83

3.6.2 编写configure.in文件 84

3.6.3 通过autoconf创建configure 85

3.6.4 更新configure脚本 85

3.7 使用automake 86

3.8 GDB调试工具 89

3.8.1 GDB概述 89

3.8.2 GDB使用示例 90

3.8.3 启动GDB 92

3.8.4 GDB模式的设置 93

3.8.5 退出GDB 93

3.8.6 shell命令的使用 94

3.9 在GDB下运行程序 94

3.9.1 命令输入的技巧 94

3.9.2 调试程序时的注意事项 95

3.9.3 调试程序环境设置 96

3.9.4 运行程序 97

3.10 调试程序 97

3.10.1 子进程结束 97

3.10.2 调试多线程程序 98

3.10.3 调试多进程程序 98

3.10.4 调试的停止和继续 98

3.11 设置断点、观测点和异常 99

第4章 Linux C编程基础 105

4.1 Linux下的C语言编程——线程操作 105

4.2 Linux下的进程控制 105

4.2.1 fork()函数 105

4.2.2 exec()函数族 107

4.3 多线程编程入门 108

4.3.1 创建线程 109

4.3.2 pthread join()和pthread exit()函数……4.3.3 取消线程 113

4.3.4 线程私有数据 114

4.3.5 互斥锁 116

4.3.6 信号灯 122

4.3.7 线程终止 124

第5章 Bootloader开发基础 126

5.1 Bootloader基础 126

5.1.1 Bootloader的启动 126

5.1.2 Bootloader的种类 129

5.1.3 Bootloader的基本原理 130

5.2 U-Boot 140

5.2.1 U-Boot工程简介 140

5.2.2 U-Boot源码结构 140

5.2.3 U-Boot的编译 141

5.2.4 U-Boot的移植 144

5.2.5 添加U-Boot命令 145

5.2.6 U-Boot的调试 147

5.2.7 U-Boot的使用 164

5.3 ViVi 173

5.3.1 ViVi简介 173

5.3.2 ViVi的配置与编译 174

5.3.3 ViVi代码分析 175

5.3.4 ViVi的运行 176

第6章 嵌入式Linux内核 188

6.1 嵌入式Linux概述 188

6.1.1 嵌入式操作系统的分类 188

6.1.2 嵌入式Linux 188

6.2 嵌入式Linux的版本控制 189

6.3 嵌入式Linux的代码结构 190

6.4 ARM嵌入式Linux的内存管理 191

6.4.1 内存管理单元MMU 191

6.4.2 ARM嵌入式Linux的存储管理机制 191

6.4.3 ARM嵌入式Linux存储机制的建立 192

6.4.4 ARM嵌入式Linux对进程虚拟空间的管理 195

6.5 ARM嵌入式Linux的进程管理与调度 197

6.5.1 task_struct数据结构 197

6.5.2 Linux进程的创建、执行和终止 201

6.5.3 ARM嵌入式Linux的进程调度 204

6.6 ARM嵌入式Linux的中断响应与处理 205

6.6.1 ARM的异常中断种类 205

6.6.2 ARM处理器对异常中断的响应及返回过程 206

6.7 嵌入式Linux的模块化机制 209

6.7.1 Linux的模块化 209

6.7.2 模块的载入 209

6.7.3 模块的卸载 211

6.8 嵌入式Linux内核的配置 211

6.8.1 Makefile 212

6.8.2 配置文件 216

6.8.3 Linux内核配置选项 219

6.8.4 配置实例 224

6.9 嵌入式Linux内核启动分析 226

第7章 嵌入式文件系统 246

7.1 文件系统基本概念 246

7.1.1 嵌入式根文件系统 246

7.1.2 嵌入式系统存储设备及其管理机制分析 247

7.1.3 嵌入式Linux中的MTD驱动层 249

7.1.4 常见的嵌入式文件系统 254

7.2 虚拟文件系统VFS 258

7.2.1 VFS概述 259

7.2.2 文件系统的注册 259

7.2.3 VFS目录树的建立 260

7.2.4 VFS下目录的建立 262

7.2.5 在VFS树中挂载文件系统 264

7.3 基于Flash的文件系统 268

7.3.1 JFFS2 268

7.3.2 YAFFS 273

7.3.3 CramFS 278

7.4 基于RAM的文件系统 280

7.5 Busybox 288

7.5.1 Busybox命令的工作原理 288

7.5.2 配置并编译Busybox 289

第8章 ARM-Linux串行接口通信程序设计 295

8.1 串行接口 295

8.1.1 串行接口的原理 295

8.1.2 程序分析 298

8.2 A/D接口 303

8.2.1 A/D接口原理 303

8.2.2 ARM自带的10位A/D转换器 305

8.2.3 程序分析 307

8.3 瓦斯信息采集系统应用实例 310

8.3.1 瓦斯信息采集系统硬件设计 311

8.3.2 瓦斯信息采集系统软件设计 313

参考文献 319