种豆资源网

当前位置:首页 > 百科 > 百科综合 / 正文

嵌入式Linux驱动程式和系统开发实例精讲

(2019-10-19 19:34:54) 百科综合
嵌入式Linux驱动程式和系统开发实例精讲

嵌入式Linux驱动程式和系统开发实例精讲

《嵌入式Linux驱动程式和系统开发实例精讲》是2009年1月1日电子工业出版社于出版的图书,作者是罗苑棠。

该书通过大量实例精讲的形式,详细介绍了嵌入式Linux驱动程式与系统开发的方法与流程。

基本介绍

  • 书名:《嵌入式Linux驱动程式和系统开发实例精讲》
  • 作者:罗苑棠 编着
  • ISBN:9787121079368
  • 类别:计算机作业系统类书籍
  • 页数:492页
  • 定价:59.00元(含光碟1张)
  • 出版社:电子工业出版社
  • 出版时间:2009年1月1日
  • 开本:16开
  • 丛书名:电子工程套用精讲系列

内容简介

全书分3篇共19章,第1篇为基础知识篇,介绍了Linux的移植、开发环境平台、Linux程式设计基础及常用开发工具,引导读者技术入门。第2篇为Linux驱动程式开发与实例篇,第3篇为Linux系统开发实例篇,实战和商业价值高,利于读者举一反三,快速掌握Linux系统设计的流程,提高实际设计能力。本书适合计算机、自动化、电子及通信等相关专业的大学生,以及从事Linux开发的科研人员使用。

编辑推荐

工程技术的电子化、集成化和系统化促进了电子工程技术的发展,同时也促进了电子工程技术在社会各行业中的广泛套用,从近年的人才招聘市场来看,电子工程师的人才需求更是一路走高。电子工程师如此紧俏,除需求不断走高,人才供不应求外,另一重要原因则是电子工程师的门槛相对而言比较高,这个高门槛则来自于工程师的“经验”和“实践”!因此,为了满足读者学习和工作需要,解决各种工作中的专业问题,我们紧紧围绕“经验”和“实践”,精心策划组织了此套丛书。
1.丛书範围
现代电子科学技术的一个特点是多学科交叉,因此,工程师应当了解、掌握两门以上的相关学科,知识既精深又广博是优秀的工程师成长为某领域专家的重要标誌。本丛书内容涉及软体开发、研发电子及嵌入式项目开发等,包括单片机、USB接口、ARM、CPLD/FPGA、DSP和移动通信系统等。
2.读者对象
本套书面向各领域的初、中级用户,具体为高校计算机、电子信息、通信工程、自动化控制专业在校大学生,以及从事电子开发和套用行业的科研人员。
3.内容组织形式
本套书紧紧围绕“经验”和“实践”,首先介绍一些相关的基础知识,然后根据不同的模组或套用领域,分篇安排应用程式实例的精讲。基础知识用来为一些初级读者打下一定的知识功底;基础好一点的读者则可以跳过这一部分,直接进入实例的学习。
4.实例特色
在套用实例的安排上,着重突出“套用”和“实用”两个基本原则,安排具有代表性、技术领先性,以及套用广泛的典型实例,让读者学习借鉴。这些实例是从作者多年程式开发项目中挑选出来的,也是经验的归纳与总结。
在套用实例的讲解上,既介绍了设计原理、基本步骤和流程,也穿插了一些经验、技巧与注意事项。特别在程式设计思路上,在决定项目开发的质量和成功与否的细节上,儘可能地用简洁的语言来清晰阐述大众易于理解的概念和思想;同时,程式代码部分做了很详细的中文注释,有利于读者举一反三,快速套用和提高。
5.光碟内容
本套书的光碟中包含了丰富的实例原图档案和程式原始码,读者稍加修改便可套用于自己的工作中或者完成自己的课题(毕业设计),物超所值。读者使用之前,最好先将光碟内容全部複製到电脑硬碟中,以便于以后可以直接调用,而不需要反覆使用光碟,提高操作速度和学习效率。
6.学习指南
对于有一定基础的读者,建议直接从实例部分入手,边看边上机练习,这样印象会比较深,效果更好。基础差一点的读者请先详细学习书中基础部分的理论知识,然后再进行套用实例的学习。在学习中,儘量做到反覆理解和演练,以达到融会贯通、举一反三的功效;特别希望儘量和自己的工作设计联繫起来,以达到“即学即会,学以致用”的最大化境界。
本套丛书主要偏重于实用性,具有很强的工程实践指导性。期望读者在学习中顺利、如意!

