注册 登录 进入教材巡展
#
  • #

出版时间:2017-09

出版社:清华大学出版社

以下为《嵌入式Linux系统开发——基于ARM处理器通用平台》的配套数字资源,这些资源在您购买图书后将免费附送给您:
  • 清华大学出版社
  • 9787302482192
  • 1-1
  • 20254
  • 45189534-6
  • 平装
  • 16开
  • 2017-09
  • 工学
  • 计算机科学与技术
  • TP316.85
  • 计算机
  • 本科
内容简介
本书系统论述了基于ARM处理器的嵌入式Linux系统开发的原理、方法与实践。全书共15章,分别介绍了嵌入式Linux系统管理、Linux编程基础、Linux高级编程、Linux内核开发、Linux系统移植和Linux驱动程序开发等。  本书内容吸收了作者在Linux系统教学、科研和实际项目研发中的经验,实践性强。在内容编排上,按照读者学习的一般性规律,结合大量实例论述,能够使读者高效地掌握嵌入式Linux系统的基本原理和应用方法。本书既可以作为高等院校相关专业的教材,也可以作为从事嵌入式系统开发人员的参考用书。
目录
第1章  Linux概述与系统管理    1
1.1  嵌入式系统概述   1
1.1.1 
嵌入式系统的发展历史    1
1.1.2 
嵌入式系统的特点    2
1.1.3 
嵌入式系统的体系结构    2
1.1.4 
典型嵌入式系统介绍         3
1.2  嵌入式Linux基础 4
1.2.1 
Linux发行版本   4
1.2.2 Linux定制安装   6
1.3 
Linux常用命令       18
1.3.1 
系统管理相关命令    18
1.3.2 
文件管理相关命令    19
1.3.3 
备份压缩相关命令    25
1.3.4 
网络通信相关命令    26
1.3.5 
其他常用命令    30
1.4  服务器配置   34
1.4.1 
samba服务器     34
1.4.2 
NFS服务器 38
1.4.3 
TFTP服务器        40
习题与练习     42
第2章  Linux脚本编程        43
2.1 常用shell命令       43
2.2 脚本编写基础        44
2.2.1 特殊字符    44
2.2.2 变量和参数         46
2.2.3 
退出和退出状态         48
2.3  流程控制        49
2.3.1 
条件测试    49
2.3.2 
操作符相关主题         51
2.3.3 
循环控制    53
2.3.4 
测试与分支         55
习题与练习     58
第3章  Linux编程基础        59
3.1  编辑器介绍   59
3.1.1 
vi介绍          59
3.1.2 
vi的各模式功能键     60
3.2  程序编译与调试   63
3.2.1 
gcc编译流程      64
3.2.2 
gcc编译选项分析      64
3.2.3 
gdb程序调试      69
习题与练习     75
第4章  C语言进阶      76
4.1 
C语言的基本知识         76
4.2  数据类型        77
4.2.1 
常量和变量         78
4.2.2 
进制    78
4.2.3 
字符    79
4.2.4 
转义符与字符集         79
4.2.5 
类型转换    79
4.2.6 
输入输出    82
4.2.7 
运算符         83
4.3  控制语句        86
4.3.1 
分支语句    86
4.3.2 
循环语句    88
4.4  数组与字符串        97
4.4.1 
数组的定义         97
4.4.2 
数组本质探讨    98
4.4.3 
一维数组和二维数组         99
4.4.4 
字符串         101
4.5  函数        103
4.5.1 
函数的定义         103
4.5.2 
函数的深度剖析         103
4.5.3 
函数的作用剖析         104
4.6  指针        108
4.6.1 
指针的本质         108
4.6.2 
连续空间的内存地址         108
4.6.3 
指针变量    109
4.6.4 
指针数组和指针的指针    111
4.6.5 
函数和指针         115
4.7  预处理指令   119
4.7.1 
宏定义         120
4.7.2 
#include       121
4.7.3 
条件编译    121
习题与练习     123
第5章  文件I/O编程  124
5.1  文件和目录   124
5.2  目录操作        126
5.3  文件操作        134
5.3.1 
基本概念    134
5.3.2 
检查文件及确定文件的权限    136
5.3.3 
创建文件    137
5.3.4 
打开文件    138
5.3.5 
关闭文件    139
5.3.6 
删除文件    140
5.3.7 
文件指针移动    142
5.3.8 
其他常用函数    145
5.4  设备控制        148
5.5 
Linux时间编程       159
5.5.1 
取得目前的时间         159
5.5.2 
取得目前时间和日期         160
5.5.3 
取得当地目前时间和日期         161
5.5.4 
将时间结构数据转换成经过的秒数         162
5.5.5 
设置目前时间    162
5.5.6 
取得当前时间    163
5.5.7 
将时间和日期以ASCII码格式表示  164
5.5.8 
将时间和日期以字符串格式表示    164
习题与练习     165
第6章  进程控制          166
6.1  进程控制概述        166
6.1.1 
进程的定义         166
6.1.2 
进程控制块         167
6.1.3 
分配进程描述符         168
6.1.4 
进程的创建         168
6.1.5 
进程状态    169
6.1.6 
进程调度    171
6.1.7 
虚拟内存    172
6.1.8 
文件锁         172
6.2  进程控制编程        173
6.2.1 
创建进程    173
6.2.2 
进程终止    181
6.2.3 
守护进程    186
习题与练习     187
第7章  进程间通信     188
7.1  进程间通信概述   188
7.2  管道通信        190
7.2.1 
无名管道    190
7.2.2 
有名管道    192
7.2.3 
标准流管道         195
7.3  消息队列        196
7.3.1 
键值    196
7.3.2 
打开/创建消息队列   197
7.3.3 
发送消息    197
7.3.4 
接收消息    198
7.3.5 
消息控制    198
7.4  信号        201
7.4.1 
信号处理的方式         201
7.4.2 
信号操作指令    201
7.5  信号量   207
7.5.1 
信号量创建         208
7.5.2 
信号量操作         208
7.6  内存共享        214
7.6.1 
共享内存创建    214
7.6.2 
共享内存的操作         216
7.6.3 
共享内存段连接到本进程空间         216
7.6.4 
共享内存解除    217
习题与练习     220
第8章  多线程技术     221
8.1 
Linux多线程概念  221
8.2 
Linux线程实现       222
8.2.1 
线程创建    222
8.2.2 
线程退出    224
8.2.3 
线程等待    226
8.2.4 
线程标识获取    228
8.2.5 
线程清除    229
8.3  线程函数传递及修改线程的属性        232
8.3.1 
线程函数传递    232
8.3.2 
绑定属性    235
8.3.3 
分离属性    236
8.3.4 
优先级属性         237
8.3.5 
线程的互斥         239
8.3.6 
线程的同步         241
8.3.7 
信号量         243
习题与练习     245
第9章  网络编程          246
9.1  基本概念        246
9.1.1 
OSI模型      246
9.1.2 
常用命令    247
9.1.3 
网络地址    247
9.1.4 
IP设置项    248
9.1.5 
端口    248
9.2 
TCP/IP协议    249
9.2.1 
整体构架概述    249
9.2.2 
IP协议         250
9.2.3 
ICMP协议  251
9.2.4 
UDP协议    251
9.2.5 
TCP协议     252
9.2.6 
TCP连接的建立 253
9.3  基本网络函数介绍        253
9.3.1 
建立一个socket通信         253
9.3.2 
对socket定位    254
9.3.3 
等待连接    255
9.3.4 
建立socket连线         255
9.4  服务器和客户端的信息函数        256
9.4.1 
字节转换函数    256
9.4.2 
IP和域名的转换         257
9.4.3 
字符串的IP和32位的IP转换          259
9.4.4 
服务信息函数    260
9.5  完整的读写函数   260
9.5.1 write    260
9.5.2 read     261
9.5.3 
数据的传递         261
9.6  用户数据报发送   262
9.6.1 recvfrom      262
9.6.2 sendto 262
9.7  高级套接字函数   263
9.7.1 recv      263
9.7.2 
send     263
9.7.3 recvmsg       264
9.7.4 
sendmsg      264
9.7.5 套接字的关闭    265
9.8  套接字选项   265
9.8.1 
getsockopt  265
9.8.2 
setsockopt  266
9.8.3 
ioctl      267
9.9  服务器模型   267
9.9.1 
循环服务器:UDP服务器         267
9.9.2 
循环服务器:TCP服务器 268
9.9.3 
并发服务器:TCP服务器 271
9.9.4 
并发服务器:多路复用I/O       272
9.9.5 
并发服务器:UDP服务器         273
习题与练习     276
第10章  内核开发基础       277
10.1 
嵌入式开发环境搭建 277
10.1.1 
交叉编译工具链       278
10.1.2 
终端软件  281
10.2 
Linux内核简介    282
10.2.1 
Linux内核 282
10.2.2 
Linux内核源代码     285
10.3 
Linux内核配置与编译         285
10.3.1 
Linux内核配置 286
10.3.2 
编译内核  288
10.4 
Linux内核模块    288
10.4.1 
内核模块简介  288
10.4.2 
内核模块编译与相关命令       289
10.5 
文件系统      289
10.5.1 
文件系统简介  290
10.5.2 
根文件系统       291
10.5.3 
Busybox     293
10.5.4 
Ramdisk文件系统    299
习题与练习     299
第11章  BootLoader    300
11.1 
BootLoader介绍 300
11.1.1 
BootLoader的安装和启动       300
11.1.2 BootLoader的操作模式  301
11.1.3 BootLoader与主机之间的通信方式       301
11.1.4 常用BootLoader介绍      301
11.2 
U-boot介绍 302
11.2.1 
目录结构  302
11.2.2 
U-boot的主要功能  303
11.2.3 
U-boot的工具  303
11.3 U-boot工作流程 304
11.3.1 
stage1        305
11.3.2 stage2        306
11.4 U-boot编译 308
习题与练习     309
第12章  Linux驱动开发基础与调试 310
12.1 
设备驱动简介      310
12.1.1 
设备类型分类  311
12.1.2 
内核空间和用户空间       312
12.1.3 
驱动程序层次结构  312
12.1.4 
驱动程序与外界接口       313
12.2 
打印调试      315
习题与练习     316
第13章  字符设备驱动       317
13.1 
字符设备驱动程序基础      317
13.1.1 
关键数据结构  317
13.1.2 
设备驱动开发的基本函数       319
13.1.3 
设备文件和设备号  324
13.1.4 
加载和卸载驱动程序       325
13.2 
LED设备驱动程序       326
13.2.1 
LED接口电路   326
13.2.2 
LED驱动程序   327
13.2.3 加载运行LED驱动程序  329
13.3 
按键设备驱动程序      330
13.3.1 
按键模块硬件电路  330
13.3.2 
按键驱动程序  331
13.3.3 
加载运行按键驱动程序  335
13.4 
DS18B20驱动程序设计分析      336
13.4.1 
DS18B20基础知识   336
13.4.2 
DS18B20代码设计   337
习题与练习     344
第14章  块设备驱动   345
14.1 
块设备驱动程序开发基础 345
14.1.1 
块设备的I/O操作特点   345
14.1.2 
块设备主要数据结构       345
14.1.3 
块设备的操作  353
14.2 
IDE硬盘设备驱动       359
14.2.1  IDE硬盘设备原理    359
14.2.2 
S3C2440与IDE接口电路         360
14.2.3 
block_device_operations及成员函数      361
14.2.4 
I/O请求处理    363
14.2.5 
在内核中增加对新系统IDE设备的支持       369
习题与练习     372
第15章  网络设备驱动       373
15.1 
网络设备驱动简介      373
15.1.1 
驱动程序体系结构  373
15.1.2 
主要数据结构  374
15.1.3 
基本函数  376
15.2 
CS8900A网卡设备       378
15.2.1 
CS8900A简介   378
15.2.2 
CS8900A网卡接口电路   379
15.3 
CS8900A设备驱动程序       380
15.3.1 
初始化网络设备       380
15.3.2 
打开网络设备  385
15.3.3 
关闭网络设备  386
15.3.4 
中断处理  387
15.3.5 
发送数据  389
15.3.6 
接收数据  391
习题与练习     392
参考文献         393