万本电子书0元读

万本电子书0元读

顶部广告

深入理解Linux驱动程序设计电子书

随着物联网和人工智能的发展,Linux将更多地应用于嵌入式设备中,这对Linux内核中各种驱动的设计和实现也提出了更高的要求。Linux内核版本不断升级,其设备管理方式也发生变化,内核提供的设备管理的关键数据结构和函数也产生变化,尤其是随着新的硬件体系结构变化和新型外围设备的出现,内核设备管理也随之不断变化。本书基于最新的Linux 3.8.13 内核,通过13章(包括Linux内核、驱动开发基础、驱动开发实例)内容,全面深入地论述了Linux设备驱动开发的全方位技术。主要内容如下:

售       价:¥

纸质售价:¥19.80购买纸书

339人正在读 | 0人评论 6.2

作       者:吴国伟、姚琳、毕成龙

出  版  社:清华大学出版社

出版时间:2015-11-01

字       数:59.4万

所属分类: 科技 > 计算机/网络 > 软件系统

温馨提示:此类商品不支持退换货,不支持下载打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
  《深入理解Linux 驱动程序设计》基于Linux内核3.8.13源代码及相关实例向读者系统而详尽地介绍和分析了Linux设备驱动程序开发框架、原理和方法。全书共分13章,内容包括字符设备、块设备、网络设备、MMC/SD驱动、 USB驱动、总线驱动及Flash驱动的开发机制和实例。   本书各章均首先概要介绍各模块的实现原理,随后列举各模块中的关键数据结构,再结合源代码及实例分析介绍,让读者*全面地了解Linux驱动开发。   本书内容丰富,概念和原理讲解细致、深入浅出。其中,有关代码的部分都标有注释以详细介绍功能,书中的设计和分析也配以编程实例帮助理解。   本书适合作为高年级本科生、研究生和从事嵌入式系统开发设计的工程技术人员。 《深理解Linux 驱动程序设计》基于Linux内核3.8.13源代码及相关实例向读者系统而详尽地介绍和分析了Linux设备驱动程序发框架、原理和方法。全书共分13章,内容包括字符设备、块设备、网络设备、MMC/SD驱动、 USB驱动、总线驱动及Flash驱动的发机制和实例。 本书各章均首先概要介绍各模块的实现原理,随后列举各模块中的关键数据结构,再结合源代码及实例分析介绍,让读者*全面地了解Linux驱动发。 本书内容丰富,概念和原理讲解细致、深浅出。其中,有关代码的部分都标有注释以详细介绍功能,书中的设计和分析也配以编程实例帮助理解。 本书适合作为高年级本科生、研究生和从事嵌式系统发设计的工程技术人员。
【推荐语】
随着物联网和人工智能的发展,Linux将更多地应用于嵌式设备中,这对Linux内核中各种驱动的设计和实现也提出了更高的要求。Linux内核版本不断升级,其设备管理方式也发生变化,内核提供的设备管理的关键数据结构和函数也产生变化,尤其是随着新的硬件体系结构变化和新型外围设备的出现,内核设备管理也随之不断变化。本书基于*的Linux 3.8.13 内核,通过13章(包括Linux内核、驱动发基础、驱动发实例)内容,全面深地论述了Linux设备驱动发的全方位技术。主要内容如下: (1) Linux内核设备管理方式 (2)Linux驱动发基础 (3)Linux字符设备驱动发 (4)Linux内核中断机制 (5)Linux块设备驱动发 (6)Linux网络设备驱动发 (7)Linux MMC/SD驱动发 (8)LinuxUSB驱动发 (9)Linux I2C总线设备驱动 (10)Linux PCI总线设备驱动 (11)Linux输设备驱动 (12)Linux Flash驱动发       
【作者】
吴国伟 大连理工大学软件学院教授,博士生导师。长期讲授“操作系统”、“嵌式操作系统”方面的课程,著有畅销图书《嵌式操作系统应用发》、《Linux内核分析与高级编程》和《嵌式系统原理与设计》。
目录展开

内容简介

作者简介

前言PREFACE

第1章 Linux内核组成和机制

1.1 Linux内核版本与发展

1.1.1 Linux操作系统的诞生

1.1.2 Linux内核版本的变迁

1.2 Linux内核编译

1.2.1 获取内核源码

1.2.2 内核源码树

1.2.3 编译内核

1.3 Linux内核组成

1.4 Linux内核机制

1.4.1 内核启动过程

1.4.2 模块机制

第2章 Linux内核设备管理方式

2.1 devfs设备文件系统

2.2 sysfs文件系统

2.3 udev设备文件系统

2.4 主要数据结构

2.4.1 kobject

2.4.2 ktype

2.4.3 kset

2.4.4 三者关系

2.5 热插拔设备管理机制

2.5.1 热插拔事件流程

2.5.2 涉及的模块

2.5.3 关键驱动函数

第3章 Linux驱动开发基础

3.1 同步机制

3.1.1 内核同步机制分类

3.1.2 自旋锁与信号量的比较

3.2 make及makefile

3.2.1 makefile文件

3.2.2 编写makefile文件

3.2.3 make命令

3.3 调试方法

3.3.1 printk

3.3.2 /proc文件系统

3.3.3 调试器及相关工具

第4章 Linux字符设备驱动开发

4.1 关键数据结构

4.2 接口函数部分内核代码分析

4.3 字符设备驱动设计

4.3.1 字符设备驱动设计场景描述