图书目录

第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 工程管理器make 97
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 framebuffer 216
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

图书前言

Linux是一套免费使用和自由传播的类UNIX作业系统,这个系统是由世界各地成千上万的程式设计师设计和实现的。它以高效性和灵活性着称,并且能够在PC上实现全部的UNIX特性,具有多任务、多用户的能力。Linux现在受到了广大计算机爱好者的喜爱,原因主要有两个:一是Linux属于自由软体,用户不用支付任何费用就可以获得它及其原始码,并且可以根据自己的需要进行必要的修改;另一个原因是它具有UNIX的全部功能。
随着Linux在我国政府、金融、电信、消费电子等行业的广泛套用,企业对Linux人才的需求也开始持续升温。目前IT业内许多着名大企业都有急剧扩招Linux人才的倾向。巨大的人才需求将使更多的人参与到Linux学习的行列中来。
Linux套用领域比较多,比较常用的有伺服器配置与套用、驱动设备开发、嵌入式系统开发等。目前市场上虽存在一些Linux驱动程式与嵌入式系统设计图书,但大多以介绍基础理论为主,缺乏商业套用案例的实践指导。本书就是为了弥补这种不足而精心组织编写的。
本书内容
全书以理论为辅、实践为主,重点以典型实例的形式,详细介绍嵌入式Linux驱动程式与系统开发的思路、方法与实际套用案例。全书分3篇共19章,具体内容如下:
第1~4章为基础知识篇,主要讲述了嵌入式基础入门、Linux环境开发平台、C程式设计基础、Linux常用开发工具。通过本部分学习,初级读者可以具备一定的Linux程式设计功底;基础好一点的读者则可以跳过这一部分。
第5~10章为Linux驱动程式开发与实例篇,结合6个实际案例阐述了网卡驱动、音效卡驱动、显示卡驱动、USB驱动、快闪记忆体Flash驱动的开发原理技术和套用。
第11~19篇为Linux系统开发实例篇,安排了8个实际套用系统实例,涵盖工业设备、视频处理、指纹识别、网路传输通信、摄像监控、移动校园系统等领域,这些实例具有代表性、技术领先性、套用广泛性及热门性的特点,全部调试通过并进入商品化,是作者多年开发经验的归纳与总结。
本书特色
与同类型书相比,本书主要具备以下一些特色。
(1)整体讲解思路:首先简要讲述了Linux嵌入式系统开发的环境平台、程式基础和常用开发工具,然后是驱动程式与系统开发典型实例的介绍,并穿插了一些经验、技巧与注意事项,符合读者循序渐进的学习过程。
(2)包括GUI、QT图形工具、驱动程式开发及系统实例的介绍,使本书在内容上更加完美、全面。
(3)本书6个驱动程式实例和8个套用系统实例,全部典型实用,涉及Linux开发的诸多热门与核心技术,工程实战价值高。
(4)本书不但提供了程式设计的详细思路与流程,而且对实例的程式代码做了详细注释,利于读者理解和巩固知识点,学会举一反三。
(5)光碟中包含了丰富的实例硬体电路图档案和程式原始码,读者稍加修改,便可套用于自己的工作中或者完成自己的课题设计,物超所值。
 光碟的内容说明 该光碟为实例素材档案,按照章节序号来组织,每章包括电路图、程式代码两部分内容。其中,“电路图”资料夹中的内容为各章的电路图,多用Protel软体製作。
 光碟的使用说明 光碟中的程式需要採用C语言的编译软体打开阅读,也可以使用“UltraEdit”等软体打开阅读或者编辑。
 系统要求 该光碟运行只需一般的PC就可以。系统配置推荐为256MB以上记忆体,1280×1024解析度,32MB以上显存。
本书读者对象为计算机、电子信息及相关专业的在校大学生,还有从事Linux嵌入式开发的初、中级设计人员。
本书主要由罗苑棠编写。另外参加编写的人员还有唐清善、邱宝良、周克足、刘 斌、李亚捷、李永怀、李宁宇、刘伟捷、黄小欢、严剑忠、黄小宽、李彦超、付军鹏、张广安、贾素龙、王艳波、金平、徐春林、谢正义、郑贞平、张小红等。他们在资料收集、整理和技术支持方面做了大量的工作,在此一併向他们表示感谢!
由于时间仓促,再加之作者的水平有限,书中难免存在一些不足之处,欢迎广大读者批评和指正,联繫方式jsj@phei.com.cn。
编 者
2008年11月

标 签

搜索
随机推荐

Powered By 种豆资源网||