0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

米尔科技LINUX设备驱动程序教程

米尔科技 来源:米尔科技 作者:米尔科技 2019-11-25 09:10 次阅读

内容简介

本书是经典著作《Linux设备驱动程序》的第三版。如果您希望在Linux操作系统上支持计算机外部设备,或者在Linux上运行新的硬件,或者只是希望一般性地了解Linux内核的编程,就一定要阅读本书。本书描述了如何针对各种设备编写驱动程序,而在过去,这些内容仅仅以口头形式交流,或者零星出现在神秘的代码注释中。
本书的作者均是Linux社区的领导者。JonathanCorbet虽不是专职的内核代码贡献者,但他是备受关注的LWN.net新闻及信息网站的执行编辑。AlessandroRubini是一名Linux代码贡献者,也是活跃的意大利Linux社区的灵魂人物。GregKroah-Hartman是目前内核中USB、PCI和驱动程序核心子系统(本书均有讲述)的维护者。
本书的这个版本已针对Linux内核的2.6.10版本彻底更新过了。内核的这个版本针对常见任务完成了合理化设计及相应的简化,如即插即用、利用sysfs文件系统和用户空间交互,以及标准总线上的多设备管理等等。
要阅读并理解本书,您不必首先成为内核黑客;只要您理解C语言并具有Unix系统调用的一些背景知识即可。您将学到如何为字符设备、块设备和网络接口编写驱动程序。为此,本书提供了完整的示例程序,您不需要特殊的硬件即可编译和运行这些示例程序。本书还在单独的章节中讲述了PCI、USB和tty(终端)子系统。对期望了解操作系统内部工作原理的读者来讲,本书也深入阐述了地址空间、异步事件以及I/O等方面的内容。
本书涵盖的主题包括:
●完整的字符、块、tty(终端)及网络驱动程序
●驱动程序的调试
●中断
●计时问题
●并发、锁定和对称多处理器系统(SMP)
●内存管理和DMA
●驱动程序模型和sysfs
●热插拔设备

●对常见总线的描述,包括SCSI、PCI、USB和IEEE1394(火线)。

目录

前言
第一章设备驱动程序简介
设备驱动程序的作用
内核功能划分
设备和模块的分类
安全问题
版本编号
许可证条款
加入内核开发社团

本书概要

第二章构造和运行模块
设置测试系统
HelloWorld模块
核心模块与应用程序的对比
编译和装载
内核符号表
预备知识
初始化和关闭
模块参数
在用户空间编写驱动程序
快速参考


第三章字符设备驱动程序
scull的设计
主设备号和次设备号
一些重要的数据结构
字符设备的注册
open和release
scull的内存使用
read和write
试试新设备
快速参考


第四章调试技术
内核中的调试支持
通过打印调试
通过查询调试
通过监视调试
调试系统故障
调试器和相关工具

第五章并发和竞态
scull的缺陷
并发及其管理
信号量和互斥体
completion
自旋锁
锁陷阱
除了锁之外的办法
快速参考

第六章高级字符驱动程序操作
ioctl
阻塞型I/O
poll和select
异步通知
定位设备
设备文件的访问控制
快速参考

第七章时间、延迟及延缓操作
度量时间差
获取当前时间
延迟执行
内核定时器
tasklet
工作队列
快速参考

第八章分配内存
kmalloc函数的内幕
后备高速缓存
get_free_page和相关函数
vmalloc及其辅助函数
per-CPU变量
获取大的缓冲区
快速参考

第九章与硬件通信
I/O端口和I/O内存
使用I/O端口
I/O端口示例
使用I/O内存
快速参考

第十章中断处理
准备并口
安装中断处理例程
实现中断处理例程
顶半部和底半部
中断共享
中断驱动的I/O
快速参考

第十一章内核的数据类型
使用标准C语言类型
为数据项分配确定的空间大小
接口特定的类型
其他有关移植性的问题
链表
快速参考

第十二章PCI驱动程序
PCI接口
ISA回顾
PC/104和PC/104+
其他的PC总线
SBus
NuBus
外部总线
快速参考

第十三章USB驱动程序
USB设备基础
USB和Sysfs
USBurb
编写USB驱动程序
不使用urb的USB传输
快速参考

第十四章Linux设备模型
kobject、kset和子系统
低层sysfs操作
热插拔事件的产生
总线、设备和驱动程序

各环节的整合
热插拔
处理固件
快速索引

