驱动开发基础:设备、中断与内核机制
在开始编写设备驱动之前,我们需要掌握一些关键的驱动概念。下面将详细介绍设备与驱动的基本概念、中断处理机制,以及内核中用于延迟工作的相关机制。
1. 设备与驱动简介
用户应用程序无法直接与硬件通信,因为这需要执行特殊指令和处理中断等特权。设备驱动承担了与硬件交互的任务,并为应用程序和内核的其他部分提供访问设备的接口。应用程序通过 /dev 目录下的节点操作设备,并使用 /sys 目录下的节点获取设备信息。
典型的 PC 兼容系统支持多种设备和接口技术,如内存、视频、音频、USB、PCI 等。在 PC 架构中,内存控制器和图形控制器是北桥芯片组的一部分,而外设总线则源自南桥。嵌入式设备也有类似的硬件结构,但可能包含一些 PC 中不常见的接口,如闪存、LCD、触摸屏和蜂窝调制解调器。
设备驱动对于系统访问外设至关重要,后续我们将深入研究特定的设备接口,并学习如何实现相应的设备驱动。
2. 中断处理
由于 I/O 的不确定性以及 I/O 设备与处理器之间的速度不匹配,设备会通过异步发出某些硬件信号来请求处理器的关注,这些信号被称为中断。每个产生中断的设备都被分配一个相关的标识符,即中断请求(IRQ)号。当处理器检测到某个 IRQ 上产生了中断时,它会立即停止当前的工作,并调用为该 IRQ 注册的中断服务例程(ISR)。
2.1 中断上下文
ISR 是直接与硬件通信的关键代码,为了系统性能,它们被赋予了立即执行的特权。然而,ISR 必须快速轻量,否则会违背其设计初衷。ISR 必须在一个受限
超级会员免费看
订阅专栏 解锁全文


被折叠的 条评论
为什么被折叠?



