深入理解Linux驱动程序设计

深入理解Linux驱动程序设计
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: , ,
2015-10
版次: 1
ISBN: 9787302401636
定价: 29.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 191页
字数: 285千字
  •   《深入理解Linux驱动程序设计》基于Linux内核3.8.13源代码及相关实例向读者系统而详尽地介绍和分析了Linux设备驱动程序开发框架、原理和方法。全书共分13章,内容包括字符设备、块设备、网络设备、MMC/SD驱动、USB驱动、总线驱动及Flash驱动的开发机制和实例。 本书各章均首先概要介绍各模块的实现原理,随后列举各模块中的关键数据结构,再结合源代码及实例分析介绍,让读者更全面地了解Linux驱动开发。 本书内容丰富,概念和原理讲解细致、深入浅出。其中,有关代码的部分都标有注释以详细介绍功能,书中的设计和分析也配以编程实例帮助理解。 本书适合作为高年级本科生、研究生和从事嵌入式系统开发设计的工程技术人员。 吴国伟 大连理工大学软件学院教授,博士生导师。长期讲授“操作系统”、“嵌入式操作系统”方面的课程,著有畅销图书《嵌入式操作系统应用开发》、《Linux内核分析与高级编程》和《嵌入式系统原理与设计》。
    第1章Linux内核组成和机制
    1.1Linux内核版本与发展
    1.1.1Linux操作系统的诞生
    1.1.2Linux内核版本的变迁
    1.2Linux内核编译
    1.2.1获取内核源码
    1.2.2内核源码树
    1.2.3编译内核
    1.3Linux内核组成
    1.4Linux内核机制
    1.4.1内核启动过程
    1.4.2模块机制
    第2章Linux内核设备管理方式
    2.1devfs设备文件系统
    2.2sysfs文件系统
    2.3udev设备文件系统
    2.4主要数据结构
    2.4.1kobject
    2.4.2ktype
    2.4.3kset
    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.2make及makefile
    3.2.1makefile文件
    3.2.2编写makefile文件
    3.2.3make命令
    3.3调试方法
    3.3.1printk
    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.5BH机制与任务队列机制
    5.6软中断
    5.6.1软中断的实现
    5.6.2软中断的使用
    5.7tasklet
    5.7.1tasklet的实现
    5.7.2tasklet的使用
    5.8工作队列
    5.8.1工作队列的实现
    5.8.2工作队列的使用
    第6章Linux块设备驱动开发
    6.1块设备管理机制
    6.1.1块设备基本概念
    6.1.2块设备在Linux中的结构
    6.2块设备关键数据结构
    6.2.1gendisk数据结构
    6.2.2block_device_operations数据结构
    6.2.3request数据结构
    6.2.4request_queue数据结构
    6.2.5bio数据结构
    6.3块设备驱动设计函数
    6.3.1块设备驱动注册与注销函数
    6.3.2块设备驱动打开与关闭函数
    6.3.3块设备驱动ioctl、read和write函数
    6.3.4块设备驱动的请求函数
    6.4Ramdisk块设备驱动实例
    6.4.1Ramdisk块设备驱动实例分析
    6.4.2Ramdisk块设备驱动实例测试
    第7章Linux网络设备驱动开发
    7.1网络设备
    7.1.1网络系统分层结构
    7.1.2网络设备管理
    7.2NAPI机制
    7.3关键数据结构
    7.4内核提供的网络设备驱动设计函数
    7.4.1alloc_netdev
    7.4.2register_netdev
    7.4.3ether_setup
    7.4.4unregister_netdev
    7.5网络设备驱动开发实例
    7.5.1snull_init_module函数
    7.5.2snull_init函数
    7.5.3相关操作函数
    第8章Linux MMC/SD驱动开发
    8.1MMC子系统基本架构
    8.2关键数据结构
    8.2.1基本数据结构
    8.2.2基本数据结构主要成员及关系
    8.3MMC/CD卡驱动实例
    8.3.1MMC/SD卡设备驱动设计场景
    8.3.2MMC/SD卡设备驱动实例实现
    第9章Linux USB驱动开发
    9.1USB设备管理机制
    9.1.1USB与串口
    9.1.2USB设备属性拓扑结构管理机制
    9.1.3USB设备逻辑组织管理机制
    9.2USB驱动关键数据结构分析
    9.3USB设备驱动函数及其使用说明
    9.3.1客户端驱动管理
    9.3.2USB设备配置和管理
    9.3.3主机控制器的管理
    9.3.4协议控制命令集和数据传输管理
    9.4USB设备驱动开发实例
    9.4.1实例开发场景设计
    9.4.2USB设备驱动开发实例的实现
    9.4.3驱动测试分析
    第10章Linux I2C总线设备驱动
    10.1Linux总线驱动及I2C总线
    10.1.1Linux总线驱动设计过程
    10.1.2I2C总线的工作原理与应用
    10.1.3总线基本操作
    10.2Linux I2C体系结构
    10.2.1Linux的I2C体系结构组成
    10.2.2Linux I2C关键数据结构
    10.3Linux I2C核心
    10.4Linux I2C总线驱动
    10.4.1I2C适配器驱动加载与卸载
    10.4.2I2C总线通信方法
    10.5Linux I2C设备驱动
    10.5.1Linux I2C设备驱动模块加载与卸载
    10.5.2Linux I2C设备驱动的数据传输
    10.5.3Linux i2cdev.c文件分析
    10.6Linux I2C驱动实例——EEPROM
    10.6.1初始化
    10.6.2探测设备
    10.6.3检查适配器的功能
    10.6.4访问设备
    10.6.5其他函数
    第11章Linux PCI总线设备驱动
    11.1PCI总线设备
    11.1.1PCI总线
    11.1.2PCI设备
    11.2PCI设备驱动结构
    11.3PCI设备驱动实例
    11.3.1PCI设备驱动程序基本框架
    11.3.2初始化设备模块
    11.3.3打开设备模块
    11.3.4数据读写和控制信息模块
    11.3.5中断处理模块
    11.3.6释放设备模块
    11.3.7卸载设备模块
    第12章Linux输入设备驱动
    12.1Linux输入子系统结构
    12.2输入设备驱动核心数据结构分析
    12.3Linux输入设备驱动实例
    12.3.1输入设备驱动流程
    12.3.2USB鼠标驱动编写实例
    第13章Linux Flash驱动开发
    13.1Flash存储器
    13.2Linux MTD系统层次结构
    13.3关键数据结构
    13.3.1mtd_info结构体
    13.3.2mtd_table结构体
    13.3.3mtd_part结构体
    13.3.4mtd_partition结构体
    13.3.5map_info结构体
    13.4驱动相关函数
    13.4.1add_mtd_device函数
    13.4.2del_mtd_device函数
    13.4.3add_mtd_partitions函数
    13.4.4del_mtd_partitions函数
    13.4.5do_map_probe函数
    13.5Nor型Flash驱动实例
    13.5.1Nor型Flash驱动设计流程
    13.5.2Nor型Flash驱动详细设计
    13.6Nand型Flash驱动实例
    13.6.1Nand型Flash设备驱动设计步骤
    13.6.2Nand型Flash驱动实现
    参考文献
  • 内容简介:
      《深入理解Linux驱动程序设计》基于Linux内核3.8.13源代码及相关实例向读者系统而详尽地介绍和分析了Linux设备驱动程序开发框架、原理和方法。全书共分13章,内容包括字符设备、块设备、网络设备、MMC/SD驱动、USB驱动、总线驱动及Flash驱动的开发机制和实例。 本书各章均首先概要介绍各模块的实现原理,随后列举各模块中的关键数据结构,再结合源代码及实例分析介绍,让读者更全面地了解Linux驱动开发。 本书内容丰富,概念和原理讲解细致、深入浅出。其中,有关代码的部分都标有注释以详细介绍功能,书中的设计和分析也配以编程实例帮助理解。 本书适合作为高年级本科生、研究生和从事嵌入式系统开发设计的工程技术人员。
  • 作者简介:
    吴国伟 大连理工大学软件学院教授,博士生导师。长期讲授“操作系统”、“嵌入式操作系统”方面的课程,著有畅销图书《嵌入式操作系统应用开发》、《Linux内核分析与高级编程》和《嵌入式系统原理与设计》。
  • 目录:
    第1章Linux内核组成和机制
    1.1Linux内核版本与发展
    1.1.1Linux操作系统的诞生
    1.1.2Linux内核版本的变迁
    1.2Linux内核编译
    1.2.1获取内核源码
    1.2.2内核源码树
    1.2.3编译内核
    1.3Linux内核组成
    1.4Linux内核机制
    1.4.1内核启动过程
    1.4.2模块机制
    第2章Linux内核设备管理方式
    2.1devfs设备文件系统
    2.2sysfs文件系统
    2.3udev设备文件系统
    2.4主要数据结构
    2.4.1kobject
    2.4.2ktype
    2.4.3kset
    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.2make及makefile
    3.2.1makefile文件
    3.2.2编写makefile文件
    3.2.3make命令
    3.3调试方法
    3.3.1printk
    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.5BH机制与任务队列机制
    5.6软中断
    5.6.1软中断的实现
    5.6.2软中断的使用
    5.7tasklet
    5.7.1tasklet的实现
    5.7.2tasklet的使用
    5.8工作队列
    5.8.1工作队列的实现
    5.8.2工作队列的使用
    第6章Linux块设备驱动开发
    6.1块设备管理机制
    6.1.1块设备基本概念
    6.1.2块设备在Linux中的结构
    6.2块设备关键数据结构
    6.2.1gendisk数据结构
    6.2.2block_device_operations数据结构
    6.2.3request数据结构
    6.2.4request_queue数据结构
    6.2.5bio数据结构
    6.3块设备驱动设计函数
    6.3.1块设备驱动注册与注销函数
    6.3.2块设备驱动打开与关闭函数
    6.3.3块设备驱动ioctl、read和write函数
    6.3.4块设备驱动的请求函数
    6.4Ramdisk块设备驱动实例
    6.4.1Ramdisk块设备驱动实例分析
    6.4.2Ramdisk块设备驱动实例测试
    第7章Linux网络设备驱动开发
    7.1网络设备
    7.1.1网络系统分层结构
    7.1.2网络设备管理
    7.2NAPI机制
    7.3关键数据结构
    7.4内核提供的网络设备驱动设计函数
    7.4.1alloc_netdev
    7.4.2register_netdev
    7.4.3ether_setup
    7.4.4unregister_netdev
    7.5网络设备驱动开发实例
    7.5.1snull_init_module函数
    7.5.2snull_init函数
    7.5.3相关操作函数
    第8章Linux MMC/SD驱动开发
    8.1MMC子系统基本架构
    8.2关键数据结构
    8.2.1基本数据结构
    8.2.2基本数据结构主要成员及关系
    8.3MMC/CD卡驱动实例
    8.3.1MMC/SD卡设备驱动设计场景
    8.3.2MMC/SD卡设备驱动实例实现
    第9章Linux USB驱动开发
    9.1USB设备管理机制
    9.1.1USB与串口
    9.1.2USB设备属性拓扑结构管理机制
    9.1.3USB设备逻辑组织管理机制
    9.2USB驱动关键数据结构分析
    9.3USB设备驱动函数及其使用说明
    9.3.1客户端驱动管理
    9.3.2USB设备配置和管理
    9.3.3主机控制器的管理
    9.3.4协议控制命令集和数据传输管理
    9.4USB设备驱动开发实例
    9.4.1实例开发场景设计
    9.4.2USB设备驱动开发实例的实现
    9.4.3驱动测试分析
    第10章Linux I2C总线设备驱动
    10.1Linux总线驱动及I2C总线
    10.1.1Linux总线驱动设计过程
    10.1.2I2C总线的工作原理与应用
    10.1.3总线基本操作
    10.2Linux I2C体系结构
    10.2.1Linux的I2C体系结构组成
    10.2.2Linux I2C关键数据结构
    10.3Linux I2C核心
    10.4Linux I2C总线驱动
    10.4.1I2C适配器驱动加载与卸载
    10.4.2I2C总线通信方法
    10.5Linux I2C设备驱动
    10.5.1Linux I2C设备驱动模块加载与卸载
    10.5.2Linux I2C设备驱动的数据传输
    10.5.3Linux i2cdev.c文件分析
    10.6Linux I2C驱动实例——EEPROM
    10.6.1初始化
    10.6.2探测设备
    10.6.3检查适配器的功能
    10.6.4访问设备
    10.6.5其他函数
    第11章Linux PCI总线设备驱动
    11.1PCI总线设备
    11.1.1PCI总线
    11.1.2PCI设备
    11.2PCI设备驱动结构
    11.3PCI设备驱动实例
    11.3.1PCI设备驱动程序基本框架
    11.3.2初始化设备模块
    11.3.3打开设备模块
    11.3.4数据读写和控制信息模块
    11.3.5中断处理模块
    11.3.6释放设备模块
    11.3.7卸载设备模块
    第12章Linux输入设备驱动
    12.1Linux输入子系统结构
    12.2输入设备驱动核心数据结构分析
    12.3Linux输入设备驱动实例
    12.3.1输入设备驱动流程
    12.3.2USB鼠标驱动编写实例
    第13章Linux Flash驱动开发
    13.1Flash存储器
    13.2Linux MTD系统层次结构
    13.3关键数据结构
    13.3.1mtd_info结构体
    13.3.2mtd_table结构体
    13.3.3mtd_part结构体
    13.3.4mtd_partition结构体
    13.3.5map_info结构体
    13.4驱动相关函数
    13.4.1add_mtd_device函数
    13.4.2del_mtd_device函数
    13.4.3add_mtd_partitions函数
    13.4.4del_mtd_partitions函数
    13.4.5do_map_probe函数
    13.5Nor型Flash驱动实例
    13.5.1Nor型Flash驱动设计流程
    13.5.2Nor型Flash驱动详细设计
    13.6Nand型Flash驱动实例
    13.6.1Nand型Flash设备驱动设计步骤
    13.6.2Nand型Flash驱动实现
    参考文献
