基本信息·出版社:电子工业出版社 ·页码:478 页 ·出版日期:2009年01月 ·ISBN:7121079364/9787121079368 ·条形码:9787121079368 ·版本:第1版 · ...
商家名称 |
信用等级 |
购买信息 |
订购本书 |
|
|
嵌入式Linux驱动程序和系统开发实例精讲(附赠CD光盘1张) |
|
|
|
嵌入式Linux驱动程序和系统开发实例精讲(附赠CD光盘1张) |
|
基本信息·出版社:电子工业出版社
·页码:478 页
·出版日期:2009年01月
·ISBN:7121079364/9787121079368
·条形码:9787121079368
·版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:电子工程应用精讲系列
内容简介 《嵌入式Linux驱动程序和系统开发实例精讲(附盘)》是《嵌入式Linux应用系统开发实例精讲》的改版。全书通过大量实例精讲的形式,详细介绍了嵌入式Linux驱动程序与系统开发的方法与流程。全书分3篇共19章,第1篇为基础知识篇,介绍了Linux的移植、开发环境平台、Linux程序设计基础及常用开发工具,引导读者技术入门。第2篇为Linux驱动程序开发与实例篇,结合6个实际案例阐述了网卡驱动、声卡驱动、显卡驱动、USB驱动、闪存Flash驱动的开发原理技术和应用。第3篇为Linux系统开发实例篇,安排了8个实际应用系统实例,涵盖工业设备、视频处理、指纹识别、网络传输通信、摄像监控、移动校园系统等嵌入式热门领域,实战和商业价值高,利于读者举一反三,快速掌握Linux系统设计的流程,提高实际设计能力。
《嵌入式Linux驱动程序和系统开发实例精讲(附盘)》配有光盘1张,包含了全书所有实例的硬件原理图和程序源代码,方便读者学习和使用。《嵌入式Linux驱动程序和系统开发实例精讲(附盘)》适合计算机、自动化、电子及通信等相关专业的大学生,以及从事Linux开发的科研人员使用。
编辑推荐 围绕实践与经验,注重应用和实用
(1)《嵌入式Linux驱动程序和系统开发实例精讲(附盘)》首先简要讲述了Linux嵌入式系统开发的环境平台、程序基础和常用开发工具,然后是驱动程序与系统开发典型实例的介绍,并穿插了一些经验、技巧与注意事项,符合读者循序渐进的学习过程。
(2)包括GUI、QT图形工具、驱动程序开发及系统实例的介绍,使《嵌入式Linux驱动程序和系统开发实例精讲(附盘)》在内容上更加完美、全面。
(3)《嵌入式Linux驱动程序和系统开发实例精讲(附盘)》6个驱动程序实例和8个应用系统实例,全部典型实用,涉及Linux开发的诸多热门与核心技术,工程实战价值高。
(4)《嵌入式Linux驱动程序和系统开发实例精讲(附盘)》不但提供了程序设计的详细思路与流程,而且对实例的程序代码做了详细注释,利于读者理解和巩固知识点,学会举一反三。
(5)光盘中包含了丰富的实例硬件电路图文件和程序源代码,读者稍加修改,便可应用于自己的工作中或者完成自己的课题设计,物超所值。
目录 第1篇 Linux基础知识
第1章 嵌入式基础入门2
1.1 嵌入式操作系统简介2
1.1.1 嵌入式系统的基本概念2
1.1.2 嵌入式系统的内核介绍3
1.1.3 嵌入式系统的应用领域4
1.2 Linux操作系统概述5
1.2.1 嵌入式Linux发展现状5
1.2.2 Linux相关的常用术语6
1.3 Linux操作系统的移植8
1.3.1 BootLoader技术详解8
1.3.2 Linux内核基本结构17
1.3.3 移植Linux操作系统28
1.4 本章总结32
第2章 Linux系统开发环境平台33
2.1 进程/线程管理33
2.1.1 进程/线程的概念33
2.1.2 进程基本操作37
2.1.3 进程通信与同步49
2.1.4 线程基本操作57
2.1.5 简单的多线程编程59
2.2 文件系统结构和类型62
2.2.1 FAT文件系统62
2.2.2 RAMFS内核文件系统66
2.2.3 JFFS与YAFFS文件系统68
2.2.4 EXT2/EXT3文件系统71
2.2.5 /proc文件系统74
2.2.6 Linux文件操作函数75
2.3 存储管理79
2.3.1 MTD内存管理79
2.3.2 Linux内存管理83
2.4 设备管理84
2.4.1 概述84
2.4.2 字符设备与块设备84
2.4.3 主设备号和次设备号87
2.5 本章总结88
第3章 嵌入式Linux程序设计基础89
3.1 建立嵌入式Linux交叉编译环境89
3.1.1 编译环境概述89
3.1.2 建立交叉编译环境流程92
3.2 工程管理器make97
3.2.1 make概述97
3.2.2 Makfile文件书写规则101
3.3 Linux C/C++程序设计104
3.3.1 C/C++程序结构104
3.3.2 C/C++数据类型107
3.3.3 表达式/语句、函数108
3.3.4 C/C++设计注意事项111
3.4 Linux汇编程序设计117
3.4.1 Linux汇编语法格式118
3.4.2 汇编程序实例119
3.5 Linux Shell语言编程120
3.5.1 Shell环境变量及配置文件121
3.5.2 Shell编程实例123
3.6 Linux Perl语言编程124
3.6.1 Perl基本程序124
3.6.2 Perl变量125
3.6.3 文件句柄和文件操作128
3.6.4 循环结构129
3.6.5 条件结构130
3.7 本章总结131
第4章 Linux常用开发工具132
4.1 GCC编译器132
4.1.1 GCC版本信息132
4.1.2 GCC目录结构132
4.1.3 GCC执行过程133
4.1.4 GCC的基本用法和选项134
4.1.5 g++134
4.2 gdb调试器135
4.2.1 基本用法和选项135
4.2.2 gdb常用命令135
4.3 Linux汇编工具136
4.3.1 汇编器136
4.3.2 链接器136
4.3.3 调试器137
4.3.4 系统调用137
4.3.5 命令行参数137
4.3.6 GCC内联汇编138
4.4 Linux调试工具139
4.4.1 JTAG调试工具139
4.4.2 kgdb内核调试环境144
4.5 Linux图形开发工具149
4.5.1 GUI图形界面开发149
4.5.2 GTK图形开发工具157
4.5.3 QT图形开发工具161
4.6 本章总结167
第2篇 Linux驱动程序开发与实例
第5章 Linux设备驱动基础170
5.1 驱动程序基本概念170
5.1.1 驱动程序与应用程序的区别170
5.1.2 内核版本与编译器的版本依赖171
5.2 设备驱动模块概述171
5.2.1 模块的基本概念171
5.2.2 模块的初始化和退出172
5.2.3 Linux内核模块加载174
5.3 Linux设备驱动结构分析176
5.3.1 内核和用户接口176
5.3.2 inode节点177
5.3.3 File结构178
5.4 常用接口函数介绍181
5.5 驱动程序的调试187
5.6 本章总结189
第6章 网卡驱动程序开发190
6.1 网卡概述190
6.2 RTL8193网卡驱动190
6.2.1 网卡驱动的初始化191
6.2.2 网卡数据收发197
6.3 典型实例——Ralink无线网卡驱动开发198
6.3.1 Ralink无线网卡198
6.3.2 802.11无线通信协议的选用199
6.3.3 设备驱动关键数据结构200
6.3.4 rt2500无线网卡驱动分析202
6.3.5 rt2500程序源代码207
6.4 本章总结215
第7章 显卡驱动程序开发216
7.1 显卡驱动概述216
7.1.1 Linux framebuffer216
7.1.2 帧缓冲设备数据结构220
7.2 典型实例——显卡Framebuffer驱动实现225
7.2.1 Framebuffer驱动框架程序225
7.2.2 NVDIA显卡设备驱动文件231
7.3 本章总结233
第8章 声卡驱动程序开发234
8.1 声卡驱动概述234
8.2 OSS声卡驱动234
8.3 ALSA声卡驱动235
8.4 典型实例——AC97声卡驱动实现237
8.4.1 AC97驱动分析237
8.4.2 Realtek声卡驱动配置241
8.5 本章总结243
第9章 USB驱动程序开发244
9.1 USB设备驱动概述244
9.2 USB驱动设备示例245
9.2.1 Linux驱动程序概述245
9.2.2 驱动程序分析246
9.3 典型实例——单片机的主从通信实例253
9.3.1 主从通信介绍253
9.3.2 USB设备驱动程序254
9.3.3 主机程序源代码260
9.4 本章总结261
第10章 闪存Flash驱动程序开发262
10.1 Flash闪存基础262
10.2 Flash MTD技术264
10.3 典型实例1——NAND Flash驱动实例265
10.3.1 NAND Flash驱动设备265
10.3.2 NAND Flash驱动源代码266
10.4 典型实例2——NOR Flash驱动实例270
10.4.1 芯片驱动与MTD原始设备270
10.4.2 NOR Flash驱动分析270
10.4.3 NOR Flash驱动源代码274
10.5 本章总结276
第3篇 Linux系统开发实例
第11章 嵌入式系统开发的模式与流程278
11.1 嵌入式系统的结构278
11.1.1 嵌入式系统的硬件架构278
11.1.2 嵌入式系统的软件结构278
11.2 嵌入式开发的模式及流程279
11.2.1 嵌入式系统开发模式279
11.2.2 嵌入式系统开发流程280
11.3 本章总结282
第12章 工业温度监控设备开发实例283
12.1 应用环境与硬件设计概要283
12.1.1 嵌入式Linux在工业控制领域的应用283
12.1.2 工控串行通信协议标准286
12.2 相关开发技术——异步串行通信接口288
12.2.1 异步串行通信标准288
12.2.2 设置串口控制信号290
12.2.3 读入串口控制信号291
12.2.4 文件Open()系统调用292
12.3 实例——基于DS1820的实时温度监控系统292
12.3.1 系统基本结构293
12.3.2 系统工作流程296
12.3.3 系统模块源代码实现298
12.4 本章总结306
第13章 实时视频采集系统开发实例307
13.1 应用环境与硬件设计概要307
13.2 相关开发技术308
13.2.1 视频图像压缩技术308
13.2.2 视频采集驱动310
13.2.3 视频驱动加载运行313
13.3 实例——基于MV86S02实时视频采集系统设计313
13.3.1 系统基本结构313
13.3.2 系统工作流程316
13.3.3 系统模块源代码实现319
13.3.4 视频数据比较及分析335
13.4 本章总结336
第14章 指纹识别门禁系统开发实例337
14.1 应用环境与硬件设计概要338
14.2 相关开发技术340
14.2.1 指纹识别原理340
14.2.2 设备驱动编写框架344
14.2.3 指纹芯片驱动346
14.3 实例——基于ARM Linux的指纹识别门禁系统347
14.3.1 系统基本结构347
14.3.2 系统工作流程349
14.3.3 系统模块源代码实现350
14.4 本章总结360
第15章 基于RTL8019的以太网应用系统开发实例361
15.1 以太网应用技术概述361
15.2 相关开发技术362
15.2.1 基于RTL8019的以太网帧传输原理362
15.2.2 RTL8019的初始化363
15.2.3 RTL8019驱动程序的框架364
15.2.4 数据结构和函数365
15.2.5 RTL8109驱动程序的加载368
15.3 实例——基于RTL8019的以太网应用系统设计368
15.3.1 系统基本结构368
15.3.2 系统工作流程371
15.3.3 系统模块源代码实现372
15.3.4 系统调试380
15.4 本章总结381
第16章 无线网络数据传输系统开发实例382
16.1 无线网络传输系统简介382
16.2 相关开发技术383
16.2.1 无线网络接入技术383
16.2.2 基于PCMCIA的无线网卡接口385
16.2.3 PCMCIA驱动程序386
16.3 实例——基于PCMCIA的
16.3 无线网络嵌入式前端系统设计387
16.3.1 系统基本结构387
16.3.2 系统工作流程389
16.3.3 系统模块源代码实现391
16.3.4 系统调试398
16.4 本章总结398
第17章 基于PDIUSBD12的数据传输系统实例399
17.1 USB应用环境与硬件设计概要400
17.2 相关开发技术——USB系统与总线驱动401
17.2.1 USB系统组成401
17.2.2 USB Host总线驱动402
17.2.3 USB Device总线驱动403
17.3 实例——基于PDIUSBD12的数据传输设计406
17.3.1 系统基本结构406
17.3.2 系统工作流程412
17.3.3 系统模块源代码实现412
17.4 本章总结424
第18章 家庭安全监控系统设计实例425
18.1 应用环境与硬件设计概要425
18.1.1 系统功能和组成425
18.1.2 系统模块功能描述426
18.2 系统硬件结构430
18.2.1 Linux客户端系统硬件结构430
18.2.2 传感器系统硬件结构433
18.3 系统软件结构435
18.3.1 Linux客户端系统软件结构435
18.3.2 传感器系统软件结构438
18.4 Linux客户端系统设计实现440
18.4.1 系统数据结构设计440
18.4.2 通信模块设计说明441
18.4.3 显示模块设计说明442
18.4.4 用户管理模块设计说明443
18.4.5 系统设置模块设计说明445
18.4.6 客户端主要代码与注释445
18.5 系统主要模块设计实现447
18.5.1 红外监控模块设计说明447
18.5.2 报警模块(warnning)448
18.5.3 触发监控模块449
18.5.4 管理模块450
18.5.5 主要代码与注释453
18.6 本章总结459
第19章 移动校园系统设计实例460
19.1 应用环境与硬件设计概要460
19.1.1 系统功能和组成460
19.1.2 系统模块功能和软件图460
19.2 系统硬件结构462
19.3 系统软件结构463
19.3.1 软件整体结构463
19.3.2 软件模块结构464
19.3.3 接口设计467
19.3.4 运行过程设计468
19.3.5 系统数据结构设计469
19.3.6 搭建开发环境470
19.4 系统模块程序代码472
19.4.1 主函数472
19.4.2 Syllabus课表模块472
19.4.3 BBS论坛模块474
19.4.4 Map地图模块476
19.4.5 Message系统消息模块478
19.5 本章总结478
……
序言 工程技术的电子化、集成化和系统化促进了电子工程技术的发展,同时也促进了电子工程技术在社会各行业中的广泛应用,从近年的人才招聘市场来看,电子工程师的人才需求更是一路走高。
电子工程师如此紧俏,除需求不断走高,人才供不应求外,另一重要原因则是电子工程师的门槛相对而言比较高,这个高门槛则来自于工程师的“经验”和“实践”!
因此,为了满足读者学习和工作需要,解决各种工作中的专业问题,我们紧紧围绕“经验”和“实践”,精心策划组织了此套丛书。
1.丛书范围
现代电子科学技术的一个特点是多学科交叉,因此,工程师应当了解、掌握两门以上的相关学科,知识既精深又广博是优秀的工程师成长为某领域专家的重要标志。本丛书内容涉及软件开发、研发电子及嵌入式项目开发等,包括单片机、USB接口、ARM、CPLD/FPGA、DSP和移动通信系统等。
2.读者对象
本套书面向各领域的初、中级用户,具体为高校计算机、电子信息、通信工程、自动化控制专业在校大学生,以及从事电子开发和应用行业的科研人员。
3.内容组织形式
本套书紧紧围绕“经验”和“实践”,首先介绍一些相关的基础知识,然后根据不同的模块或应用领域,分篇安排应用程序实例的精讲。基础知识用来为一些初级读者打下一定的知识功底;基础好一点的读者则可以跳过这一部分,直接进入实例的学习。
4.实例特色
在应用实例的安排上,着重突出“应用”和“实用”两个基本原则,安排具有代表性、技术领先性,以及应用广泛的典型实例,让读者学习借鉴。这些实例是从作者多年程序开发项目中挑选出来的,也是经验的归纳与总结。
在应用实例的讲解上,既介绍了设计原理、基本步骤和流程,也穿插了一些经验、技巧与注意事项。特别在程序设计思路上,在决定项目开发的质量和成功与否的细节上,尽可能地用简洁的语言来清晰阐述大众易于理解的概念和思想;同时,程序代码部分做了很详细的中文注释,有利于读者举一反三,快速应用和提高。
5.光盘内容
本套书的光盘中包含了丰富的实例原图文件和程序源代码,读者稍加修改便可应用于自己的工作中或者完成自己的课题(毕业设计),物超所值。读者使用之前,最好先将光盘内容全部复制到电脑硬盘中,以便于以后可以直接调用,而不需要反复使用光盘,提高操作速度和学习效率。
6.学习指南
对于有一定基础的读者,建议直接从实例部分入手,边看边上机练习,这样印象会比较深,效果更好。基础差一点的读者请先详细学习书中基础部分的理论知识,然后再进行应用实例的学习。在学习中,尽量做到反复理解和演练,以达到融会贯通、举一反三的功效;特别希望尽量和自己的工作设计联系起来,以达到“即学即会,学以致用”的最大化境界。
本套丛书主要偏重于实用性,具有很强的工程实践指导性。期望读者在学习中顺利、如意!
文摘 第1篇 Linux基础知识
第1章 嵌入式基础入门
随着微电子技术的飞速发展及后PC时代的到来,嵌入式芯片被广泛运用到消费、汽车、电子、微控制、无线通信、数码产品、网络设备、安全系统等领域。越来越多的公司、研究单位、大专院校,以及个人开始进行嵌入式系统的研究与应用,嵌入式系统设计将是未来相当长一段时间内电子领域研究的热点。下面首先对嵌入式操作系统进行概述。
1.1 嵌入式操作系统简介
随着嵌入式操作系统及嵌入式处理器技术的发展,嵌入式操作系统已经被广泛应用到大量以嵌入式处理器为硬件基础的系统中,常见的嵌入式操作系统有:Linux、Windows CE、Symbian、Palm和gC/OS-II等。
这些操作系统都各有自己强劲的优势,Linux以其开源的经济优势被广泛应用到很多嵌入式系统中,得到了中小型企业的青睐;Windows CE有着全球最大的操作系统厂商Microsoft强大的技术后盾,得到了越来越多的市场份额;Symbian操作系统是全球最大的手机研发制造商NOKIA的手机操作系统,被广泛应用于高端智能手机上。在将来相当长的一段时间内,将存在几个操作系统并存发展、齐头并进的情况,但是,经过一段时间的角逐,常用的嵌入式设备所采用的操作系统将会集中到其中的2~3种。