驱动硬件是操作系统最基本的功能
它通过驱动程序来操作硬件
驱动程序是内核和硬件之间的接口,为应用程序屏蔽了硬件的细节
驱动程序最为操作系统最基本组成部分,具有以下功能:对设备初始化和释放
驱动程序要完成设备注册,初始化及对设备的卸载数据传送
驱动程序最重要的功能就是在内核,硬件和应用程序之间传送数据
即把数据从内核传到硬件和从硬件读取数据;读取应用程序传给设备文件的数据和回送应用程序要求的数据检测和处理设备出现的错误
Linux输入/输出系统层次结构和功能:用户应用程序(设备)文件系统设备驱动程序物理设备控制器输入/输出请求输入/输出响应物理设备物理设备控制器驱动程序通常是以内核模块的形式加载进内核或直接编译进内核,(但编译进内核是某些驱动运行的唯一方法
例如:console驱动,flash驱动和对至少一种文件系统的支持等等
)是内核的一部分
与应用程序的执行过程不同,模块通常只是预先向内核注册自己,当内核需要时响应请求
用户的应用程序以设备文件方式访问驱动程序
即linux把设备当文件,通过文件系统对设备进行访问所有的设备的驱动程序有共性,了解驱动程序的结构,对嵌入式系统的开发有价值设备驱动程序流程图:insmodrmmodinit_module()clean_module()模块内核设备功能设备注册设备卸载用户调用Linux的设备管理嵌入式Linux设备驱动程序的设计大致包括以下步骤:向系统申请也可以动态获得主、次设备号
实现设备初始化和卸载模块
(以模块方式)设计对设备文件操作
如定义file_operations结构
设计对设备文件操作调用
如read、write等操作
实现中断服务函数,用request_irq向内核注册
将驱动程序编译到内核或编译成模块,用ismod命令加载
生成设备节点文件
模块作为一种抽象数据类型,它具有一个