第十五章内存映射和DMA
Linux的内存管理
mmap设备操作
执行直接I/O访问
直接内存访问
快速参考

第十六章块设备驱动程序
注册
块设备操作
请求处理
其他一些细节
快速参考

第十七章网络驱动程序
snull设计
连接到内核
net_device结构细节
打开和关闭
数据包传输
数据包的接收
中断处理例程
不使用接收中断
链路状态的改变
套接字缓冲区
MAC地址解析
定制ioctl命令
统计信息
组播
其他知识点详解
快速参考

第十八章TTY驱动程序
小型TTY驱动程序
tty_driver函数指针
TTY线路设置
ioctls
proc和sysfs对TTY设备的处理
tty_driver结构详解
tty_operations结构详解
tty_struct结构详解
快速参考
参考书目


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11306

    浏览量

    209566
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6085

    浏览量

    35352
  • 米尔科技
    +关注

    关注

    5

    文章

    227

    浏览量

    20975
收藏 人收藏

    评论

    相关推荐

    linux驱动程序的主要流程和功能

    驱动程序是用于控制和管理硬件设备的软件模块,它主要负责与设备进行交互,通过操作设备的寄存器和接口,实现对硬件的控制和访问。在Linux系统中
    的头像 发表于 12-08 14:56 2512次阅读

    linux设备驱动程序pdf(第三版)

    linux设备驱动程序是经典著作《Linux 设备驱动程序》的第三版。该版本已针对
    发表于 09-10 11:42 0次下载

    Linux设备驱动程序开发

    本文主要讲述的是Linux设备驱动程序开发。
    发表于 04-22 16:37 41次下载

    基于Linux操作系统的设备驱动程序开发

    本文介绍了Linux 系统的特点,阐述了在Linux 操作系统下,对系统硬件的访问和开发驱动程序的方法,说明了设备驱动程序的结构和编写过程。
    发表于 09-02 17:11 20次下载

    Linux字符设备驱动程序的编写框架

    一、Linux device driver 的概念 系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内核和机器硬件之间的接口。
    发表于 12-25 10:54 824次阅读

    Linux设备驱动程序的编写

    本站提供的Linux设备驱动程序的编写资料,希望对你的学习有帮助。 世界各地都有人在钻研Linux内核,大多是在写设备
    发表于 05-25 16:24 108次下载

    LINUX设备驱动程序

    LINUX设备驱动程序又名LDD,不想再强调这本书的重要性了,因为行业内的人都知道!2000年版次
    发表于 11-03 17:32 0次下载

    第9章 Linux驱动程序设计

    9.1 Linux 设备驱动程序 9.2 Linux经典Hello world驱动程序 9.3 Li
    发表于 04-11 14:56 3次下载

    Linux字符设备驱动程序的实现

    一、Linux device driver 的概念 系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内核和机器硬件之间的接口。设备
    发表于 10-21 09:54 0次下载

    Linux系统网络驱动程序的编写

    驱动程序编写 一.Linux系统设备驱动程序概述 1.1 Linux设备
    发表于 11-07 10:40 0次下载

    Linux设备驱动程序的平台驱动程序和字符驱动程序介绍

    了解Linux设备驱动程序的基础知识,重点介绍平台驱动程序和字符驱动程序。 提出了简单的平台驱动程序
    的头像 发表于 11-27 06:32 4311次阅读

    如何为Linux编写用户空间设备驱动程序

    了解如何为Linux编写用户空间设备驱动程序。 用户空间驱动程序为某些设备提供内核空间驱动程序
    的头像 发表于 11-22 07:04 3761次阅读

    ADIS1613x Linux设备驱动程序

    ADIS1613x Linux设备驱动程序
    发表于 03-22 14:37 7次下载
    ADIS1613x <b class='flag-5'>Linux</b><b class='flag-5'>设备</b><b class='flag-5'>驱动程序</b>

    linux驱动程序如何加载进内核

    Linux系统中,驱动程序是内核与硬件设备之间的桥梁。它们允许内核与硬件设备进行通信,从而实现对硬件设备的控制和管理。
    的头像 发表于 08-30 15:02 482次阅读

    Linux设备驱动程序分类有哪些

    Linux设备驱动程序是操作系统与硬件设备之间的桥梁,负责实现硬件设备与操作系统之间的通信和控制。Lin
    的头像 发表于 08-30 15:11 573次阅读