5
设备驱动程序如何工作?
用户 空间
用户进程 标准C库
系统调用接口
内核 空间
文件系统(普通文件、设备文件)
设备驱动程序
硬件 空间
I/O设备、通讯设备、存储设备
2021/7/7
6
设备驱动程序简介
➢ 设备驱动程序(Device Driver)简称“驱动程序”,是一种 可以使计算机和设备通信的特殊程序,可以说相当于硬件的接 口。操作系统通过这个接口,才能控制硬件设备的工作。
int (*revalidate) (kdev_t dev);
};
2021/7/7
28
这个结构的每一个成员的名字都对应着一个系统调用。
➢ Linux的设备驱动程序工作的基本原理
用户进程利用系统调用在对设备文件进行操作时,系统调 用通过设备文件的主设备号找到相应的设备驱动程序,然 后读取这个数据结构相应的函数指针,接着把控制权交给 该函数
int (*write) (struct inode *, struct file *, const char *, int);
int (*readdir) (struct inode *, struct file *, void *, filldir_t);
int (*select) (struct inode *, struct file *, int, select_table *);
read:
SIMPLE_GPIO_LED_read,
write:
SIMPLE_GPIO_LED_write,
ioctl:
SIMPLE_GPIO_LED_ioctl,
release:
SIMPLE_GPIO_LED_release,