首页>参考读物>计算机科学与技术>综合

零基础学嵌入式Linux C编程
作者 : 陈立伟 王桐 杨蕾 等编著
出版日期 : 2010-07-08
ISBN : 978-7-111-30718-1
定价 : 55.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 435
开本 : 16
原书名 : 嵌入式Linux C语言从入门到精通(视频实录)
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书主要内容包括20章:嵌入式系统基础知识、Linux环境下 C语言的开发、构建嵌入式Linux系统、Linux下C编程基础、数据、运算符和表达式、数据的输入和输出、基本语句、数组、函数、动态内存的堆与栈、指针与回调函数的使用、嵌入式LinuxC语言嵌入汇编语言与移植性问题、Linux环境下GUI开发、嵌入式Linux设备驱动开发、文件操作、进程控制、线程控制、嵌入式网络防御体系设计实例、ARM Linux 的图像采集与传输实例、ARM Linux 指纹识别实例等。

图书特色

您想从零开始,系统学习嵌入式Linux C编程吗?您想快速上手,真正嵌入式Linux C 的软件开发吗?您想举一反三,稍事修改就可以移植到自己的系统中吗?
本书给予您学习、实践与移植的全部答案!
本书由嵌入式科研与教学一线的专家联合编著。全书基于嵌入式Linux平台,从基本概念、Linux C的基本语法、Linux 内嵌汇编、Linux移植、GUI开发、驱动开发到图像采集与指纹识别等综合实例,示例与案例结合,理论与实践融汇,娓娓道来,深入浅出,全面阐释了嵌入式Linux C编程的思想、方法与技巧。
为了便于读者快速动手实践,本书为读者精心制作了多媒体视频光盘,涵盖了书中实例文件、开发过程录像文件及常用学习交流网址等。
涵盖内容
n 嵌入式系统基础知识
n Linux环境下C语言的开发
n 构建嵌入式Linux系统
n Linux下C编程基础
n C语言中数据、运算符、表达式
n C语言中数据的输入输出
n C语言中的基本语句和数组
n C语言中函数、编译预处理与动态内存
n C语言中指针、回调函数、结构体与共同体
n 嵌入式LinuxC语言嵌入汇编语言与移植性问题
n 嵌入式Linux环境下GUI开发技术
n 嵌入式Linux设备驱动开发
n 文件操作
n 进程控制
n 线程控制
综合实例
n 嵌入式字符设备驱动开发
n 嵌入式网络设备驱动开发
n 基于GTK+的图形界面编程
n 嵌入式网络防御体系设计实例
n ARM Linux 的图像采集与传输实例
n ARM Linux 指纹识别实例

图书前言

嵌入式系统是现在最热门的计算机应用领域之一,嵌入式Linux是应用最广泛的嵌入式操作系统之一,Linux已经广泛应用于政府、军队、金融等行业中。C语言作为一种当前使用非常广泛的高级程序设计语言,具有简单易用、跨平台、可移植性好的特点。Linux的内核就是使用C语言开发的,它在Linux编程开发中具有重要的作用。
  本书从嵌入式系统基础概念讲起,介绍在Linux系统中使用C语言编程的有关知识,通过本书的学习,读者可以快速学会Linux下C语言编程,掌握其中的编程方法和技巧,从而实现Linux环境下C语言编程的入门和提高。
本书特点
  本书主要有以下特点。
  1.内容细致,结构合理
  本书从嵌入式系统的基础知识开始,按照嵌入式Linux C语言从入门到提高到应用的顺序进行讲解,循序渐进,是从事嵌入式系统设计者的一本难得的培训教材和参考资料。
  2.内容深入浅出,易读易学
  遵循了嵌入式系统开发过程的一般规律,通过本书的学习,读者能够快速地学会Linux下C语言编程,掌握其中的方法和编程技巧,并能从一开始就养成良好的编程习惯,以便于读者低起点、高效率地掌握Linux环境下的编程知识。
  3.技术全面,内容充实
  本书所讲的内容在保证实用的前提下,详细介绍了嵌入式Linux C语言各个方面的知识,包括C语言、Vi、GDB、GCC、Emacs、Linux环境下GUI开发、嵌入式Linux设备驱动开发、文件操作、进程控制、线程控制等相关知识。
  4.实例丰富,注重实战
  本书精选了若干个典型实例,通过这些实践和应用环节,让读者真实地进行设计和操作,给读者以更大的学习与发挥空间。
  5.代码完整,讲解详尽
  书中的每个知识点都有相应的实例代码,并对关键的代码部分进行了注释说明。每段代码的后面都有详细的分析,并给出了代码的运行结果。读者可以参照运行结果阅读源程序,以便于加深理解。
