第一部分  Linux系统及基本操作
     
第1章  Linux概述与系统管理	3
微课视频:135分钟
1.1  嵌入式系统概述	3
1.1.1  嵌入式系统的发展趋势	3
1.1.2  嵌入式系统的特点	4
1.1.3  嵌入式系统的组成	4
1.1.4  典型嵌入式操作系统	5
1.2  嵌入式Linux基础	6
1.2.1  Linux发行版本	7
1.2.2  Linux定制安装	8
1.3  Linux常用命令	13
1.3.1  系统管理相关命令	14
1.3.2  文件管理相关命令	15
1.3.3  备份压缩相关命令	24
1.3.4  网络通信相关命令	26
1.3.5  其他常用命令	30
1.4  系统升级与配置	34
1.5  习题	35
第2章  Linux编程工具及网络配置	36
微课视频:157分钟
2.1  编辑器	36
2.1.1  vi编辑器介绍	36
2.1.2  vi编辑器的各模式功能键	37
2.2  程序编译与调试	41
2.2.1  gcc编译流程	41
2.2.2  gcc编译选项分析	42
2.2.3  gdb程序调试	46
2.3  Makefile	54
2.3.1  Makefile的书写规则	54
2.3.2  Makefile中变量的使用	54
2.4  服务器配置	55
2.4.1  samba服务器	55
2.4.2  NFS服务器	59
2.4.3  TFTP服务器	61
2.5  习题	64
第3章  Linux脚本编程	65
微课视频:59分钟
3.1  常用shell命令	65
3.2  脚本编写基础	66
3.2.1  特殊字符	66
3.2.2  变量和参数	68
3.2.3  退出和退出状态	70
3.3  流程控制	71
3.3.1  条件测试	71
3.3.2  操作符相关主题	73
3.3.3  循环控制	74
3.3.4  测试与分支	77
3.4  习题	80
     
第二部分  Linux系统高级编程
     
