《嵌入式Linux系统开发教程》[85M]百度网盘|pdf下载|亲测有效
《嵌入式Linux系统开发教程》[85M]百度网盘|pdf下载|亲测有效
《嵌入式Linux系统开发教程》[85M]百度网盘|pdf下载|亲测有效

嵌入式Linux系统开发教程 pdf下载

isbn:9787121293733
出版社 电子工业出版社
出版年 2016-07-01
页数 390页
ISBN 9787121293733
装帧 精装
评分 9.1(豆瓣)
限时特惠 00:00:00
活动结束后恢复原价
纸质书参考价 ¥23
电子版限时价 ¥5.99 省 18 元

选择版本

不满意全额退款
发货失败双倍赔偿
邮箱即时发送

内容简介

本篇主要提供嵌入式Linux系统开发教程电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com


内容介绍

内容介绍

本书结合大量实例,在基于ARM Cortex-A9 四核处理器的硬件教学平台上,全面详细地讲解了ARM 处理器及在其上的嵌入式Linux 系统开发。本书主要内容包括ARM 处理器及常用指令介绍,Linux 编程环境,交叉开发环境,Boot Loader 介绍U-Boot 启动过程及移植,Linux 内核配置、编译及Qt 移植等。其中移植相关的内容不仅给出了移植的方法和步骤,还讲解了为什么要这么做。重视实践,实用是本书的最大特点,同时,本书配合大量的习题,读者能快速地掌握嵌入式Linux 系统开发的要点。




作者介绍

前    言

随着嵌入式及物联网技术的快速发展,ARM 处理器已经广泛地应用到了工业控制、智能仪表、汽车电子、医疗电子、军工电子、网络设备、消费类电子、智能终端等领域。而较新的ARM Cortex-A9 架构的四核处理器,更是由于其优越的性能被广泛应用在中高端的电子产品市场。比如基于ARM Cortex-A9 的三星Exynos 4412 处理器就被应用在三星GALAXY Note II 智能手机上。

另一方面,Linux 内核由于其高度的稳定性和可裁剪性等特点,被广泛地应用到嵌入式系统中,其中Android 系统就是一个典型的例子。这样,ARM 处理器和Linux 操作系统紧密地联系在一起。所以,基于ARM 和Linux 的嵌入式系统得到了快速的发展。

目前,针对上述两方面完整涵盖的书籍较少,或者就是相对较老的ARM 体系结构及较低版本的Linux 内核。为了能够跟上嵌入式Linux 技术发展的步伐,促进嵌入式技术的推广,华清远见研发中心自主研发了一套基于Exynos 4412 处理器的开发板FS4412,并组织编写了本书。本书注重实践、实用,本着从解决问题的角度出发,既给出了解决问题的方法,又给出了如何逐步解决问题的过程。

本书将ARM 处理器和嵌入式Linux 系统融为一体,形成了一套较完整的嵌入式Linux 系统开发教程。全书共11 章,循序渐进地讲解了嵌入式Linux 系统开发所涉及的核心技术和一些经验、方法。本书主要分四个部分,第一部分(第1 章和第2 章)介绍了嵌入式系统和ARM 处理器的概况;第二部分(第3 章和第4 章)介绍Linux 下的软件开发;第三部分(第5 章)介绍U-Boot 的移植;第四部分(第6~11 章)介绍Linux内核、驱动的移植,根文件系统的制作及Qt 的移植。各章节的主要内容如下。

第1 章对嵌入式系统有一个整体的概述,主要介绍当前比较流行的嵌入式操作系统,并着重介绍嵌入式Linux 系统。

第2 章介绍ARM 处理器的整体情况,主要介绍ARM 处理器的家族系列、常用的指令、寻址方式和常见的基于ARM 的SoC,重点介绍Exynos 4412 处理器及FS4412 开发板。

第3 章讲解常用的Linux 命令、Shell 脚本、正则表达式、Makefile、GNU 工具集和Linux 编程库。

第4 章讲解交叉开发环境,包括交叉编译工具链的安装、串口终端的安装和使用、TFTP 和NFS 服务器的安装和配置、根文件系统挂载、交叉调试和FS4412 开发板的开发环境的搭建实例。

第5 章讲解常见的Bootloader、U-Boot 常用命令、U-Boot 的启动过程及U-Boot 的移植过程。

第6 章讲解Linux 内核的配置及编译,包括Linux 内核源码下载、配置、Makefile、Kconfig、配置选项、编译等内容。

第7 章讲解Linux 内核的移植基础内容,包括内核移植的基本工作、Linux 设备树、Linux 启动过程的详细讲解。

第8 章讲解FS4412 开发板上Linux 内核的移植实例,包括内核的基础移植、网卡驱动移植、SD/eMMC 驱动移植、USB 主机控制器驱动移植和LCD 驱动移植的详细讲解。

第9 章讲解Linux 内核的调试技术,包括常用调试方法的介绍、调试相关的配置选项、内核打印函数分析、系统请求键、proc 和sys 接口、oops 及panic 信息分析、KGDB源码级内核调试等。

第10 章讲解根文件系统的制作和固化,包括根文件系统目录结构、init 系统初始化过程、利用Busybox 制作根文件系统的过程和根文件系统的固化等。

第11 章讲解Qt 的移植,包括Qt 的下载、配置、编译、安装和在根文件系统中的添加,Qt 集成开发环境的安装,在集成开发环境中加入ARM 平台的构建环境,Qt 应用程序的编译和在开发板上的运行测试等。

本书由华清远见成都中心的姜先刚和袁祖刚编写,其中第1~5 章由袁祖刚编写,第6~11 章由姜先刚编写,北京中心的刘洪涛完成本书的统稿及审校工作。本书的内容是华清远见嵌入式培训中心所有老师心血的结晶,是多年教学成果的积累。他们认真阅读了书稿,提出了大量的建议,并纠正了书稿中的很多错误,在此表示感谢。由于作者水平有限,书中不妥之处在所难免,恳请读者批评、指正。对于本书的批评和建议,可以发表到www.farsight.com.cn 技术论坛。

编 者



目录

目     录

第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 AT91RM9200 ........................................................................... 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 Makefile ........................................................................................................... 57

3.2.1 GNU make............................................................................................ 57

3.2.2 Makefile 规则语法 .............................................................................. 59

3.2.3 Makefile 文件中变量的使用 ............................................................... 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 Makefiles ................................................................................ 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

参考文献 ···················································································&middo