《嵌入式Linux系统开发——基于ARM处理器通用平台》是2017年清华大学出版社出版的图书,作者是冯新宇。
基本介绍
- 书名:嵌入式Linux系统开发——基于ARM处理器通用平台
- 作者:冯新宇
- ISBN:9787302482192
- 出版时间:2017.11.01
- 印刷日期:2017.09.20
- 印次:1-1
内容介绍
本书系统论述了基于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.1Linux发行版本 4
1.2.2 Linux定製安装 6
1.3Linux常用命令 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.1samba伺服器 34
1.4.2NFS伺服器 38
1.4.3TFTP伺服器 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.1vi介绍 59
3.1.2vi的各模式功能键 60
3.2程式编译与调试 63
3.2.1gcc编译流程 64
3.2.2gcc编译选项分析 64
3.2.3gdb程式调试 69
习题与练习 75
第4章C语言进阶 76
4.1C语言的基本知识 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.5Linux时间编程 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.1Linux多执行绪概念 221
8.2Linux执行绪实现 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.1OSI模型 246
9.1.2常用命令 247
9.1.4IP设定项 248
9.1.5连线埠 248
9.2TCP/IP协定 249
9.2.1整体构架概述 249
9.2.2IP协定 250
9.2.3ICMP协定 251
9.2.4UDP协定 251
9.2.5TCP协定 252
9.2.6TCP连线的建立 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.2IP和域名的转换 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.2send 263
9.7.3 recvmsg 264
9.7.4sendmsg 264
9.7.5 套接字的关闭 265
9.8套接字选项 265
9.8.1getsockopt 265
9.8.2setsockopt 266
9.8.3ioctl 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.2Linux核心简介 282
10.2.1Linux核心 282
10.2.2Linux核心原始码 285
10.3Linux核心配置与编译 285
10.3.1Linux核心配置 286
10.3.2编译核心 288
10.4Linux核心模组 288
10.4.1核心模组简介 288
10.4.2核心模组编译与相关命令 289
10.5档案系统 289
10.5.1档案系统简介 290
10.5.2根档案系统 291
10.5.3Busybox 293
10.5.4Ramdisk档案系统 299
习题与练习 299
第11章BootLoader 300
11.1BootLoader介绍 300
11.1.1BootLoader的安装和启动 300
11.1.2 BootLoader的操作模式 301
11.1.3 BootLoader与主机之间的通信方式 301
11.1.4 常用BootLoader介绍 301
11.2U-boot介绍 302
11.2.1目录结构 302
11.2.2U-boot的主要功能 303
11.2.3U-boot的工具 303
11.3 U-boot工作流程 304
11.3.1stage1 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.2LED设备驱动程式 326
13.2.1LED接口电路 326
13.2.2LED驱动程式 327
13.2.3 载入运行LED驱动程式 329
13.3按键设备驱动程式 330
13.3.1按键模组硬体电路 330
13.3.2按键驱动程式 331
13.3.3载入运行按键驱动程式 335
13.4DS18B20驱动程式设计分析 336
13.4.1DS18B20基础知识 336
13.4.2DS18B20代码设计 337
习题与练习 344
第14章块设备驱动 345
14.1块设备驱动程式开发基础 345
14.1.1块设备的I/O操作特点 345
14.1.2块设备主要数据结构 345
14.1.3块设备的操作 353
14.2IDE硬碟设备驱动 359
14.2.1IDE硬碟设备原理 359
14.2.2S3C2440与IDE接口电路 360
14.2.3block_device_operations及成员函式 361
14.2.4I/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.2CS8900A网卡设备 378
15.2.1CS8900A简介 378
15.2.2CS8900A网卡接口电路 379
15.3CS8900A设备驱动程式 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