书籍详情
嵌入式Linux从入门到精通
作者:陆桂来 编著
出版社:电子工业出版社
出版时间:2015-04-01
ISBN:9787121256882
定价:¥59.80
购买这本书可以去
内容简介
本书共12章,分为四部分,分别是嵌入式系统基础、在ARM处理器系统上移植Linux操作系统、在Linux操作系统上进行软件开发及综合应用。本书既有嵌入式系统硬件结构、ARM处理器基础、操作系统基础等的介绍,也有一步步将Linux操作系统移植到ARM处理器上的过程,还有在嵌入式Linux上进行软件开发的过程,并且提供了大量应用实例。
作者简介
陆桂来,嵌入式开发高级工程师,有着丰富的项目经历,总结了很多学习的经验
目录
第一部分 嵌入式系统基础
第1章 嵌入式系统概述 2
1.1 嵌入式系统的发展 2
1.1.1 单片机时代(20世纪70~80年代) 2
1.1.2 专用处理器时代(20世纪90年代~21世纪) 3
1.1.3 ARM时代(21世纪至今) 4
1.2 嵌入式系统的构成 4
1.2.1 嵌入式系统的层次模型 4
1.2.2 嵌入式系统的处理器 6
1.2.3 嵌入式系统的操作系统 7
1.3 嵌入式系统和通用计算机系统的简单比较 10
1.4 嵌入式系统的开发流程 11
1.4.1 硬件系统设计 11
1.4.2 操作系统移植 11
1.4.3 应用软件设计 11
1.5 嵌入式系统的应用 12
第2章 嵌入式系统的硬件 13
2.1 嵌入式系统的ARM处理器 13
2.1.1 ARM处理器的发展历程 13
2.1.2 ARM处理器的架构、类型和型号及一些专用术语 15
2.1.3 ARM处理器的分类 18
2.2 嵌入式系统的存储器件 25
2.2.1 SDRAM 25
2.2.2 FLASH 28
2.2.3 E2PROM 33
2.2.4 大容量存储系统 34
2.3 嵌入式系统的外围器件 34
2.4 S3C2440处理器和GT2440嵌入式开发板 34
2.4.1 S3C2440处理器的特点和内部资源 34
2.4.2 S3C2440处理器的内部结构和工作模式 39
2.4.3 GT2440嵌入式开发板的硬件资源 46
第3章 嵌入式系统的Linux操作系统 49
3.1 Linux操作系统基础 49
3.1.1 Linux操作系统的发展 49
3.1.2 Linux操作系统的特点 50
3.1.3 Linux操作系统的组成结构 51
3.1.4 Linux操作系统的发行版 53
3.2 Linux操作系统的人机交互方法 54
3.2.1 Linux的图形界面 54
3.2.2 Linux的Shell 54
3.3 Linux操作系统的命令 56
3.3.1 Linux操作系统的命令基础 56
3.3.2 目录操作命令 60
3.3.3 文件操作命令 63
3.3.4 磁盘管理命令 70
3.3.5 用户管理命令 73
3.3.6 网络管理命令 75
3.3.7 其他命令 76
第二部分 在ARM处理器系统上移植Linux操作系统
第4章 移植和使用嵌入式系统的引导软件(Bootloader) 80
4.1 嵌入式系统的软件开发 80
4.1.1 进行裸机开发 80
4.1.2 在嵌入式操作系统下进行开发 87
4.2 嵌入式系统的引导软件基础 87
4.2.1 Bootloader介绍 87
4.2.2 基于Bootloader的嵌入式架构 88
4.2.3 Bootloader的工作模式 89
4.2.4 Bootloader的启动方式 89
4.2.5 Bootloader的启动流程 91
4.2.6 常见的Bootloader 93
4.3 【应用实例】——移植Bootloader软件U-Boot 93
4.3.1 U-Boot的特点和功能 93
4.3.2 U-Boot的源代码结构分析 94
4.3.3 移植U-Boot 100
4.3.4 刻录U-Boot 108
4.4 【应用实例】——使用U-Boot 112
4.4.1 使用超级终端和嵌入式系统进行通信 112
4.4.2 使用DNW下载工具和嵌入式系统进行通信 115
第5章 建立和使用嵌入式系统的交叉编译环境 117
5.1 建立交叉编译环境 117
5.1.1 交叉编译环境的工具链 117
5.1.2 【应用实例】——安装交叉编译环境 118
5.2 使用交叉编译环境 120
5.2.1 使用编辑器vim 120
5.2.2 使用编译工具gcc 124
5.2.3 使用调试工具gdb 126
5.2.4 使用管理工具make 129
5.2.5 使用autotools 131
第6章 在嵌入式系统上移植操作系统和文件系统 136
6.1 Linux内核移植基础 136
6.1.1 Linux的内核组成 136
6.1.2 Linux内核的配置工具 137
6.2 【应用实例】——在嵌入式系统上移植Linux内核 139
6.2.1 配置内核 139
6.2.2 建立依赖关系 142
6.2.3 建立内核 142
6.3 文件系统移植基础 142
6.3.1 Linux文件系统基础 143
6.3.2 文件系统的管理机制 144
6.3.3 嵌入式系统中的常用文件系统介绍 145
6.4 【应用实例】——在嵌入式系统上移植文件系统 148
6.4.1 文件系统映像的制作 148
6.4.2 使用NFS文件系统 151
第三部分 在Linux操作系统上进行软件开发
第7章 在嵌入式Linux操作系统中进行C语言开发 155
7.1 Linux如何执行一个程序 155
7.2 Linux 的程序存储空间 157
7.3 Linux C的main函数 158
7.4 【应用实例】——Hello GT2440 159
7.5 将程序下载到开发板 160
7.5.1 【应用实例】——使用U盘传递数据 160
7.5.2 【应用实例】——通过串口传递数据 160
7.6 Linux操作系统典型库函数介绍及其使用 161
7.6.1 Linux的系统调用和库函数基础 161
7.6.2 【应用实例】——求平方根 162
7.6.3 【应用实例】——产生随机数 163
7.6.4 【应用实例】——获得系统时间和日期 164
7.6.5 【应用实例】——打印单字符 166
7.6.6 【应用实例】——将字符串转换为数字 167
7.6.7 【应用实例】——字符串复制 167
7.6.8 【应用实例】——添加通讯录条目 169
7.6.9 【应用实例】——内存映射 171
7.6.10 【应用实例】——标准输入/输出 172
第8章 在嵌入式Linux中进行文件和流操作 175
8.1 Linux的文件操作基础 175
8.1.1 Linux的文件系统介绍 175
8.1.2 Linux的文件类型 179
8.2 Linux的基础文件操作 182
8.2.1 使用open函数打开文件 182
8.2.2 使用close函数关闭文件 184
8.2.3 使用create函数创建文件 184
8.2.4 使用write函数写文件 185
8.2.5 使用lseek函数对文件进行内部定位 186
8.2.6 使用read函数读文件 188
8.3 文件的高级操作 190
8.3.1 使用stat函数操作文件状态 190
8.3.2 使用utime函数操作文件时间 191
8.3.3 使用dup和dup2函数操作文件的描述符 192
8.3.4 使用rename函数修改文件的名称 193
8.4 Linux的目录文件操作 194
8.4.1 创建和删除目录 194
8.4.2 打开、关闭目录及对目录的读操作 195
8.5 Linux的流操作基础 200
8.5.1 流和文件的关系 200
8.5.2 流的结构和操作流程 201
8.5.3 Linux的标准流 202
8.6 Linux的流操作 203
8.6.1 打开和关闭流 203
8.6.2 设置流的缓冲区 205
8.6.3 使用字符方式对流进行读写 208
8.6.4 使用行方式对流进行读写 210
8.6.5 使用二进制方式对流进行读写 212
8.6.6 流的出错处理 214
8.6.7 流的冲洗 215
8.6.8 在流中进行内部定位 215
第9章 在嵌入式Linux中进行进程和线程操作 219
9.1 Linux的进程基础 219
9.1.1 Linux的进程及其执行过程 219
9.1.2 Linux的进程描述符和标识符 222
9.1.3 【应用实例】——获取进程的用户标识符 224
9.1.4 Linux的进程调度 225
9.1.5 Linux下的进程执行流程 226
9.2 在嵌入式Linux中进行进程操作 227
9.2.1 使用fork和vfork函数创建进程 227
9.2.2 使用exec系列函数执行进程 231
9.2.3 使用exit系列函数退出进程 235
9.2.4 调用wait系列函数销毁进程 236
9.3 Linux的线程基础 240
9.3.1 线程的运行方式 240
9.3.2 线程的标识符 241
9.3.3 用户态线程和核心态线程 241
9.3.4 编译带线程的代码 242
9.4 在嵌入式Linux中进行线程操作 242
9.4.1 调用pthread_create函数创建线程 242
9.4.2 调用pthread_exit函数退出线程 244
9.4.3 调用pthread_join函数阻塞线程 245
9.4.4 调用pthread_cancel函数取消线程 246
9.4.5 调用pthread_cleanup系列函数清理线程环境 247
9.4.6 调用pthread_deatch函数分离线程 249
9.4.7 线程和进程操作的总结和比较 251
第10章 在嵌入式Linux中进行进程间和线程间通信 252
10.1 Linux的进程通信和信号基础 252
10.1.1 Linux的进程通信 252
10.1.2 Linux中的信号机制和信
第1章 嵌入式系统概述 2
1.1 嵌入式系统的发展 2
1.1.1 单片机时代(20世纪70~80年代) 2
1.1.2 专用处理器时代(20世纪90年代~21世纪) 3
1.1.3 ARM时代(21世纪至今) 4
1.2 嵌入式系统的构成 4
1.2.1 嵌入式系统的层次模型 4
1.2.2 嵌入式系统的处理器 6
1.2.3 嵌入式系统的操作系统 7
1.3 嵌入式系统和通用计算机系统的简单比较 10
1.4 嵌入式系统的开发流程 11
1.4.1 硬件系统设计 11
1.4.2 操作系统移植 11
1.4.3 应用软件设计 11
1.5 嵌入式系统的应用 12
第2章 嵌入式系统的硬件 13
2.1 嵌入式系统的ARM处理器 13
2.1.1 ARM处理器的发展历程 13
2.1.2 ARM处理器的架构、类型和型号及一些专用术语 15
2.1.3 ARM处理器的分类 18
2.2 嵌入式系统的存储器件 25
2.2.1 SDRAM 25
2.2.2 FLASH 28
2.2.3 E2PROM 33
2.2.4 大容量存储系统 34
2.3 嵌入式系统的外围器件 34
2.4 S3C2440处理器和GT2440嵌入式开发板 34
2.4.1 S3C2440处理器的特点和内部资源 34
2.4.2 S3C2440处理器的内部结构和工作模式 39
2.4.3 GT2440嵌入式开发板的硬件资源 46
第3章 嵌入式系统的Linux操作系统 49
3.1 Linux操作系统基础 49
3.1.1 Linux操作系统的发展 49
3.1.2 Linux操作系统的特点 50
3.1.3 Linux操作系统的组成结构 51
3.1.4 Linux操作系统的发行版 53
3.2 Linux操作系统的人机交互方法 54
3.2.1 Linux的图形界面 54
3.2.2 Linux的Shell 54
3.3 Linux操作系统的命令 56
3.3.1 Linux操作系统的命令基础 56
3.3.2 目录操作命令 60
3.3.3 文件操作命令 63
3.3.4 磁盘管理命令 70
3.3.5 用户管理命令 73
3.3.6 网络管理命令 75
3.3.7 其他命令 76
第二部分 在ARM处理器系统上移植Linux操作系统
第4章 移植和使用嵌入式系统的引导软件(Bootloader) 80
4.1 嵌入式系统的软件开发 80
4.1.1 进行裸机开发 80
4.1.2 在嵌入式操作系统下进行开发 87
4.2 嵌入式系统的引导软件基础 87
4.2.1 Bootloader介绍 87
4.2.2 基于Bootloader的嵌入式架构 88
4.2.3 Bootloader的工作模式 89
4.2.4 Bootloader的启动方式 89
4.2.5 Bootloader的启动流程 91
4.2.6 常见的Bootloader 93
4.3 【应用实例】——移植Bootloader软件U-Boot 93
4.3.1 U-Boot的特点和功能 93
4.3.2 U-Boot的源代码结构分析 94
4.3.3 移植U-Boot 100
4.3.4 刻录U-Boot 108
4.4 【应用实例】——使用U-Boot 112
4.4.1 使用超级终端和嵌入式系统进行通信 112
4.4.2 使用DNW下载工具和嵌入式系统进行通信 115
第5章 建立和使用嵌入式系统的交叉编译环境 117
5.1 建立交叉编译环境 117
5.1.1 交叉编译环境的工具链 117
5.1.2 【应用实例】——安装交叉编译环境 118
5.2 使用交叉编译环境 120
5.2.1 使用编辑器vim 120
5.2.2 使用编译工具gcc 124
5.2.3 使用调试工具gdb 126
5.2.4 使用管理工具make 129
5.2.5 使用autotools 131
第6章 在嵌入式系统上移植操作系统和文件系统 136
6.1 Linux内核移植基础 136
6.1.1 Linux的内核组成 136
6.1.2 Linux内核的配置工具 137
6.2 【应用实例】——在嵌入式系统上移植Linux内核 139
6.2.1 配置内核 139
6.2.2 建立依赖关系 142
6.2.3 建立内核 142
6.3 文件系统移植基础 142
6.3.1 Linux文件系统基础 143
6.3.2 文件系统的管理机制 144
6.3.3 嵌入式系统中的常用文件系统介绍 145
6.4 【应用实例】——在嵌入式系统上移植文件系统 148
6.4.1 文件系统映像的制作 148
6.4.2 使用NFS文件系统 151
第三部分 在Linux操作系统上进行软件开发
第7章 在嵌入式Linux操作系统中进行C语言开发 155
7.1 Linux如何执行一个程序 155
7.2 Linux 的程序存储空间 157
7.3 Linux C的main函数 158
7.4 【应用实例】——Hello GT2440 159
7.5 将程序下载到开发板 160
7.5.1 【应用实例】——使用U盘传递数据 160
7.5.2 【应用实例】——通过串口传递数据 160
7.6 Linux操作系统典型库函数介绍及其使用 161
7.6.1 Linux的系统调用和库函数基础 161
7.6.2 【应用实例】——求平方根 162
7.6.3 【应用实例】——产生随机数 163
7.6.4 【应用实例】——获得系统时间和日期 164
7.6.5 【应用实例】——打印单字符 166
7.6.6 【应用实例】——将字符串转换为数字 167
7.6.7 【应用实例】——字符串复制 167
7.6.8 【应用实例】——添加通讯录条目 169
7.6.9 【应用实例】——内存映射 171
7.6.10 【应用实例】——标准输入/输出 172
第8章 在嵌入式Linux中进行文件和流操作 175
8.1 Linux的文件操作基础 175
8.1.1 Linux的文件系统介绍 175
8.1.2 Linux的文件类型 179
8.2 Linux的基础文件操作 182
8.2.1 使用open函数打开文件 182
8.2.2 使用close函数关闭文件 184
8.2.3 使用create函数创建文件 184
8.2.4 使用write函数写文件 185
8.2.5 使用lseek函数对文件进行内部定位 186
8.2.6 使用read函数读文件 188
8.3 文件的高级操作 190
8.3.1 使用stat函数操作文件状态 190
8.3.2 使用utime函数操作文件时间 191
8.3.3 使用dup和dup2函数操作文件的描述符 192
8.3.4 使用rename函数修改文件的名称 193
8.4 Linux的目录文件操作 194
8.4.1 创建和删除目录 194
8.4.2 打开、关闭目录及对目录的读操作 195
8.5 Linux的流操作基础 200
8.5.1 流和文件的关系 200
8.5.2 流的结构和操作流程 201
8.5.3 Linux的标准流 202
8.6 Linux的流操作 203
8.6.1 打开和关闭流 203
8.6.2 设置流的缓冲区 205
8.6.3 使用字符方式对流进行读写 208
8.6.4 使用行方式对流进行读写 210
8.6.5 使用二进制方式对流进行读写 212
8.6.6 流的出错处理 214
8.6.7 流的冲洗 215
8.6.8 在流中进行内部定位 215
第9章 在嵌入式Linux中进行进程和线程操作 219
9.1 Linux的进程基础 219
9.1.1 Linux的进程及其执行过程 219
9.1.2 Linux的进程描述符和标识符 222
9.1.3 【应用实例】——获取进程的用户标识符 224
9.1.4 Linux的进程调度 225
9.1.5 Linux下的进程执行流程 226
9.2 在嵌入式Linux中进行进程操作 227
9.2.1 使用fork和vfork函数创建进程 227
9.2.2 使用exec系列函数执行进程 231
9.2.3 使用exit系列函数退出进程 235
9.2.4 调用wait系列函数销毁进程 236
9.3 Linux的线程基础 240
9.3.1 线程的运行方式 240
9.3.2 线程的标识符 241
9.3.3 用户态线程和核心态线程 241
9.3.4 编译带线程的代码 242
9.4 在嵌入式Linux中进行线程操作 242
9.4.1 调用pthread_create函数创建线程 242
9.4.2 调用pthread_exit函数退出线程 244
9.4.3 调用pthread_join函数阻塞线程 245
9.4.4 调用pthread_cancel函数取消线程 246
9.4.5 调用pthread_cleanup系列函数清理线程环境 247
9.4.6 调用pthread_deatch函数分离线程 249
9.4.7 线程和进程操作的总结和比较 251
第10章 在嵌入式Linux中进行进程间和线程间通信 252
10.1 Linux的进程通信和信号基础 252
10.1.1 Linux的进程通信 252
10.1.2 Linux中的信号机制和信
猜您喜欢