LDD学习笔记 -- Linux设备驱动概述

LDD学习笔记 -- Linux设备驱动概述

概述

设备驱动:配置和管理设备的一段代码。

负责与硬件设备进行交互,并导出应用程序和其他内核模块可以用来访问设备的接口。

  • 该代码能够通过向设备发送数据来配置设备,能够处理设备的请求。
  • 为用户空间提供了正确访问设备的接口,用户空间的应用程序可以和设备通信,让OS或应用程序知道如何处理设备。

用户应用程序通过write open read 系统调用与设备对话。

系统调用被驱动代码处理,以接触设备的各种寄存器。

内核的作用是将用户空间的系统调用 链接到 驱动的系统调用处理程序(实现)方法上。

分类

  • character device drivers :字符设备,RTC、keyboard、sensors等 串行/并行Port
  • block device drivers:sdmmc、eeprom、flash、harddisk
  • etwork device drivers:ethernet、wifi、bluetooth

字符设备驱动

字符设备驱动顺序地从设备访问数据,一个字节一个字节,类似一串串字符。

不是一块的数据,字符驱动程序不涉及复杂的缓冲策略。当写一个字节,将会立即到设备,不会有任何中间缓冲或延迟回写。

块设备驱动

以块或块的形式处理数据。

块驱动程序应用高级的缓冲策略来读写块设备,还涉及磁盘缓存。

设备:大容量存储设备,硬盘、SDMMC、NandFlash、USB相机

设备文件

linux中使用文件技术访问设备。大多数设备都是以文件形式访问的。

设备文件是在内核启动时或设备热拔插事件期间填在/dev目录下的一个特殊文件或一个节点,是由内核的各种驱动程序生成的。通过设备文件,用户应用和驱动之间通信。

相关推荐
zhangrelay4 分钟前
三分钟云课实践速通--模拟电子技术-模电--SimulIDE
linux·笔记·学习·ubuntu·lubuntu
木木_王10 分钟前
嵌入式Linux学习 | 数据结构 (Day05) 栈与队列详解(原理 + C 语言实现 + 实战实验 + 易错点剖析)
linux·c语言·开发语言·数据结构·笔记·学习
lkforce15 分钟前
MiniMind学习笔记(三)--train_pretrain.py(预训练)
笔记·机器学习·ai·预训练·minimind·train_pretrain
OSwich22 分钟前
【 Godot 4 学习笔记】数组(Array)
笔记·学习·godot
程序员-小李30 分钟前
uv 学习总结:从零到一掌握现代化 Python 工具链
python·学习·uv
数据皮皮侠AI35 分钟前
中国城市可再生能源数据集(2005-2021)|顶刊 Sci Data 11 种能源面板
大数据·人工智能·笔记·能源·1024程序员节
Joseph Cooper36 分钟前
Linux Power Management 子系统:从 suspend/resume 到 Runtime PM、PM QoS
linux·驱动开发·linux kernel·嵌入式linux·电源管理
wj3055853781 小时前
CC-Switch 在 WSL Ubuntu 中安装记录
linux·运维·ubuntu
其实防守也摸鱼1 小时前
面试常问问题总结--护网蓝队方向
网络·笔记·安全·面试·职场和发展·护网·初级蓝队
nashane1 小时前
HarmonyOS 6学习:页面跳转弹窗状态保持全解析
学习·华为·harmonyos·harmonyos 5