第1章--Linux设备驱动概述

一、设备驱动的作用

任何一个计算机系统的运转都是系统中软硬件共同努力的结果。
对设备驱动最通俗的解释就是“驱使硬件设备行动”。驱动与底层硬件直接打交道,按照硬件设备的具体工作方式,读写设备的寄存器,完成设备的轮询、中断处理、DMA 通信,进行物理内存向虚拟内存的映射等,最终让通信设备能收发数据,让显示设备能显示文字和画面,让存储设备能记录文件和数据。
由此可见,设备驱动充当了硬件和应用软件之间的纽带,应用软件时只需要调用系统软件的应用编程接口(API)就可让硬件去完成要求的工作。

二、无操作系统时的设备驱动

在没有操作系统的情况下,设备驱动的接口被直接提交给应用软件工程师,应用软件没有跨越任何层次就直接访问设备驱动的接口。
驱动包含的接口函数也与硬件的功能直接吻合,没有任何附加功能。

三、有操作系统时的设备驱动

当系统中存在操作系统的时候,驱动变成了连接硬件和内核的桥梁。
操作系统的存在势必要求设备驱动附加更多的代码和功能,把单一的“驱使硬件设备行动”变成了操作系统内与硬件交互的模块,它对外呈现为操作系统的 API,不再给应用软件工程师直接提供接口。

四、Linux设备驱动

1. 设备驱动的分类及特点

设备驱动针对的对象是存储器和外设(包括 CPU 内部集成的存储器和外设),而不是针对CPU 内核。
Linux 将存储器和外设分为 3 个基础大类。

  • 字符设备:必须以串行顺序依次进行访问的设备。
  • 块设备:可以按任意顺序进行访问,以块为单位进行操作的设备。
  • 网络设备:面向数据包的接收和发送而设计。

2. 设备驱动与系统的关系

在Linux系统中,所有设备都被映射到 Linux 文件系统的文件和目录,
通过文件系统的系统调用接口 open()、write()、read()、close() 等访问。所有字符设备和块设备都统一呈现给用户。

3. 设备驱动的重点、难点

  • 编写 Linux 设备驱动要求工程师有非常好的硬件基础。
  • 编写 Linux 设备驱动要求工程师有非常好的 C 语言基础。
  • 编写 Linux 设备驱动要求工程师有一定的 Linux 内核基础。
  • 编写 Linux 设备驱动要求工程师有非常好的多任务并发控制和同步的基础。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Linux设备驱动详解【第二版】,作者宋宝华,此版PDF是经过本人整理的文字版PDF,带目录、高清无水印版。 内容简介 《Linux设备驱动开发详解(第《Linux设备驱动开发详解(第2版)》内容全面,实例丰富,操作性强,语言通俗易懂,适合广大Linux开发人员、嵌入式工程师参考使用。 图书目录 第1篇 Linux设备驱动入门 第1 Linux设备驱动概述开发环境构建 2 第2 驱动设计的硬件基础 21 第3 Linux内核及内核编程 53 第2篇 Linux设备驱动核心理论 第4 Linux内核模块 82 第5 Linux文件系统设备文件系统 92 第6 字符设备驱动 118 第7 Linux设备驱动中的并发控制 139 第8 Linux设备驱动中的阻塞与非阻塞I/O 161 第9 Linux设备驱动中的异步通知与异步I/O 176 第10 中断与时钟 193 第11 内存与I/O访问 213 第12 工程中的Linux设备驱动 242 第3篇 Linux设备驱动实例 第13 Linux设备驱动 272 第14 Linux终端设备驱动 304 第15 Linux的I2C核心、总线与设备驱动 333 第16 Linux网络设备驱动 363 第17 Linux音频设备驱动 388 第18 LCD设备驱动 440 第19 Flash设备驱动 479 第20 USB主机与设备驱动 507 第21 PCI设备驱动 547 第4篇 Linux设备驱动调试、移植 第22 Linux设备驱动的调试 564 第23 Linux设备驱动的移植 602

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值