4.3.2 字符设备驱动设计过程

第5章 Linux内核中断机制

5.1 中断

5.2 中断处理

5.2.1 注册中断处理程序

5.2.2 编写中断处理程序

5.3 中断上半部与下半部的对比

5.4 中断下半部

5.5 BH机制与任务队列机制

5.6 软中断

5.6.1 软中断的实现

5.6.2 软中断的使用

5.7 tasklet

5.7.1 tasklet的实现

5.7.2 tasklet的使用

5.8 工作队列

5.8.1 工作队列的实现

5.8.2 工作队列的使用

第6章 Linux块设备驱动开发

6.1 块设备管理机制

6.1.1 块设备基本概念

6.1.2 块设备在Linux中的结构

6.2 块设备关键数据结构

6.2.1 gendisk数据结构

6.2.2 block_device o_perations数据结构

6.2.3 request数据结构

6.2.4 request_queue数据结构

6.2.5 bio数据结构

6.3 块设备驱动设计函数

6.3.1 块设备驱动注册与注销函数

6.3.2 块设备驱动打开与关闭函数

6.3.3 块设备驱动ioctl、read和write函数

6.3.4 块设备驱动的请求函数

6.4 Ramdisk块设备驱动实例

6.4.1 Ramdisk块设备驱动实例分析

6.4.2 Ramdisk块设备驱动实例测试

第7章 Linux网络设备驱动开发

7.1 网络设备

7.1.1 网络系统分层结构

7.1.2 网络设备管理

7.2 NAPI机制

7.3 关键数据结构

7.4 内核提供的网络设备驱动设计函数

7.4.1 alloc_netdev

7.4.2 register_netdev

7.4.3 ether_setup

7.4.4 unregister_netdev

7.5 网络设备驱动开发实例

7.5.1 snull_init_module函数

7.5.2 snull_init函数

7.5.3 相关操作函数

第8章 Linux MMC/SD驱动开发

8.1 MMC子系统基本架构

8.2 关键数据结构

8.2.1 基本数据结构

8.2.2 基本数据结构主要成员及关系

8.3 MMC/CD卡驱动实例

8.3.1 MMC/SD卡设备驱动设计场景

8.3.2 MMC/SD卡设备驱动实例实现

第9章 Linux USB驱动开发

9.1 USB设备管理机制

9.1.1 USB与串口

9.1.2 USB设备属性拓扑结构管理机制

9.1.3 USB设备逻辑组织管理机制

9.2 USB驱动关键数据结构分析

9.3 USB设备驱动函数及其使用说明

9.3.1 客户端驱动管理

9.3.2 USB设备配置和管理

9.3.3 主机控制器的管理

9.3.4 协议控制命令集和数据传输管理

9.4 USB设备驱动开发实例

9.4.1 实例开发场景设计

9.4.2 USB设备驱动开发实例的实现

9.4.3 驱动测试分析

第10章 Linux I2C总线设备驱动

10.1 Linux总线驱动及I2C总线

10.1.1 Linux总线驱动设计过程

10.1.2 I2C总线的工作原理与应用

10.1.3 总线基本操作

10.2 Linux I2C体系结构

10.2.1 Linux的I2C体系结构组成

10.2.2 Linux I2C关键数据结构

10.3 Linux I2C核心

10.4 Linux I2C总线驱动

10.4.1 I2C适配器驱动加载与卸载

10.4.2 I2C总线通信方法

10.5 Linux I2C设备驱动

10.5.1 Linux I2C设备驱动模块加载与卸载

10.5.2 Linux I2C设备驱动的数据传输

10.5.3 Linux i2c-dev.c文件分析

10.6 Linux I2C驱动实例——EEPROM

10.6.1 初始化

10.6.2 探测设备

10.6.3 检查适配器的功能

10.6.4 访问设备

10.6.5 其他函数

第11章 Linux PCI总线设备驱动

11.1 PCI总线设备

11.1.1 PCI总线

11.1.2 PCI设备

11.2 PCI设备驱动结构

11.3 PCI设备驱动实例

11.3.1 PCI设备驱动程序基本框架

11.3.2 初始化设备模块

11.3.3 打开设备模块

11.3.4 数据读写和控制信息模块

11.3.5 中断处理模块

11.3.6 释放设备模块

11.3.7 卸载设备模块

第12章 Linux输入设备驱动

12.1 Linux输入子系统结构

12.2 输入设备驱动核心数据结构分析

12.3 Linux输入设备驱动实例

12.3.1 输入设备驱动流程

12.3.2 USB鼠标驱动编写实例

第13章 Linux Flash驱动开发

13.1 Flash存储器

13.2 Linux MTD系统层次结构

13.3 关键数据结构

13.3.1 mtd_info结构体

13.3.2 mtd_table结构体

13.3.3 mtd_part结构体

13.3.4 mtd_partition结构体

13.3.5 map_info结构体

13.4 驱动相关函数

13.4.1 add_mtd_device函数

13.4.2 del_mtd_device函数

13.4.3 add_mtd_partitions函数

13.4.4 del_mtd_partitions函数

13.4.5 do_map_probe函数

13.5 Nor型Flash驱动实例

13.5.1 Nor型Flash驱动设计流程

13.5.2 Nor型Flash驱动详细设计

13.6 Nand型Flash驱动实例

13.6.1 Nand型Flash设备驱动设计步骤

13.6.2 Nand型Flash驱动实现

参考文献

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部