当前位置:首页 > 百科

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

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

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

  • 书名 《嵌入式Linux驱动程序和系统开发实例精讲》
  • 作者 罗苑棠 编著
  • ISBN 9787121079368
  • 类别 计算机操作系统类书籍
  • 页数 492页

内容简介

  全书分3篇共19章,第1篇为基础知识篇,介绍了Linux的移植、开发环境平台、Linux程序设计基来自础及常用开发工具,引导读者技术入门。第2篇为Linux驱动程序开发与实例篇,第3篇为Linux系统开发实例篇,实战和商业价值高,利于读者举一反三,快速掌握Linux系统设计的流程,提高实360百科际设计能力。本书适合计算月据吧元滑怕品客本友探机、自动化、电子及通信等相关专业的大学电批风生,以及从事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 嵌入式Linu来自x发展现状 5

  1.2.2 Linux相关的常用术语 6

  1.3 L逐帮inux操作系统的移植 8

  1.3.1 BootL握于是硫批宗oader技术详解 8

  1.3.2 Linux内核基本结构 17

  1.3.3 移植Linux操作系统 28

360百科  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 设备管理 8掌煤呀4

  2.4.1 概述 84

  2.4.2 字符设备与块设备 84

  2.4.3 主设备号和次设备号 87

  2.5 本章总结 88

  第3章 嵌入式Linu能压太x程序设计基础 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 Ma从区宣思由kfile文件书写规则 划解顺慢必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月

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com
标签:

  • 关注微信

相关文章