图书介绍
嵌入式Linux系统开发全程解析PDF|Epub|txt|kindle电子书版本网盘下载
- 韩超等著 著
- 出版社: 北京:电子工业出版社
- ISBN:9787121228889
- 出版时间:2014
- 标注页数:426页
- 文件大小:90MB
- 文件页数:438页
- 主题词:Linux操作系统-程序设计
PDF下载
下载说明
嵌入式Linux系统开发全程解析PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 Linux的开发环境1
1.1 开发环境概述1
1.2 串口终端工具2
1.3 TFTP6
1.4 NFS7
1.5 SAMBA共享8
1.6 Linux系统的软件发布协议9
第2章 程序生成和GCC11
2.1 程序生成工具概述11
2.1.1 GUN的GCC工具11
2.1.2 ELF文件格式14
2.2 GCC工具的使用16
2.2.1 示例工程16
2.2.2 编译、汇编和连接18
2.2.3 预处理和汇编20
2.2.4 归档工具(ar)和静态库20
2.2.5 动态库22
2.2.6 ELF格式文件信息读取(readelf)22
2.2.7 符号信息工具(nm)25
2.2.8 字符串工具(strings)26
2.2.9 去除符号(strip)27
2.2.10 目标文件复制(objcopy)28
2.2.11 目标文件信息(objdump)28
第3章 工程管理和make机制33
3.1 make工具33
3.2 Makefile的基本原则34
3.2.1 Makefile的变量34
3.2.2 Makefile的条件执行36
3.2.3 Makefile中的函数36
3.3 Makefile使用示例39
3.3.1 简单的Makefile39
3.3.2 依赖关系实例39
3.3.3 隐含规则的编译实例41
3.3.4 指定依赖的编译实例44
3.4 自动生成Makefile46
3.4.1 autoconf工具介绍46
3.4.2 automake工具介绍46
3.4.3 其他工具47
3.4.4 自动生成Makefile的流程47
第4章 调试和GDB49
4.1 嵌入式系统的调试技术49
4.1.1 调试技术49
4.1.2 硬件调试50
4.1.3 代码调试51
4.2 Linux的基本信息51
4.3 GDB调试和远程调试52
4.4 GDB的安装与使用57
4.4.1 使用gdbstub实现调试用户程序57
4.4.2 GDB和GDB Server的编译59
4.5 使用gdbserver调试61
第5章 Linux系统的结构65
5.1 Linux操作系统基本概念65
5.1.1 Linux的进程信息65
5.1.2 Linux的文件系统和文件信息70
5.1.3 文件的另外三位属性71
5.2 Linux系统的组成和构建72
5.2.1 Linux系统的组成72
5.2.2 嵌入式Linux的构建73
5.3 Linux系统的启动流程74
第6章 BootLoader及其构建76
6.1 嵌入式Linux的BootLoader76
6.1.1 BootLoader的开发要点76
6.1.2 BootLoader的结构78
6.2 U-Boot的使用80
6.2.1 U-Boot概述80
6.2.2 U-Boot的结构81
6.2.3 U-Boot的生成83
6.2.4 U-Boot的启动流程84
6.3 U-Boot的命令86
6.3.1 U-Boot命令概述86
6.3.2 增加命令88
6.4 U-Boot的移植91
6.4.1 U-Boot的移植概述92
6.4.2 U-Boot的扩展92
6.4.3 板级支持94
第7章 Linux内核及其构建97
7.1 Linux内核概述97
7.1.1 Linux内核结构97
7.1.2 Linux源文件结构98
7.2 嵌入式Linux的配置和编译99
7.2.1 Linux内核配置结构99
7.2.2 Linux内核的配置99
7.2.3 Linux内核的生成107
7.3 Linux内核的启动过程108
7.4 特定系统的Linux的构建114
7.4.1 Linux内核的移植114
7.4.2 ARM处理器上运行的Linux系统115
7.4.3 S3C6410 Linux内核的构建117
7.4.4 S3C6410 Linux内核的移植内容118
第8章 文件系统及其构建123
8.1 Linux文件系统特性123
8.2 Linux文件系统的结构125
8.2.1 文件系统的主要接口125
8.2.2 文件系统的实现130
8.2.3 默认的公共实现134
8.3 几种Linux使用的文件系统136
8.3.1 EXT2/3(扩展文件系统2/3)136
8.3.2 NFS(网络文件系统)136
8.3.3 ROMFS(只读文件系统)137
8.3.4 CRAMFS(压缩ROM文件系统)137
8.3.5 JFFS2(日志Flash文件系统)138
8.3.6 YAFFS(另一种Flash文件系统)138
8.3.7 UBIFS(非排序块映像文件系统)139
8.4 Linux文件系统的构建140
8.4.1 根文件系统的结构140
8.4.2 制作根文件系统映像141
8.4.3 内核启动中根文件系统的参数142
第9章 Linux用户空间的核心143
9.1 嵌入式系统中的操作系统和系统关系143
9.2 C语言库144
9.3 Shell工具Busybox147
9.3.1 Busybox配置和编译148
9.3.2 Busybox的源代码结构150
第10章 Linux用户空间的编程152
10.1 Linux用户空间编程概述152
10.2 文件的相关内容154
10.2.1 文件的打开、关闭和读写等155
10.2.2 文件的控制、映射和查询等157
10.2.3 文件的其他操作158
10.3 进程相关的内容159
10.3.1 fork和exec159
10.3.2 管道161
10.3.3 System V IPC162
10.3.4 POSIX IPC165
10.4 信号相关的内容166
10.5 pthread线程168
10.5.1 线程的基本使用169
10.5.2 线程的属性171
10.5.3 线程互斥量172
10.5.4 线程条件量173
10.5.5 线程取消175
10.6 dlopen机制176
10.6.1 dlopen的结构和意义176
10.6.2 在C语言中使用dlopen178
10.6.3 在C++中使用dlopen180
第11章 Linux用户空间的中间件185
11.1 基于嵌入式Linux的系统与中间件185
11.2 网络协议相关186
11.2.1 Linux套接字编程的基础186
11.2.2 TCP和UDP协议的流程189
11.2.3 TCP编程实例189
11.2.4 UDP编程实例193
11.2.5 深入网络编程196
11.2.6 用作IPC的UNIX Socket198
11.3 GUI应用开发201
11.3.1 Qt系统203
11.3.2 MiniGUI应用程序209
11.3.3 MicroWindows(Nano-XWindow)216
11.4 数据库217
11.4.1 关于嵌入式数据库217
11.4.2 SQLite218
第12章 Linux驱动基础228
12.1 Linux驱动概述228
12.1.1 驱动的理念和结构228
12.1.2 驱动程序对用户空间的接口230
12.2 设备文件和相关文件系统230
12.2.1 设备文件230
12.2.2 sys文件系统231
12.2.3 proc文件系统233
第13章 Linux的内核编程237
13.1 Linux内核编程概述237
13.2 内核模块的编写237
13.2.1 Linux内核中的模块237
13.2.2 内核模块的编译结构239
13.3 内核编程接口241
13.3.1 Linux编程风格241
13.3.2 Linux编程主要接口242
第14章 Linux的驱动核心架构248
14.1 用户空间的接口248
14.1.1 用户空间的驱动调用接口248
14.1.2 系统调用248
14.1.3 驱动的主要调用函数249
14.2 字符设备和块设备的框架250
14.2.1 文件操作file_operations250
14.2.2 字符设备的基本框架251
14.2.3 块设备的框架252
14.2.4 字符设备和块设备的默认file_operations实现254
14.3 网络协议和网络设备的框架258
14.3.1 网络系统的核心259
14.3.2 网络协议的实现261
14.3.3 网络设备的框架263
14.4 proc文件系统的框架264
14.4.1 proc文件系统的编程接口264
14.4.2 proc文件系统的实现266
14.5 sys文件系统的框架266
14.5.1 sys文件系统的编程接口266
14.5.2 sys文件系统的实现267
第15章 Linux驱动的要点269
15.1 驱动程序的核心实现269
15.2 设备、驱动和资源273
15.3 中断的处理276
15.4 中断的下半部277
15.4.1 软中断277
15.4.2 软中断之tasklet278
15.4.3 软中断之定时器279
15.5 竞态处理280
15.5.1 自旋锁280
15.5.2 信号量280
15.6 阻塞处理281
15.7 异步操作282
第16章 几个典型的简单驱动283
16.1 设备驱动概述283
16.2 内存设备驱动284
16.2.1 内存设备驱动的公共内容284
16.2.2 空设备286
16.2.3 零设备287
16.2.4 满设备288
16.3 内存块设备驱动288
16.4 回环块设备驱动291
16.5 回环网络设备驱动294
第17章 几个典型的驱动框架和相应的驱动296
17.1 Misc驱动框架296
17.2 帧缓冲驱动框架和具体驱动297
17.2.1 帧缓冲驱动框架297
17.2.2 虚拟帧缓冲驱动300
17.2.3 针对硬件实现的帧缓冲驱动302
17.3 输入-事件驱动框架305
17.3.1 输入-事件驱动框架概述305
17.3.2 针对硬件的事件驱动307
17.4 GPIO驱动框架和具体驱动310
17.4.1 GPIO驱动框架310
17.4.2 GPIO具体硬件的驱动312
17.5 Power Supply驱动框架和具体驱动312
17.5.1 Power Supply驱动框架312
17.5.2 Power Supply驱动313
17.6 TTY驱动框架和驱动314
17.6.1 TTY驱动框架314
17.6.2 伪TTY驱动316
17.6.3 串口TTY和虚拟TTY316
第18章 MTD系统和驱动318
18.1 MTD概述318
18.2 MTD的核心319
18.2.1 MTD的接口部分320
18.2.2 MTD的核心实现部分322
18.3 MTD的设备层322
18.3.1 MTD字符设备322
18.3.2 MTD块设备323
18.4 CFI硬件实现层324
18.4.1 公用部分324
18.4.2 ROM的MTD实现325
18.4.3 RAM的MTD实现325
18.4.4 Nor Flash的MTD实现326
18.5 Nand Flash的硬件实现层326
18.5.1 公用部分326
18.5.2 GPIO的Nand Flash实现327
18.5.3 处理器芯片上的Nand Flash实现330
第19章 USB系统和驱动331
19.1 USB概述331
19.1.1 USB规范331
19.1.2 USB的软件系统333
19.2 Linux的USB主机端支持334
19.2.1 USB主机端的软件结构334
19.2.2 USB主机端的核心部分335
19.2.3 USB驱动的实现337
19.2.2.4 HCI的实现339
19.3 Linux的USB设备端支持340
19.3.1 USB设备端的软件结构340
19.3.2 Gadget的核心部分340
19.3.3 Gadget驱动342
19.3.4 UDC驱动的实现345
第20章 SPI总线和驱动348
20.1 SPI概述348
20.2 SPI总线驱动的框架349
20.3 简单字符设备spidev353
20.4 SPI主控制器的实现355
20.4.1 GPIO实现的SPI主控制器355
20.4.2 S3C64xx的SPI主控制器356
20.5 SPI从设备的驱动358
第21章 I2C总线和驱动361
21.1 I2C概述361
21.1.1 基本概念361
21.1.2 SMBus362
21.2 I2C总线驱动的框架362
21.2.1 I2C核心框架362
21.2.2 I2C总线接口367
21.2.3 I2C设备和驱动368
21.3 具体的I2C主控制器370
21.4 I2C从设备的驱动372
第22章 PCI总线和驱动375
22.1 PCI概述375
22.1.1 PCI的基本结构375
22.1.2 PCI的总线信号377
22.1.3 PCI的总线操作378
22.1.4 PCI的总线配置379
22.1.5 PCI的发展和衍生标准381
22.2 PCI总线的驱动框架381
22.3 PCI设备的驱动384
22.3.1 PCI的桩实现384
22.3.2 网卡的PCI实现385
第23章 音频系统和驱动389
23.1 音频系统概述389
23.2 OSS架构389
23.2.1 OSS系统的结构390
23.2.2 OSS系统的核心391
23.2.3 OSS系统的实现392
23.3 ALSA架构393
23.3.1 ALSA系统的结构393
23.3.2 ALSA系统的核心395
23.3.3 ALSA系统芯片层395
23.3.4 ALSA的用户空间400
第24章 视频系统和驱动403
24.1 视频系统概述403
24.2 Video for Linux系统403
24.2.1 基本结构404
24.2.2 Video for Linux的核心结构405
24.2.3 Video for Linux的其他方面410
24.2.4 Video for Linux驱动的接口413
24.2.5 Video for Linux驱动的实现层417