书籍详情
《嵌入式Linux开发技术详解基于ARM基础知识交叉开发环境系统三大组成部分》[29M]百度网盘|亲测有效|pdf下载
  • 嵌入式Linux开发技术详解基于ARM基础知识交叉开发环境系统三大组成部分

  • 出版社:搜书图书专营店
  • 出版时间:2006-08
  • 热度:9437
  • 上架时间:2024-06-30 09:08:33
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

 

随着Linux操作的发展,特别是Linux 2.6内核的迅速发展,嵌入式Linux在嵌入式领域的应用越来越广泛。Linux具备源码开放、内核稳定高效、软件丰富等优势,而且还具备支持广泛的处理器结构和硬件平台、可定制性好、可靠性高等特点。据IDC的报告显示,嵌入式Linux在未来两年将占嵌入式操作市场份额的50%,约3.5亿美元,由此产生的应用市场前景更是不可估量。正是由于市场的需求,嵌入式领域也需要大量的嵌入式Linux开发者。目前国内Linux程序员的素质和数量还不能满足企业的需要。

本书以嵌入式Linux开发流程为主线,剖析了嵌入式Linux构建的各个环节。本书从嵌入式基础知识和Linux编程技术讲起,接下来说明了嵌入式Linux交叉开发环境的建立,然后分析了嵌入式Linux的引导程序、内核和文件三大组成部分,后介绍了嵌入式Linux集成和部署的方法。本书使用的嵌入式Linux软件全部来源于开源站点,文中提供了具体的链接地址。本书主要以ARM平台为例,对U-Boot和Linux内核启动过程做了详细分析,为学习嵌入式Linux开发奠定基础。本书从概念上阐述了嵌入式Linux开发流程,实践上提供了具体的操作步骤,使读者能够深入理解嵌入式Linux构建。
本书可作为高等院校电子类、电气类、控制类等高年级本科生、研究生学习嵌入式Linux的教材,也可供广大希望转入嵌入式领域的科研和工程技术人员参考使用,还可作为广大嵌入式培训班的教材和教辅材料。

 

第1章 概述 1
1.1 嵌入式 1
1.2 嵌入式操作 2
1.3 嵌入式Linux历史 4
1.4 嵌入式Linux开发环境 5
1.5 嵌入式Linux开发要点 7

第2章 ARM处理器 8
2.1 ARM处理器简介 8
2.1.1 ARM公司简介 9
2.1.2 ARM处理器体系结构 10
2.1.3 Linux与ARM处理器 12
2.2 ARM指令集 13
2.2.1 ARM微处理器的指令集概述 13
2.2.2 ARM指令寻址方式 15
2.2.3 Thumb指令概述 17
2.3 典型ARM处理器简介 17
2.3.1 Atmel AT91RM9200 17
2.3.2 Samsung S3C2410 18
2.3.3 TI OMAP1510/1610系列 19
2.3.4 Freescale i.Max21 22
2.3.5 Intel Xscale PXA系列 23
2.4 三星S3C2410开发板 24
2.4.1 三星S3C2410开发板介绍 24
2.4.2 众多的开发板供应商 26

第3章 Linux编程环境 28
3.1 Linux常用工具 28
3.1.1 Shell简介 28
3.1.2 常用Shell命令 30
3.1.3 编写Shell脚本 38
3.1.4 正则表达式 42
3.1.5 程序编辑器 44
3.2 Makefile 48
3.2.1 GNU make 48
3.2.2 Makefile规则语法 49
3.2.3 Makefile文件中变量的使用 51
3.3 二进制代码工具的使用 52
3.3.1 GNU Binutils工具介绍 52
3.3.2 Binutils工具软件使用 54
3.4 编译器GCC的使用 54
3.4.1 GCC编译器介绍 54
3.4.2 GCC编译选项解析 56
3.5 调试器GDB的使用技巧 60
3.5.1 GDB调试器介绍 60
3.5.2 GDB调试命令 61
3.6 Linux编程库 66
3.6.1 Linux编程库介绍 66
3.6.2 Linux调用 67
3.6.3 Linux线程库 70

第4章 交叉开发环境 73
4.1 交叉开发环境介绍 73
4.1.1 交叉开发概念模型 73
4.1.2 目标板与主机之间的连接 75
4.1.3 文件传输 76
4.1.4 网络文件 77
4.2 安装交叉编译工具 78
4.2.1 获取交叉开发工具链 78
4.2.2 主机安装工具链 79
4.3 主机开发环境配置 80
4.3.1 主机环境配置 80
4.3.2 串口控制台工具 81
4.3.3 DHCP服务 84
4.3.4 TFTP服务 85
4.3.5 NFS服务 86
4.4 启动目标板 88
4.4.1引导过程 88
4.4.2 内核解压启动 89
4.4.3 挂接根文件 90
4.5 应用程序的远程交叉调试 91
4.5.1 交叉调试的模型 91
4.5.2 交叉调试程序实例 92

第5章 交叉开发工具链 94
5.1 工具链软件 94
5.1.1 相关软件工程 94
5.1.2 软件版本的匹配 95
5.1.3 工具链制作流程 97
5.2 制作交叉编译器 98
5.2.1 准备编译环境 98
5.2.2 编译binutils 99
5.2.3 编译GCC的辅助编译器 100
5.2.4 编译生成glibc库 101
5.2.5 编译生成完整的GCC编译器 105
5.3 制作交叉调试器 106
5.3.1 编译交叉调试器 106
5.3.2 编译gdbserver 106