主要内容
  本书分为4篇,共20章,各章的主要内容如下。
  第一篇 开发基础
  第1章:本章从嵌入式系统基础知识入手,介绍嵌入式系统的发展历史、嵌入式系统的特点及其应用、ARM处理器的特点及其应用、嵌入式系统的基本开发流程、嵌入式Linux软件需求分析与架构设计等。
  第2章:介绍Linux下的C语言开发环境、嵌入式Linux C语言开发流程、嵌入式Linux C语言开发工具以及嵌入式Linux的基本使用,嵌入式Linux中程序的运行原理等内容。
  第3章:详细讲解如何构建嵌入式Linux系统,构建嵌入式系统交叉编译环境,掌握Bootloader的作用及其使用,了解Linux内核目录结构、文件系统管理等。
  第二篇 基础编程
  第4章:本章是Linux下C语言编程的基础,首先介绍嵌入式Linux编辑器Vi的基本模式和基本操作,接下来介绍嵌入式Linux编译器GCC的编译流程分析、编译选项分析和使用库函数,然后通过实例介绍嵌入式Linux调试器GDB的的使用、make工程管理器的使用和Emacs综合编辑器的使用。
  第5章:首先介绍C语言程序的基本结构,然后介绍C语言中的一些基本概念,如变量、标识符等,同时详细说明C语言中的几种基本数据类型、算术运算符、关系运算将、逻辑运算符以及利用这些运算符来构成相应表达式的一些规则。
  第6章:介绍C语言字符输入函数getchar()、格式输入函数scanf()、字符输出函数putchar()、格式输出函数printf()的使用,为使用C语言进行程序设计打下基础。
  第7章:介绍结构化程序的三种基本结构:顺序结构、选择结构和循环结构,介绍C语言程序中的语句和复合语句的概念,介绍C语言中的if语句、条件运算符、switch语句,介绍C语言中用于循环控制的while循环语句、do-while循环语句、for循环语句、break语句和continue语句、goto语句、逗号运算符和空操作语句。
  第8章:介绍一维数组的定义和引用、一维数组元素的初始化,二维数组的定义和引用、二维数组元素的初始化以及介绍字符数组、字符串和字符串结束标志。
  第9章:介绍C语言的函数和编译预处理,包括C语言中函数的定义和函数的使用及分类、函数的定义和调用、函数的参数及其传递方式、函数的嵌套调用和递归调用、变量的作用域及其存储类型以及宏定义、文件包含处理和条件编译等编译预处理内容。
  第10章:介绍C语言程序的存储区域,包括代码段、只读数据段、已初始化数据段、未初始化数据段、栈区和堆区,以及C语言中的动态内存。介绍C程序中栈和堆的应用,并且从申请方式、申请后的响应、申请大小、申请效率、存储内容和存储效率上对堆内存和栈内存进行比较。
  第11章:首先介绍指针的概念、变量的指针和指向变量的指针变量、数组的指针和指向数组的指针变量、字符串的指针和指向字符串的指针变量等内容,接下来介绍回调函数的概念与作用、回调函数的语法、回调函数的使用,最后介绍结构体类型变量、结构体数组、指向结构体类型数据的指针、用指针处理链表以及共同体的概念、定义方式、引用方式和数据特点等内容。
  第12章:讨论Linux C语言嵌入汇编语言的编程,以及相应的移植性问题。首先介绍C和汇编的接口、内嵌汇编的语法、memory描述符、GCC对内嵌汇编语言的处理方式等,接下来介绍嵌入式Linux可移植性问题。
  第三篇 高级编程
  第13章:首先介绍嵌入式图形用户界面的基本概念及其特点,然后介绍Linux下的几种主流GUI,包括MiniGUI、Qt/Embedded、MicroWindows、OpenGUI和GTK+。最后介绍基于GTK+的图形界面编程,包括GTK+的安装、GTK+程序的初始化与退出、GTK+预定义的函数和数据类型、回调函数、GTK+的事件处理、使用GTK+实现Hello World、编译GTK+程序、在GTK+中使用控件等内容。
  第14章:介绍Linux设备驱动程序的相关知识,包括Linux设备驱动程序与内核的关系、设备驱动程序与内核的接口、Linux内核驱动原理、内核模块作用等。然后介绍设备驱动程序开发基础,最后介绍Linux操作系统的字符设备、块设备和网络设备3种驱动程序。
  第15章:介绍Linux下的文件结构和文件操作,包括文件的创建、打开、关闭、读写、删除以及文件的属性和目录操作、文件系统的制作等内容。
  第16章:介绍Linux进程的基本概念、Linux进程调度、进程的内存映像,介绍创建进程、创建守护进程、进程退出、获得进程ID、改变进程的优先级、执行新程序、等待进程结束以及进程间通信的主要方法(包括管道、有名管道、消息队列、信号量、共享内存等)。
  第17章:介绍Linux线程的概念、线程和进程的关系、线程分类、创建线程、线程属性、线程等待和终止、私有数据、线程同步以及软件开发时出现的错误码和出错处理相关函数。
  第四篇 综合实例
  第18章:基于嵌入式网络防御体系的设计,使读者通过实例加深对C语言在嵌入式系统中的应用的理解。首先介绍了嵌入式系统设计的基本思路以及流程,使读者对软、硬件开发有一个总体的认识。然后对所要设计的系统进行软件和硬件方面的需求分析。接下来介绍在此实例可能会遇到的Bug,调试过程,交叉编译环境的搭建、μCLinux在嵌入式系统中的移植、程序的编写等。
  第19章:本章针对视频监控系统的实际需求,结合嵌入式技术、图像处理技术和网络技术,设计并实现了一种实时性好、可靠性高、成本低的嵌入式视频采集和传输系统。主要内容包括硬件平台概述、S3C2410介绍、视频采集的软件结构、视频采集的系统程序、视频采集系统应用程序等。
  第20章:介绍在Linux环境下架构嵌入式指纹识别系统,介绍自动指纹识别技术的基本概念、研究意义和应用等内容,介绍指纹特征、指纹提取方法、指纹图像增强的方法、指纹特征的提取、指纹图像匹配、指纹识别系统的性能参数等,介绍系统硬件结构、Linux操作系统移植、系统软件设计等。