第4章  C语言进阶	83
微课视频:344分钟
4.1  C语言的基础知识	83
4.2  数据类型	84
4.2.1  数据类型的分类	84
4.2.2  常量和变量	86
4.2.3  进制	87
4.2.4  字符	88
4.2.5  转义字符与字符集	88
4.2.6  类型转换	88
4.2.7  输入/输出	92
4.2.8  运算符	95
4.3  控制语句	98
4.3.1  分支语句	98
4.3.2  循环语句	101
4.4  数组与字符串	109
4.4.1  数组的定义	109
4.4.2  数组本质探讨	110
4.4.3  一维数组和二维数组	111
4.4.4  字符串	113
4.5  函数	115
4.5.1  函数的定义	115
4.5.2  函数的深度剖析	116
4.5.3  函数的作用剖析	116
4.6  指针	120
4.6.1  指针本质概述	120
4.6.2  连续空间的内存地址	121
4.6.3  指针变量	121
4.6.4  指针数组和指针的指针	123
4.6.5  函数和指针	125
4.7  预处理指令	130
4.7.1  宏定义	130
4.7.2  #include	131
4.7.3  条件编译	132
4.8  习题	133
第5章  文件I/O编程	135
微课视频:74分钟
5.1  文件和目录	135
5.2  目录操作	137
5.3  文件操作	143
5.3.1  基本概念	143
5.3.2  检查文件及确定文件的权限	145
5.3.3  创建文件	146
5.3.4  打开文件	147
5.3.5  关闭文件	149
5.3.6  删除文件	150
5.3.7  文件指针移动	153
5.3.8  其他常用函数	156
5.4  设备控制	159
5.5  Linux时间编程	168
5.5.1  取得目前的时间	168
5.5.2  取得目前时间和日期	168
5.5.3  取得当地目前时间和日期	170
5.5.4  将时间结构数据转换成经过的秒数	170
5.5.5  设置目前时间	171
5.5.6  取得当前时间	171
5.5.7  将时间和日期以ASCII码格式表示	173
5.5.8  将时间和日期以字符串格式表示	173
5.6  习题	177
第6章  进程控制	179
微课视频:53分钟
6.1  进程控制概述	179
6.1.1  进程的定义	179
6.1.2  进程控制模块	180
6.1.3  分配进程描述符	181
6.1.4  进程的创建	181
6.1.5  进程状态	182
6.1.6  进程调度	184
6.1.7  虚拟内存	185
6.1.8  文件锁	186
6.2  进程控制编程	186
6.2.1  启动进程	186
6.2.2  等待进程	193
6.2.3  终止进程	195
6.2.4  守护进程	201
6.3  习题	203
第7章  进程间通信	204
微课视频:77分钟
7.1  进程间通信概述	204
7.2  管道通信	206
7.2.1  无名管道	206
7.2.2  命名管道	209
7.3  消息队列	212
7.3.1  键值	212
7.3.2  创建消息队列	213
7.3.3  发送消息队列	214
7.3.4  接收消息队列	214
7.3.5  控制消息队列	214
7.4  信号	217
7.4.1  信号处理的方式	218
7.4.2  信号操作指令	218
7.5  信号量	226
7.5.1  信号量创建	226
7.5.2  信号量操作	227
7.6  共享内存	233
7.6.1  共享内存创建	233
7.6.2  共享内存的操作	235
7.6.3  共享内存段连接到本进程空间	235
7.6.4  共享内存解除	236
7.7  习题	240
第8章  多线程技术	241
微课视频:30分钟
8.1  Linux多线程概念	241
8.2  Linux线程实现	242
8.2.1  线程创建	242
8.2.2  线程退出	244
8.2.3  线程等待	247
8.2.4  线程标识获取	249
8.2.5  线程清除	250
8.3  线程函数传递及修改线程的属性	254
8.3.1  线程函数传递	254
8.3.2  绑定属性	256
8.3.3  分离属性	257
8.3.4  优先级属性	258
8.3.5  线程栈属性	260
8.3.6  线程的互斥	263
8.3.7  线程的同步	266
8.3.8  信号量	269
8.4  习题	272
第9章  网络编程	273
微课视频:102分钟
9.1  基本概念	273
9.1.1  协议与体系结构	273
9.1.2  数据传输流程	274
9.1.3  常用的命令	275
9.1.4  网络地址	279
9.1.5  IP设置项	280
9.1.6  端口	281
9.2  TCP/IP	281
9.2.1  整体构架概述	281
9.2.2  IP	283
9.2.3  ICMP	285
9.2.4  UDP	285
9.2.5  TCP	286
9.2.6  TCP连接的建立	288
9.3  Socket编程接口介绍	288
9.3.1  建立一个Socket通信	288
9.3.2  对Socket绑定	289
9.3.3  等待连接	290
9.3.4  建立Socket连线	291
9.3.5  发送和接收函数	292
9.3.6  关闭套接字	293
9.4  服务器和客户端的信息函数	294
9.4.1  字节转换函数	294
9.4.2  IP和域名的转换	295
9.4.3  IP地址转换函数	297
9.4.4  服务信息函数	299
9.5  用户数据报发送	299
9.5.1 recvfrom	299
9.5.2 sendto	300
9.6  高级套接字函数	303
9.6.1 recvmsg	303
9.6.2  sendmsg	304
9.7  套接字选项	304
9.7.1  getsockopt()	305
9.7.2  setsockopt()	305
9.7.3  ioctl	306
9.8  服务器模型	306
9.8.1  循环服务器:UDP服务器	306
9.8.2  循环服务器:TCP服务器	307
9.8.3  并发服务器:TCP服务器	311
9.8.4  并发服务器:多路复用I/O	312
9.8.5  并发服务器:UDP服务器	313
9.9  Socket编程应用	316
9.9.1  编写服务器程序	316
9.9.2  编写客户端程序	318
9.9.3  编译测试	319
9.10  习题	320
     
第三部分  嵌入式系统驱动开发
     