第6章 Bootloader 108
6.1 Bootloader 108
6.1.1 Bootloader介绍 108
6.1.2 Bootloader的启动 109
6.1.3 Bootloader的种类 111
6.2 U-Boot编程 113
6.2.1 U-Boot工程简介 113
6.2.2 U-Boot源码结构 113
6.2.3 U-Boot的编译 114
6.2.4 U-Boot的移植 117
6.2.5 添加U-Boot命令 118
6.3 U-Boot的调试 121
6.3.1 硬件调试器 121
6.3.2 软件跟踪 121
6.3.3 U-Boot启动过程 123
6.3.4 U-Boot与内核的关系 128
6.4 使用U-Boot 133
6.4.1 烧写U-Boot到Flash 134
6.4.2 U-Boot的常用命令 134
6.4.3 U-Boot的环境变量 141

第7章 配置编译内核 143
7.1 Linux内核特点 143
7.1.1 Linux内核版本介绍 143
7.1.2 Linux内核特点 143
7.1.3 Linux 2.6内核新特性 144
7.2 配置编译内核源码 147
7.2.1 内核源码结构 148
7.2.2 内核配置 150
7.2.3 Kbuild Makefile 157
7.2.4 内核编译 169
7.2.5 内核编译结果 179
7.3 内核配置选项 180
7.3.1 使用配置菜单 180
7.3.2 基本配置选项 181
7.3.3 驱动程序配置选项 183

第8章 内核移植浅析 185
8.1 移植内核源码 185
8.1.1 移植前的准备工作 185
8.1.2 开发板内核移植 186
8.1.3 移植后的工作 194
8.2 Linux内核启动过程分析 194
8.2.1 内核启动流程源代码分析 194
8.2.2 内核自引导程序 195
8.2.3 内核vmlinux入口 199
8.2.4 Linux初始化 201
8.2.5 挂接根文件 206
8.2.6 初始化设备驱动 208
8.2.7 启动用户空间init进程 209

第9章 内核调试技术 212
9.1 内核调试方法 212
9.1.1 内核调试概述 212
9.1.2 学会分析内核源程序 213
9.1.3 调试方法介绍 213
9.2 内核打印函数 216
9.2.1 内核映像解压前的串口输出函数 216
9.2.2 内核报告子程序 218
9.2.3 内核打印函数 220
9.3 获取内核信息 227
9.3.1请求键 227
9.3.2 通过/proc接口 228
9.3.3 通过/sys接口 229
9.3.4 通过ioctl方法 232
9.4 处理出错信息 233
9.4.1 oops信息 233
9.4.2 panic 234
9.5 内核源码调试 236
9.5.1 KGDB调试内核源代码 236
9.5.2 BDI2000调试内核源代码 237

第10章 制作Linux根文件 242
10.1 根文件目录结构 242
10.1.1 FHS目录结构 243
10.1.2 文件存放规则 246
10.2 添加文件 247
10.2.1 添加共享链接库 247
10.2.2 添加内核模块 249
10.2.3 添加设备文件 251
10.3 init初始化过程 253
10.3.1 inittab文件 253
10.3.2 System V init启动过程 256
10.3.3 Busybox init启动过程分析 258
10.4 定制文件 260
10.4.1 定制应用程序 260
10.4.2 配置应用程序自动启动 260

第11章 充分利用开源软件 262
11.1 开放源代码工程介绍 262
11.1.1 Linux和开源软件 263
11.1.2 开源软件的特点 264
11.2 Busybox使用 265
11.2.1 Busybox工程介绍 265
11.2.2 配置编译Busybox 265
11.3 X11图形 270
11.3.1 X Windows介绍 270
11.3.2 Tiny-X介绍 270
11.3.3 GTK图形库 271
11.4 Qt图形库 277
11.4.1 Qt介绍 277
11.4.2 Qt/Embedded介绍 278
11.4.3 Qt/Embedded架构 280
11.4.4 Qt/Embedded软件包与安装 281
11.5 MiniGUI图形 283
11.5.1 MiniGUI图形概述 283
11.5.2 MiniGUI移植 285
11.6 MicroWindows图形 290
11.7 Linux下的网络应用 292
11.7.1 嵌入式设备的网络化 292
11.7.2 TCP/IP协议概述 292
11.7.3 Linux下的Socket编程 294
11.8 嵌入式Linux的串行通信 304
11.8.1 Linux下的串口操作 304
11.8.2 Linux串口编程实例 309

第12章集成测试 314
12.1集成测试 314
12.1.1集成测试概述 314
12.1.2集成测试要求 315
12.2跟踪工具 315
12.2.1 为什么需要跟踪工具 315
12.2.2 Strace 316
12.2.3 Ltrace 316
12.2.4 LTT 317
12.3性能测量工具 321
12.3.1 代码效率测量 321
12.3.2 LTP 324
12.3.3 LMbench 325
12.4 测量内存泄漏 326
12.4.1 mtrace 326
12.4.2 dmalloc 327
12.4.3 memwatch 328
12.4.4 YAMD 330

第13章 部署Linux 333
13.1 部署Linux概述 333
13.1.1 部署Linux的基本流程 333
13.1.2 部署Linux的关键问题 334
13.2 文件类型 335
13.2.1 EXT2/EXT3 335
13.2.2 JFS 337
13.2.3 cramfs 339
13.2.4 JFFS/JFFS2 340
13.2.5 YAFFS 341
13.3 存储设备 343
13.3.1 MTD类型设备 343
13.3.2 磁盘类型设备 344
13.4 部署Linux 346
13.4.1 安装MTD工具 346
13.4.2 使用磁盘文件 347
13.4.3 使用RAMDISK设备 348
13.4.4 使用MTD设备和JFFS2文件 349
13.4.5启动和升级 351

第14章设计开发实例 352
14.1 需求分析 352
14.2硬件设计 354
14.3软件设计 364
14.4集成与部署 366

^_^:bd9acf285abc87405b3fd8625a25fd35