图书介绍
数据零基础学嵌入式Linux C编程PDF|Epub|txt|kindle电子书版本网盘下载
![数据零基础学嵌入式Linux C编程](https://www.shukui.net/cover/23/30279037.jpg)
- 陈立伟,王桐,杨蕾等编著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111307181
- 出版时间:2010
- 标注页数:426页
- 文件大小:135MB
- 文件页数:439页
- 主题词:Linux操作系统-程序设计;C语言-程序设计
PDF下载
下载说明
数据零基础学嵌入式Linux C编程PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一篇 开发基础1
第1章 嵌入式系统基础知识1
1.1 嵌入式系统概述1
1.1.1 嵌入式系统的定义1
1.1.2 嵌入式系统的特点1
1.1.3 嵌入式系统的发展历史3
1.1.4 嵌入式系统的应用领域5
1.1.5 嵌入式系统与PC之间的区别6
1.2 嵌入式系统的组成7
1.3 典型的嵌入式操作系统10
1.4 ARM处理器平台介绍11
1.5 嵌入式系统开发14
1.6 嵌入式Linux软件设计16
1.6.1 嵌入式Linux软件需求分析16
1.6.2 嵌入式Linux软件架构设计17
1.7 实践拓展18
1.8 思考与练习18
第2章 Linux环境下C语言的开发19
2.1 C语言简单回顾19
2.2 Linux下的C语言开发环境20
2.3 嵌入式Linux C语言的开发21
2.4 Linux系统22
2.4.1 Linux的安装、启动与关闭25
2.4.2 Linux的基本使用25
2.4.3 Linux的常用命令27
2.5 嵌入式Linux中程序的运行原理34
2.6 实践拓展35
2.7 思考与练习36
第3章 构建嵌入式Linux开发环境37
3.1 嵌入式系统开发环境的构建37
3.2 移植U-Boot40
3.2.1 BootLoader概述40
3.2.2 U-Boot分析与移植48
3.3 嵌入式Linux操作系统内核编译51
3.3.1 内核的配置51
3.3.2 内核编译的过程52
3.4 内核的移植52
3.5 实践拓展53
3.6 思考与练习54
第二篇 基础编程55
第4章 Linux下C编程基础55
4.1 嵌入式Linux C语言编程概述55
4.2 嵌入式Linux编辑器Vi56
4.2.1 Vi的基本模式56
4.2.2 Vi的基本操作57
4.2.3 Vi的使用实例分析59
4.3 嵌入式Linux编译器GCC60
4.3.1 GCC编译流程分析60
4.3.2 GCC编译选项分析63
4.3.3 GCC使用的库函数67
4.4 嵌入式Linux调试器GDB的使用70
4.4.1 GDB使用实例70
4.4.2 GDB的帮助命令74
4.4.3 设置/删除断点75
4.4.4 数据相关命令76
4.4.5 调试运行环境相关命令76
4.4.6 堆栈相关命令77
4.5 make工程管理器77
4.5.1 Makefile文件的构成78
4.5.2 Makefile变量79
4.5.3 make的使用81
4.6 Emacs综合编辑器81
4.6.1 Emacs的启动与退出81
4.6.2 Emacs的基本编辑82
4.6.3 Emacs的C模式83
4.6.4 Emacs的Shell模式84
4.7 实践拓展84
4.8 思考与练习85
第5章 数据、运算符和表达式86
5.1 C程序的结构和语法规则86
5.2 C程序语句概述88
5.3 基本概念89
5.3.1 标识符89
5.3.2 关键字89
5.3.3 常量90
5.3.4 变量90
5.4 基本数据类型90
5.4.1 整型变量及其常量90
5.4.2 浮点型变量及其常量91
5.4.3 字符型变量及其常量92
5.4.4 长整型、短整型和无符号整型94
5.4.5 类型定义typedef95
5.5 算术运算符、赋值运算符及其表达式95
5.5.1 算术运算符和算术表达式96
5.5.2 赋值运算符和赋值表达式99
5.6 关系运算符、逻辑运算符及其表达式100
5.6.1 关系运算符和关系表达式100
5.6.2 逻辑运算符和逻辑表达式101
5.7 逗号运算符和逗号表达式102
5.8 变量的初始化103
5.9 不同类型数据之间的转换103
5.9.1 自动类型转换103
5.9.2 强制类型转换104
5.10 实践拓展104
5.11 思考与练习105
第6章 数据的输入和输出106
6.1 数据的输出106
6.1.1 字符输出函数putchar()106
6.1.2 格式输出函数printf()107
6.2 数据的输入112
6.2.1 字符输入函数getchar()112
6.2.2 格式输入函数scanf()113
6.3 实践拓展116
6.4 思考与练习117
第7章 基本语句118
7.1 结构化程序设计概述118
7.2 语句和复合语句119
7.3 条件语句119
7.3.1 if语句119
7.3.2 条件运算符124
7.3.3 switch语句125
7.4 循环控制126
7.4.1 while循环语句126
7.4.2 do-while循环语句127
7.4.3 for循环语句128
7.4.4 goto语句130
7.4.5 break语句和continue语句131
7.5 实践拓展134
7.6 思考与练习134
第8章 数组136
8.1 一维数组136
8.1.1 一维数组的定义和引用136
8.1.2 一维数组元素的初始化138
8.2 二维数组140
8.2.1 二维数组的定义和引用140
8.2.2 二维数组元素的初始化142
8.3 字符数组和字符串144
8.3.1 字符数组144
8.3.2 字符串和字符串结束标志146
8.3.3 字符串处理函数147
8.4 实践拓展150
8.5 思考与练习151
第9章 函数、编译预处理152
9.1 函数的概念152
9.2 函数的定义和调用153
9.2.1 函数的定义154
9.2.2 函数的调用155
9.3 函数的返回值155
9.4 函数的参数及其传递方式159
9.4.1 非数组作为函数参数159
9.4.2 数组作为函数参数160
9.5 函数的嵌套调用和递归调用162
9.5.1 函数的嵌套调用162
9.5.2 函数的递归调用163
9.6 变量的作用域及其存储类型164
9.6.1 局部变量及其存储类型164
9.6.2 全局变量及其存储类型166
9.7 内部函数和外部函数166
9.8 编译预处理167
9.8.1 宏定义167
9.8.2 文件包含处理169
9.8.3 条件编译171
9.9 实践拓展172
9.10 思考与练习173
第10章 动态内存的堆与栈174
10.1 程序内存区域的使用174
10.1.1 C语言程序的存储区域174
10.1.2 C语言中的动态内存176
10.2 C程序中栈的应用177
10.3 C程序中堆空间的使用180
10.4 堆内存和栈内存使用的比较183
10.5 实践拓展184
10.6 思考与练习184
第11章 指针、回调函数、结构体与共同体185
11.1 指针185
11.1.1 指针的概念185
11.1.2 变量的指针和指向变量的指针变量185
11.1.3 数组的指针和指向数组的指针变量188
11.1.4 字符串的指针和指向字符串的指针变量189
11.1.5 函数的指针和指向函数的指针变量190
11.1.6 指针数组和指向指针的指针192
11.2 回调函数193
11.2.1 回调函数的概念与作用193
11.2.2 回调函数的语法194
11.3 结构体195
11.3.1 结构体类型变量195
11.3.2 结构体数组197
11.3.3 指向结构体类型数据的指针199
11.3.4 用指针处理链表200
11.4 共同体202
11.5 实践拓展205
11.6 思考与练习205
第12章 Linux C语言嵌入汇编语言与移植性问题207
12.1 嵌入汇编语言207
12.1.1 C和汇编的接口207
12.1.2 内嵌汇编的语法207
12.1.3 memory描述符210
12.1.4 GCC对内嵌汇编语言的处理方式211
12.2 嵌入式Linux可移植性问题211
12.2.1 字长和数据类型211
12.2.2 数据对齐212
12.2.3 字节顺序213
12.3 实践拓展214
12.4 思考与练习214
第三篇 高级编程215
第13章 嵌入式Linux环境下GUI开发技术215
13.1 嵌入式图形用户界面概述215
13.2 Linux下几种主流的GUI216
13.2.1 MiniGUI216
13.2.2 Qt/Embedded218
13.2.3 MicroWindows219
13.2.4 OpenGUI219
13.2.5 GTK+219
13.3 基于GTK+的图形界面编程220
13.3.1 GTK+程序的初始化与退出221
13.3.2 GTK+预定义的函数和数据类型222
13.3.3 回调函数223
13.3.4 GTK+的事件处理224
13.3.5 使用GTK+实现“Hello World”程序224
13.3.6 编译GTK+程序226
13.3.7 在GTK+中排列控件226
13.3.8 常用控件228
13.4 实践拓展233
13.5 思考与练习234
第14章 嵌入式Linux设备驱动开发235
14.1 Linux设备驱动程序概述235
14.2 Linux设备驱动程序与内核的关系236
14.3 Linux设备驱动程序开发基础237
14.3.1 内存管理问题237
14.3.2 中断处理239
14.3.3 I/O端口242
14.3.4 DMA处理242
14.3.5 时间流244
14.4 字符设备驱动245
14.4.1 字符设备驱动相关函数和结构体245
14.4.2 字符设备驱动程序实例248
14.5 块设备驱动249
14.5.1 块设备驱动概述249
14.5.2 与块设备相关的结构体250
14.6 网络设备驱动254
14.6.1 网络设备概述254
14.6.2 网络设备的运行机制255
14.6.3 数据包的发送与接收255
14.6.4 网络设备驱动程序的加载256
14.6.5 DM9000网卡驱动程序分析257
14.7 实践拓展260
14.8 思考与练习261
第15章 Linux文件操作262
15.1 Linux文件结构262
15.1.1 Linux文件系统264
15.1.2 Linux文件类型265
15.1.3 Linux文件的访问权限控制266
15.2 文件操作相关函数268
15.2.1 文件的打开与关闭269
15.2.2 文件的读写271
15.2.3 文件的定位273
15.2.4 出错检测275
15.2.5 文件的属性操作276
15.2.6 文件的移动和删除281
15.3 目录操作281
15.3.1 目录的创建和删除281
15.3.2 获取当前目录282
15.3.3 设置工作目录283
15.3.4 获取目录信息283
15.4 制作根文件系统285
15.4.1 Linux根文件系统的制作285
15.4.2 制作根文件系统的镜像287
15.5 实践拓展288
15.6 思考与练习288
第16章 进程289
16.1 Linux进程289
16.1.1 Linux进程概述289
16.1.2 Linux进程调度291
16.1.3 进程的内存映像295
16.2 进程控制296
16.2.1 创建进程296
16.2.2 创建守护进程298
16.2.3 退出进程300
16.2.4 改变进程的优先级302
16.2.5 执行新程序303
16.2.6 等待进程结束303
16.3 进程间通信305
16.3.1 管道306
16.3.2 有名管道307
16.3.3 消息队列308
16.3.4 信号量310
16.3.5 共享内存312
16.4 编程实例——哲学家用餐问题315
16.5 实践拓展318
16.6 思考与练习318
第17章 线程控制319
17.1 Linux线程319
17.1.1 线程和进程的关系319
17.1.2 线程分类320
17.2 创建线程321
17.3 线程属性323
17.4 线程等待和终止327
17.5 私有数据328
17.6 线程同步328
17.6.1 互斥锁329
17.6.2 条件变量332
17.6.3 异步信号333
17.7 出错处理334
17.7.1 错误码334
17.7.2 出错处理相关函数335
17.8 实践拓展337
17.9 思考与练习338
第四篇 综合实例339
第18章 嵌入式网络防御体系设计339
18.1 嵌入式网络防御设计概述339
18.2 需求分析340
18.2.1 软件需求分析340
18.2.2 硬件需求分析341
18.3 Linux操作系统移植341
18.3.1 构建嵌入式Linux开发环境341
18.3.2 BootLoader移植343
18.3.3 将Linux内核移植到S3C2410345
18.3.4 移植YAFFS文件系统348
18.3.5 构建Linux根文件系统350
18.4 系统软件设计353
18.4.1 网络基础知识353
18.4.2 sniff原理355
18.5 做自己的YASON356
18.5.1 事前准备356
18.5.2 YASON之旅366
18.6 实践拓展377
第19章 ARM Linux视频采集与传输379
19.1 硬件平台概述379
19.2 S3C2410处理器379
19.3 系统的软件结构381
19.4 视频采集的系统程序381
19.4.1 JFFS2文件系统的建立381
19.4.2 摄像头驱动的加载382
19.4.3 BootLoader移植383
19.4.4 将Linux内核移植到S3C2410384
19.5 视频采集的应用程序384
19.5.1 视频采集程序384
19.5.2 视频采集关键步骤386
19.5.3 视频编码程序390
19.5.4 数据传输程序391
19.6 实践拓展395
第20章 ARM Linux指纹识别396
20.1 自动指纹识别系统概述396
20.2 指纹识别原理397
20.3 系统硬件结构400
20.4 指纹采集芯片fps200400
20.5 Linux操作系统移植402
20.5.1 BootLoader移植402
20.5.2 将Linux内核移植到S3C2410402
20.5.3 加载指纹芯片驱动程序404
20.5.4 加载文件系统405
20.6 系统软件设计406
20.6.1 系统的初始化406
20.6.2 指纹采集与处理407
20.6.3 指纹识别算法的实现409
20.7 实践拓展414
附录A 嵌入式Linux函数索引415
附录B Linux Shell常用命令索引422
参考文献424