《嵌入式Linux系统开发教程》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:姜先刚,袁祖刚编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2016
  • ISBN:9787121293733
  • 页数:323 页
图书介绍:本书结合大量实例,在基于ARM Cortex—A9四核处理器的硬件教学平台上,全面详细讲解了ARM处理器及在其上的嵌入式Linux系统开发。主要内容包含ARM处理器及常用指令介绍,Linux编程环境,交叉开发环境,U—Boot启动过程及移植,Linux内核配置、编译及移植,Linux启动过程,ARM的Linux设备树介绍,网卡驱动、SD/eMMC驱动、USB主机控制器驱动、LCD驱动的移植,根文件系统制作及镜像烧写,5.4.2版本的Qt移植等。移植相关的内容,不仅给出了移植的方法和步骤,更主要的是说明了为什么要这么做。

第1章 嵌入式系统概述 1

1.1 嵌入式系统 2

1.2 嵌入式操作系统 3

1.3 嵌入式Linux历史 5

1.4 嵌入式 Linux开发环境 6

1.5 嵌入式Linux系统开发要点 8

第2章 ARM处理 9

2.1 ARM处理器简介 10

2.1.1 ARM公司简介 11

2.1.2 ARM处理器体系结构 12

2.1.3 Linux与ARM处理器 17

2.2 ARM指令集 18

2.2.1 ARM微处理器的指令集概述 18

2.2.2 ARM指令寻址方式 19

2.2.3 Thumb指令 21

2.2.4 Thumb-2指令 22

2.2.5 ThumbEE指令 22

2.3 典型ARM处理器简介 22

2.3.1 Atmel AT91 RM9200 22

2.3.2 Samsung S3C2410 23

2.3.3 TI OMAP5系列 25

2.3.4 Freescale i.Max6 26

2.3.5 Intel Xscale PXA系列 27

2.3.6 Cortex-A系列的Exynos4412 29

2.4 华清远见FS4412开发板 30

2.4.1 华清远见FS4412开发板介绍 30

2.4.2 众多的开发板供应商 34

2.5 习题 34

第3章 Linux编程环境 35

3.1 Linux常用工具 36

3.1.1 Shell简介 36

3.1.2 常用的Shell命令 38

3.1.3 编写Shell脚本 46

3.1.4 正则表达式 50

3.1.5 程序编辑器 53

3.2 Makefiile 57

3.2.1 GNU make 57

3.2.2 Makefiile规则语法 59

3.2.3 Makefiile文件中变量的使用 60

3.3 二进制代码工具的使用 62

3.3.1 GNU Binutils工具介绍 62

3.3.2 Binutils工具软件使用 63

3.4 GCC编译器的使用 64

3.4.1 GCC编译器简介 64

3.4.2 GCC编译选项解析 66

3.5 调试器GDB的使用技巧 70

3.5.1 GDB调试器介绍 70

3.5.2 GDB调试命令 71

3.6 Linux编程库 75

3.6.1 Linux编程库介绍 75

3.6.2 Linux系统调用 76

3.6.3 Linux线程库 78

3.7 习题 81

第4章 交叉开发环境 82

4.1 交叉开发环境介绍 83

4.1.1 交叉开发概念模型 83

4.1.2 目标板与主机之间的连接 84

4.1.3 文件传输 86

4.1.4 网络文件系统 87

4.2 安装交叉编译工具 87

4.2.1 获取交叉开发工具链 87

4.2.2 主机安装工具链 88

4.3 主机开发环境配置 88

4.3.1 主机环境配置 88

4.3.2 串口控制台工具 89

4.3.3 TFTP服务 93

4.3.4 NFS服务 93

4.4 启动目标板 95

4.4.1 系统引导过程 95

4.4.2 内核解压启动 96

4.4.3 挂接根文件系统 98

4.5 应用程序的远程交叉调试 99

4.5.1 交叉调试的模型 99

4.5.2 交叉调试程序实例 100

4.6 实例:FS4412嵌入式开发环境搭建 102

4.6.1 开发主机安装 102

4.6.2 联调测试 110

4.7 习题 113

第5章 Bootloader 114