读者对象
  嵌入式系统开发人员、嵌入式软件开发与测试人员
  高等院校计算机相关专业学生
本书光盘
  书中全部实例文件
  开发过程录像文件
  常用芯片及元器件
  常用学习交流网址
  使用方法:如果光盘没有自动播放,用左键双击光盘图标进入光盘内容页面,再用左键双击“index”文件即可进入光盘首页。
  本书第1~2章、第5~9章、第15~17章由陈立伟编写,第3~4章、第10~12章由王桐编写,第13~14章、第18~20章由杨蕾编写,参与代码调试和资料整理的老师还有李超、倪杰、李丹仪、宋一兵、管殿柱、赵景波、付本国、张轩、赵景伟、赵秋玲、张忠林、王献红、王臣业、张洪信等。由于水平有限以及时间仓促,书中难免存在错误之处,敬请读者批评指正。
  感谢您选择了本书,希望我们的努力对您的工作和学习有所帮助,也希望您把对本书的意见和建议告诉我们。
  作者联系方式:gdz_zero@126.com
  编辑联系方式:sdl@hzbook.com

作者
2010年5月

上架指导

计算机\程序设计

封底文字

重点突出,层次分明,提供有大量实例,注重理论联系实际,所有代码均在Linux系统上调试通过

作者简介

陈立伟 王桐 杨蕾 等编著:暂无简介

图书目录

前言
第一篇 开发基础
第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  1
0.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

教学资源推荐
作者: [意] 阿尔贝托·博斯凯蒂(Alberto Boschetti) 卢卡·马萨罗(Luca Massaron)著
作者: 张国德 李红 主编
作者: 黄建文 章鸣嬛 编著 孙德文 主审
作者: 李晓堂、詹峰 编著
参考读物推荐
作者: 新摄会摄影 编著
作者: (美) Stanley B. Lippman  著
作者: 王红卫 等编著