第10章  内核开发基础	323
10.1  嵌入式开发环境的搭建	323
10.1.1  交叉编译工具链	324
10.1.2  超级终端软件	326
10.2  Linux内核简介	327
10.2.1  Linux内核	328
10.2.2  Linux内核源代码	330
10.2.3  Linux内核配置及裁剪	332
10.2.4  设备树介绍	335
10.2.5  内核启动简单流程分析	344
10.3  文件系统	347
10.3.1  文件系统分类	347
10.3.2  文件系统主要目录	347
10.3.3  文件启动流程	348
10.4  习题	357
第11章  BootLoader	358
11.1  BootLoader介绍	358
11.1.1  BootLoader的安装和启动	359
11.1.2  BootLoader的操作模式	359
11.1.3  BootLoader与主机之间的通信方式	359
11.1.4  常用BootLoader介绍	360
11.2  u-boot介绍	360
11.2.1  目录结构	361
11.2.2  u-boot的主要功能	365
11.2.3  u-boot的工具	365
11.3  u-boot工作流程	366
11.3.1  _start()函数	366
11.3.2  _main()函数	369
11.3.3  board_init_f()函数	370
11.3.4  relocate_code()函数	370
11.3.5  board_init_r()函数	372
11.4  u-boot编译	376
11.5  习题	377
第12章  Linux驱动开发基础与调试	378
12.1  设备驱动简介	378
12.1.1  设备类型分类	378
12.1.2  内核空间和用户空间	379
12.1.3  驱动程序层次结构	380
12.1.4  驱动程序与外界接口	380
12.2  打印调试	381
12.3  综合案例——驱动程序加载	383
12.3.1  静态加载	383
12.3.2  动态加载	389
12.4  习题	392
第13章  字符设备驱动	393
13.1  字符设备驱动基础	393
13.1.1  关键数据结构	393
13.1.2  设备驱动开发的基本函数	395
13.1.3  设备文件和设备号	400
13.1.4  加载和卸载驱动程序	401
13.2  LED设备驱动程序	402
13.2.1  硬件电路	402
13.2.2  驱动程序分析	403
13.2.3  测试验证	409
13.3  按键设备驱动程序	410
13.3.1  按键模块硬件电路	410
13.3.2  Linux input子系统	411
13.3.3  驱动程序分析	413
13.3.4  测试验证	422
13.4  习题	423
     
第四部分  硬 件 平 台
     
第14章  硬件平台介绍	427
14.1  硬件参数	427
14.2  软件参数	428
14.3  可完成实验	428
参考文献	430
  


  
视 频 名 称
时长/分
视频二维码位置
第1集 VMware安装步骤
4
1.2.2节节首
第2集 Ubuntu操作系统安装
9
1.2.2节节尾
第3集 Linux指令操作1
52
1.3.1节节首
第4集 Linux指令操作2
70
1.3.3节节首
第5集 vi和gcc讲解
71
2.2.1节节首
第6集 gdb调试
22
2.2.3节节首
第7集 samba配置
34
2.4.1节节首
第8集 nfs服务器
14
2.4.2节节首
第9集 TFTP服务器
6
2.4.3节节首
第10集 samba多机实验操作扩展
5
2.5节习题5
第11集 nfs多机实验操作扩展
5
2.5节习题6
第12集 脚本开篇介绍
6
3.1节节首
第13集 脚本编程1
25
3.1节节末
第14集 脚本编程2
28
3.3节节首
第15集 数据类型
54
4.2.1节节首
第16集 输入输出函数
32
4.2.7节节首
第17集 控制语句
54
4.3.1节节首
第18集 数组与字符串
33
4.4.1节节首
第19集 函数
24
4.5.1节节首
第20集 指针概述
35
4.6.1节节首
第21集 指针数组
44
4.6.4节节首
第22集 函数指针
43
4.6.5节节首
第23集 目录操作
16
5.2.1节节首
第24集 文件操作
20
5.3.1节节首
第25集 设备控制
15
5.4.1节节首
第26集 Linux时间编程
23
5.5.1节节首
第27集 进程控制概述
20
6.1.1节节首
第28集 进程控制编程
33
6.2.1节节首
第29集 管道通信
25
7.2.1节节首
第30集 消息队列
10
7.3.1节节首
                                                                                   续表    
视 频 名 称
时长/分
视频二维码位置
第31集 信号
20
7.4.1节节首
第32集 信号量
12
7.5.1节节首
第33集 共享内存
10
7.6.1节节首
第34集 Linux线程实现
15
8.2.1节节首
第35集 线程函数传递
15
8.3.1节节首
第36集 网络编程基本概念
30
9.1.1节节首
第37集 TCP/IP
15
9.2.1节节首
第38集 基本网络函数介绍
15
9.3.1节节首
第39集 服务器和客户端
9
9.4.1节节首
第40集 高级套接字函数
11
9.5.1节节首
第41集 服务器模型
22
9.8.1节节首