5.1 Bootloader简介 115

5.1.1 Bootloader介绍 115

5.1.2 Bootloader的启动 115

5.1.3 Bootloader的种类 118

5.2 U-Boot简介 120

5.2.1 U-Boot介绍 120

5.2.2 U-Boot的常用命令 120

5.2.3 U-Boot的环境变量 124

5.2.4 U-Boot源码结构 126

5.3 U-Boot源码分析 127

5.3.1 配置编译 127

5.3.2 U-Boot启动过程 132

5.3.3 U-Boot与内核的关系 136

5.4 U-Boot移植实例 138

5.4.1 收集移植相关资源 138

5.4.2 选择U-Boot源码版本 139

5.4.3 u-Boot配置编译 139

5.4.4 串口能输出信息 140

5.4.5 移植网卡实现Ping和TFTP的功能 145

5.5 习题 151

第6章 配置编译内核 153

6.1 Linux内核特点 154

6.1.1 Linux内核版本介绍 154

6.1.2 Linux内核特点 155

6.2 配置编译内核源码 156

6.2.1 内核源码的下载方法和结构 157

6.2.2 内核配置系统 160

6.2.3 Kbuild Makefiiles 167

6.2.4 内核编译 178

6.2.5 内核编译结果 185

6.3 内核配置选项 187

6.3.1 使用配置菜单 187

6.3.2 基本配置选项 189

6.3.3 驱动程序配置选项 191

6.4 习题 192

第7章 内核移植基础 193

7.1 移植内核源码 194

7.1.1 移植的基本工作 194

7.1.2 移植后的工作 196

7.2 Linux设备树 197

7.2.1 Linux设备树的由来 197

7.2.2 Linux设备树的目的 197

7.2.3 Linux设备树的使用 199

7.3 Linux内核启动过程分析 206

7.3.1 内核启动流程介绍 206

7.3.2 内核启动加载程序 209

7.3.3 内核主体程序入口 215

7.3.4 Linux系统初始化 218

7.3.5 初始化驱动模型 224

7.3.6 挂载根文件系统 225

7.4 习题 227

第8章 内核移植实例 229

8.1 基本内核移植 230

8.2 网卡驱动移植 234

8.2.1 网卡原理图分析 234

8.2.2 网卡驱动移植 235

8.2.3 以NFS挂载根文件系统 237

8.3 SD/eMMC驱动移植 238

8.4 USB主机控制器驱动移植 240

8.5 LCD驱动移植 244

8.6 习题 249

第9章 内核调试技术 250

9.1 内核调试方法 251

9.1.1 内核调试介绍 251

9.1.2 学会分析内核源程序 252

9.1.3 调试方法介绍 252

9.2 内核打印函数 255

9.2.1 内核映像解压前的串口输出函数 255

9.2.2 内核映像解压后的串口输出函数 257

9.2.3 printk 258

9.3 获取内核信息 263

9.3.1 系统请求键 263

9.3.2 通过/proc接口 264

9.3.3 通过/sys接口 265

9.4 处理出错信息 268

9.4.1 oops信息 268

9.4.2 panic 269

9.4.3 通过ioctl方法 271

9.5 内核源代码调试 272

9.6 习题 275

第10章 制作Linux根文件系统 276

10.1 根文件系统目录结构 277

10.2 init系统初始化过程 280

10.2.1 inittab文件 281

10.2.2 System V init启动过程 284

10.2.3 Busybox init启动过程分析 285

10.3 制作根文件系统 287

10.3.1 配置并编译Busybox 287

10.3.2 添加共享库文件和内核模块 289

10.3.3 添加其他目录和文件 290

10.4 固化根文件系统 293

10.4.1 制作image格式的initrd根文件系统镜像 293

10.4.2 固化ext2格式的根文件系统 295

10.5 习题 297

第11章 Qt移植 299

11.1 Qt源码配置、编译及安装 300

11.2 在根文件系统中添加Qt 309

11.3 安装Qt集成开发环境 309

11.4 添加ARM平台的构建环境 313

11.5 编写并运行Qt测试程序 316

11.6 习题 320

参考文献 322

附录 习题答案 323