查看详情
您可能感兴趣 / 更多
深入理解Linux驱动程序设计
深入理解移动互联网
吴功宜 吴英 编著
深入理解Linux驱动程序设计
深入实施“四个育人”,彰显本科人才培养特色——云南大学本科教育改革与创新优秀论文集
主编唐旭光
深入理解Linux驱动程序设计
深入浅出C语言程序设计(第3版·微课版)
李俊·c;强振平;荣剑;张晴晖;赵毅力;钟丽辉
深入理解Linux驱动程序设计
深入浅出C#(视频教学版)
赵云
深入理解Linux驱动程序设计
深入实践Kotlin元编程
霍丙乾 著
深入理解Linux驱动程序设计
深入北方的小路(布克奖震撼杰作。人生在世,行走于地狱屋顶,凝望花朵。余华力荐“了不起的小说”!)
[澳]理查德·弗兰纳根 著;新经典 出品
深入理解Linux驱动程序设计
深入学习习近平关于科技创新的重要论述
科学技术部编写组 著
深入理解Linux驱动程序设计
深入浅出IoT:完整项目通关实战
[英]吉姆·贝内特(Jim Bennett) 著;柴火创客空间 译;[美]珍·福克斯(Jen Fox);[美]珍·卢珀(Jen Looper)
深入理解Linux驱动程序设计
深入浅出SSD:固态存储核心技术、原理与实战 第2版
SSDFans 胡波 石亮 岑彪
深入理解Linux驱动程序设计
深入地心 少儿科普 新华正版
英国尤斯伯恩出版公司
深入理解Linux驱动程序设计
深入理解FFmpeg
刘歧 赵军 杜金房 赵文杰 宋韶颍
深入理解Linux驱动程序设计
深入人心:数字产品设计的底层逻辑
林婕
系列丛书 / 更多
深入理解Linux驱动程序设计
深入理解移动互联网
吴功宜 吴英 编著
深入理解Linux驱动程序设计
深入实施“四个育人”,彰显本科人才培养特色——云南大学本科教育改革与创新优秀论文集
主编唐旭光
深入理解Linux驱动程序设计
深入浅出C语言程序设计(第3版·微课版)
李俊·c;强振平;荣剑;张晴晖;赵毅力;钟丽辉
深入理解Linux驱动程序设计
深入浅出C#(视频教学版)
赵云
深入理解Linux驱动程序设计
深入实践Kotlin元编程
霍丙乾 著
深入理解Linux驱动程序设计
深入北方的小路(布克奖震撼杰作。人生在世,行走于地狱屋顶,凝望花朵。余华力荐“了不起的小说”!)
[澳]理查德·弗兰纳根 著;新经典 出品
深入理解Linux驱动程序设计
深入学习习近平关于科技创新的重要论述
科学技术部编写组 著
深入理解Linux驱动程序设计
深入浅出IoT:完整项目通关实战
[英]吉姆·贝内特(Jim Bennett) 著;柴火创客空间 译;[美]珍·福克斯(Jen Fox);[美]珍·卢珀(Jen Looper)
深入理解Linux驱动程序设计
深入浅出SSD:固态存储核心技术、原理与实战 第2版
SSDFans 胡波 石亮 岑彪
深入理解Linux驱动程序设计
深入地心 少儿科普 新华正版
英国尤斯伯恩出版公司
深入理解Linux驱动程序设计
深入理解FFmpeg
刘歧 赵军 杜金房 赵文杰 宋韶颍
深入理解Linux驱动程序设计
深入人心:数字产品设计的底层逻辑
林婕
相关图书 / 更多
深入理解Linux驱动程序设计
深入理解移动互联网
吴功宜 吴英 编著
深入理解Linux驱动程序设计
深入实施“四个育人”,彰显本科人才培养特色——云南大学本科教育改革与创新优秀论文集
主编唐旭光
深入理解Linux驱动程序设计
深入浅出C语言程序设计(第3版·微课版)
李俊·c;强振平;荣剑;张晴晖;赵毅力;钟丽辉
深入理解Linux驱动程序设计
深入浅出C#(视频教学版)
赵云
深入理解Linux驱动程序设计
深入实践Kotlin元编程
霍丙乾 著
深入理解Linux驱动程序设计
深入北方的小路(布克奖震撼杰作。人生在世,行走于地狱屋顶,凝望花朵。余华力荐“了不起的小说”!)
[澳]理查德·弗兰纳根 著;新经典 出品
深入理解Linux驱动程序设计
深入学习习近平关于科技创新的重要论述
科学技术部编写组 著
深入理解Linux驱动程序设计
深入浅出IoT:完整项目通关实战
[英]吉姆·贝内特(Jim Bennett) 著;柴火创客空间 译;[美]珍·福克斯(Jen Fox);[美]珍·卢珀(Jen Looper)
深入理解Linux驱动程序设计
深入浅出SSD:固态存储核心技术、原理与实战 第2版
SSDFans 胡波 石亮 岑彪
深入理解Linux驱动程序设计
深入地心 少儿科普 新华正版
英国尤斯伯恩出版公司
深入理解Linux驱动程序设计
深入理解FFmpeg
刘歧 赵军 杜金房 赵文杰 宋韶颍
深入理解Linux驱动程序设计
深入人心:数字产品设计的底层逻辑
林婕