Linux字符设备驱动开发(一)

一、前言

字符设备是Linux 驱动中最重要的设备之一,其能够像字节流一样被访问,也就是说对它的操作以字节为单位来实现读写等操作。比如最常见的点灯、按键、IIC、SPI、LCD等都是字符设备,这些设备的驱动就叫做字符设备驱动。字符设备的驱动程序实现了open、close、read、write等系统调用,应用程序可以通过设备文件(/dev/xxx,其中xxx为该字符设备文件,例如/dev/led)来访问字符设备。在Linux中一切皆为文件,驱动加载成功以后会在“/dev”目录下生成一个相应的文件,应用程序通过对这个名为“/dev/xxx”(xxx是具体的驱动文件名字)的文件进行相应的操作即可实现对硬件的操作。

二、目的

本文简单的介绍Linux字符设备驱动的开发步骤与流程。如果学过裸机或者STM32都知道对某个设备模块就是要初始化相关的外设寄存器等。在Linux内核下开发字符设备驱动仍是按初始化相关外设寄存器的步骤流程或者说框架来编写驱动。重点是要掌握其驱动开发框架。

三、开发流程与介绍

Linux的设备驱动程序大致可以分为如下几个部分:驱动模块的加载与卸载、驱动程序的注册与注销、设备的打开与释放、设备的读写操作、设备的控制操作、设备的中断和轮询处理等。以字符设备驱动开发为例,其开发流程模型与工作关联分别如下图所示:
开发流程模型
工作关联

1.Linux内核中

猜你喜欢

转载自blog.csdn.net/Youning_Yim/article/details/126404366
今日推荐