展开全部

主编推荐语

本书既可作为面向计算机工程、软件工程、信息工程等IT相关学科的信息安全实训教材,还可作为信息安全相关人员的培训教材。

内容简介

本书介绍了Linux设备驱动开发理论、框架与实例,详细说明了自旋锁、信号量、完成量、中断顶/底半部、定时器、内存和I/O映射以及异步通知、阻塞I/O、非阻塞I/O等Linux设备驱动理论,以及字符设备、块设备、tty设备、I2c设备、LCD设备、音频设备、USB设备、网络设备、PCI设备等Linux设备驱动架构中各个复杂数据结构和函数的关系,并讲解了Linux驱动开发的大量实例,使你能够独立开发各类Linux设备驱动。

目录

  • 版权信息
  • 赞誉
  • 推荐序一
  • 推荐序二
  • 前言
  • 第1章 Linux设备驱动概述及开发环境构建
  • 1.1 设备驱动的作用
  • 1.2 无操作系统时的设备驱动
  • 1.3 有操作系统时的设备驱动
  • 1.4 Linux设备驱动
  • 1.5 Linux设备驱动的开发环境构建
  • 1.6 设备驱动Hello World:LED驱动
  • 第2章 驱动设计的硬件基础
  • 2.1 处理器
  • 2.2 存储器
  • 2.3 接口与总线
  • 2.4 CPLD和FPGA
  • 2.5 原理图分析
  • 2.6 硬件时序分析
  • 2.7 芯片数据手册阅读方法
  • 2.8 仪器仪表使用
  • 2.9 总结
  • 第3章 Linux内核及内核编程
  • 3.1 Linux内核的发展与演变
  • 3.2 Linux 2.6后的内核特点
  • 3.3 Linux内核的组成
  • 3.4 Linux内核的编译及加载
  • 3.5 Linux下的C编程特点
  • 3.6 工具链
  • 3.7 实验室建设
  • 3.8 串口工具
  • 3.9 总结
  • 第4章 Linux内核模块
  • 4.1 Linux内核模块简介
  • 4.2 Linux内核模块程序结构
  • 4.3 模块加载函数
  • 4.4 模块卸载函数
  • 4.5 模块参数
  • 4.6 导出符号
  • 4.7 模块声明与描述
  • 4.8 模块的使用计数
  • 4.9 模块的编译
  • 4.10 使用模块“绕开”GPL
  • 4.11 总结
  • 第5章 Linux文件系统与设备文件
  • 5.1 Linux文件操作
  • 5.2 Linux文件系统
  • 5.3 devfs
  • 5.4 udev用户空间设备管理
  • 5.5 总结
  • 第6章 字符设备驱动
  • 6.1 Linux字符设备驱动结构
  • 6.2 globalmem虚拟设备实例描述
  • 6.3 globalmem设备驱动
  • 6.4 globalmem驱动在用户空间中的验证
  • 6.5 总结
  • 第7章 Linux设备驱动中的并发控制
  • 7.1 并发与竞态
  • 7.2 编译乱序和执行乱序
  • 7.3 中断屏蔽
  • 7.4 原子操作
  • 7.5 自旋锁
  • 7.6 信号量
  • 7.7 互斥体
  • 7.8 完成量
  • 7.9 增加并发控制后的globalmem的设备驱动
  • 7.10 总结
  • 第8章 Linux设备驱动中的阻塞与非阻塞I/O
  • 8.1 阻塞与非阻塞I/O
  • 8.2 轮询操作
  • 8.3 支持轮询操作的globalfifo驱动
  • 8.4 总结
  • 第9章 Linux设备驱动中的异步通知与异步I/O
  • 9.1 异步通知的概念与作用
  • 9.2 Linux异步通知编程
  • 9.3 支持异步通知的globalfifo驱动
  • 9.4 Linux异步I/O
  • 9.5 总结
  • 第10章 中断与时钟
  • 10.1 中断与定时器
  • 10.2 Linux中断处理程序架构
  • 10.3 Linux中断编程
  • 10.4 中断共享
  • 10.5 内核定时器
  • 10.6 内核延时
  • 10.7 总结
  • 第11章 内存与I/O访问
  • 11.1 CPU与内存、I/O
  • 11.2 Linux内存管理
  • 11.3 内存存取
  • 11.4 设备I/O端口和I/O内存的访问
  • 11.5 I/O内存静态映射
  • 11.6 DMA
  • 11.7 总结
  • 第12章 Linux设备驱动的软件架构思想
  • 12.1 Linux驱动的软件架构
  • 12.2 platform设备驱动
  • 12.3 设备驱动的分层思想
  • 12.4 主机驱动与外设驱动分离的设计思想
  • 12.5 总结
  • 第13章 Linux块设备驱动
  • 13.1 块设备的I/O操作特点
  • 13.2 Linux块设备驱动结构
  • 13.3 Linux块设备驱动的初始化
  • 13.4 块设备的打开与释放
  • 13.5 块设备驱动的ioctl函数
  • 13.6 块设备驱动的I/O请求处理
  • 13.7 实例:vmem_disk驱动
  • 13.8 Linux MMC子系统
  • 13.9 总结
  • 第14章 Linux网络设备驱动
  • 14.1 Linux网络设备驱动的结构
  • 14.2 网络设备驱动的注册与注销
  • 14.3 网络设备的初始化
  • 14.4 网络设备的打开与释放
  • 14.5 数据发送流程
  • 14.6 数据接收流程
  • 14.7 网络连接状态
  • 14.8 参数设置和统计数据
  • 14.9 DM9000网卡设备驱动实例
  • 14.10 总结
  • 第15章 Linux I2C核心、总线与设备驱动
  • 15.1 Linux I2C体系结构
  • 15.2 Linux I2C核心
  • 15.3 Linux I2C适配器驱动
  • 15.4 Linux I2C设备驱动
  • 15.5 Tegra I2C总线驱动实例
  • 15.6 AT24xx EEPROM的I2C设备驱动实例
  • 15.7 总结
  • 第16章 USB主机、设备与Gadget驱动
  • 16.1 Linux USB驱动层次
  • 16.2 USB主机控制器驱动
  • 16.3 USB设备驱动
  • 16.4 USB UDC与Gadget驱动
  • 16.5 USB OTG驱动
  • 16.6 总结
  • 第17章 I2C、SPI、USB驱动架构类比
  • 17.1 I2C、SPI、USB驱动架构
  • 17.2 I2C主机和外设眼里的Linux世界
  • 第18章 ARM Linux设备树
  • 18.1 ARM设备树起源
  • 18.2 设备树的组成和结构
  • 18.3 由设备树引发的BSP和驱动变更
  • 18.4 常用的OF API
  • 18.5 总结
  • 第19章 Linux电源管理的系统架构和驱动
  • 19.1 Linux电源管理的全局架构
  • 19.2 CPUFreq驱动
  • 19.3 CPUIdle驱动
  • 19.4 PowerTop
  • 19.5 Regulator驱动
  • 19.6 OPP
  • 19.7 PM QoS
  • 19.8 CPU热插拔
  • 19.9 挂起到RAM
  • 19.10 运行时的PM
  • 19.11 总结
  • 第20章 Linux芯片级移植及底层驱动
  • 20.1 ARM Linux底层驱动的组成和现状
  • 20.2 内核节拍驱动
  • 20.3 中断控制器驱动
  • 20.4 SMP多核启动以及CPU热插拔驱动
  • 20.5 DEBUG_LL和EARLY_PRINTK的设置
  • 20.6 GPIO驱动
  • 20.7 pinctrl驱动
  • 20.8 时钟驱动
  • 20.9 dmaengine驱动
  • 20.10 总结
  • 第21章 Linux设备驱动的调试
  • 21.1 GDB调试器的用法
  • 21.2 Linux内核调试
  • 21.3 内核打印信息
  • 21.4 DEBUG_LL和EARLY_PRINTK
  • 21.5 使用“/proc”
  • 21.6 Oops
  • 21.7 BUG_ON()和WARN_ON()
  • 21.8 strace
  • 21.9 KGDB
  • 21.10 使用仿真器调试内核
  • 21.11 应用程序调试
  • 21.12 Linux性能监控与调优工具
  • 21.13 总结
展开全部

评分及书评

5.0
3个评分
  • 用户头像
    给这本书评了
    5.0

    Linux 从未停歇前进的脚步。Linus Torvalds,世界上最伟大的程序员之一,Linux 内核的创始人,Git 的缔造者,现在仍然在没日没夜地合并补丁、升级内核。做技术的人,从来没有终南捷径,拼得就是坐冷板凳的傻劲。

      转发
      评论

    出版方

    机械工业出版社有限公司

    机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。