您现在的位置是:论文诗词网 > 成语词典 > 图书库 >

嵌入式Linux从入门到精通

2021-08-12 23:20图书库 人已围观



嵌入式Linux从入门到精通

基本介绍


作者: 陆桂来 / 梁芳 / 张波
出版社: 电子工业出版社
出版年: 2015-4
页数: 376
定价: 59.80元
装帧: 平装
ISBN: 9787121256882

书本简介


本书共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 SDRAM25
2.2.2 FLASH28
2.2.3 E2PROM33
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的Shell54
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 常见的Bootloader93
4.3 【应用实例】——移植Bootloader软件U-Boot93
4.3.1 U-Boot的特点和功能93
4.3.2 U-Boot的源代码结构分析94
4.3.3 移植U-Boot100
4.3.4 刻录U-Boot108
4.4 【应用实例】——使用U-Boot112
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 使用编辑器vim120
5.2.2 使用编译工具gcc124
5.2.3 使用调试工具gdb126
5.2.4 使用管理工具make129
5.2.5 使用autotools131
第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 GT2440159
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中的信号机制和信号253
10.1.3 信号的工作方式255
10.1.4 Linux下的信号说明256
10.1.5 调用signal系列函数来注册信号259
10.2 Linux中信号的基础操作262
10.2.1 使用kill函数和raise函数发送信号262
10.2.2 使用alarm进行信号的定时操作266
10.2.3 使用setitimer函数进行精确定时267
10.2.4 使用abort发送进程退出信号269
10.3 Linux的管道和进程通信269
10.3.1 管道基础269
10.3.2 管道的实现方法270
10.3.3 管道读写操作规则271
10.3.4 管道的特点272
10.4 在Linux中进行管道操作272
10.4.1 使用pipe函数来创建管道273
10.4.2 【应用实例】——父子进程使用管道通信273
10.4.3 【应用实例】——兄弟进程使用管道通信274
10.4.4 管道的高级操作276
10.5 Linux的命名管道基础277
10.5.1 在Linux中使用命名管道278
10.5.2 命名管道的常用工作方式279
10.5.3 命名管道的打开和读写281
10.6 Linux的命名管道操作282
10.6.1 使用mkfifo函数来创建命名管道282
10.6.2 【应用实例】——命名管道的读写283
10.7 Linux中的线程同步操作285
10.7.1 使用互斥锁实现线程同步285
10.7.2 使用条件变量实现线程同步288
第11章 在嵌入式Linux中进行网络编程291
11.1 Linux的网络通信模型291
11.1.1 OSI网络模型291
11.1.2 TCP/IP协议和其网络模型292
11.1.3 客户端/服务器结构295
11.1.4 Linux的端口和套接字295
11.1.5 Linux套接字的结构定义297
11.2 在嵌入式Linux中进行网络基础操作298
11.2.1 使用字节顺序转换函数族来转换地址模式298
11.2.2 使用字节操作函数族操作多字节数据299
11.2.3 使用IP地址转换函数族转换IP地址300
11.2.4 使用域名转换函数族转换域名302
11.3 在嵌入式Linux中操作网络套接字304
11.3.1 使用socket函数创建套接字304
11.3.2 使用bind函数绑定套接字305
11.3.3 使用connect函数建立连接307
11.3.4 使用listen切换套接字为倾听模式309
11.3.5 使用accept函数接收连接311
11.3.6 使用close函数关闭连接311
11.3.7 使用read和write函数读写套接字312
11.3.8 使用getsockname和getpeername函数获取套接字地址312
11.3.9 使用send和recv函数发送和接收数据313
11.4 在嵌入式Linux中进行TCP编程314
11.4.1 TCP基础315
11.4.2 TCP的工作流程316
11.4.3 【应用实例】——使用TCP协议发送当前系统时间317
11.5 在嵌入式Linux中进行UDP编程320
11.5.1 UDP基础320
11.5.2 UDP的工作流程321
11.5.3 【应用实例】——使用UDP协议发送当前系统时间322
第四部分 综 合 应 用
第12章 嵌入式Linux综合应用实例327
12.1 【应用实例】——定时创建文件写入数据327
12.1.1 实例的需求说明和分析327
12.1.2 实例的基础设计328
12.1.3 实例的综合333
12.2 【应用实例】——串口双机通信335
12.2.1 实例的需求说明和分析335
12.2.2 实例的基础设计335
12.2.3 实例的综合346
12.3 【应用实例】——设计守护进程348
12.3.1 实例的需求说明和分析348
12.3.2 实例的基础设计349
12.3.3 实例的综合350
12.4 【应用实例】——设计生产者-消费者模型351
12.4.1 实例的需求说明和分析351
12.4.2 实例的基础设计352
12.5 【应用实例】——从网络服务器获取当前时间信息356
12.5.1 实例的需求说明和分析356
12.5.2 实例的基础设计356
12.5.3 实例的综合357

嵌入式Linux从入门到精通图书介绍 : 直接购买

站点信息

  • 文章统计111294篇文章