驱动程序框架
发布时间:2022-11-19 11:07:01 所属栏目:Linux 来源:
导读: 目录
驱动程序三种基本类型(组成)
1、字符设备(Char Device)
2、块设备(Block Device)
3、网络设备(Net Device)
设备驱动程序功能
1、对设备初始化和释放
驱动程序三种基本类型(组成)
1、字符设备(Char Device)
2、块设备(Block Device)
3、网络设备(Net Device)
设备驱动程序功能
1、对设备初始化和释放
目录 驱动程序三种基本类型(组成) 1、字符设备(Char Device) 2、块设备(Block Device) 3、网络设备(Net Device) 设备驱动程序功能 1、对设备初始化和释放 2、把数据从内核传送到硬件和从硬件读取数据 3、读取应用程序传送给设备文件的数据和回送应用程序请求的数据 4、检测和处理设备出现的错误 访问特定硬件: 访问特定硬件就是访问物理地址(如处理器内设备的寄存器、外设的地址映射)。然而由于MMU的内存映射以及对操作系统的保护,运行在用户态的应用程序一般不能直接访问硬件地址。因此需要驱动程序作为应用程序和访问硬件之间的媒介。 驱动程序的内核模块机制(开发模式) 静态编译、动态加载 Linux提供了一种内核模块机制。一个模块被编译成单独的内核模块后,一开始可以不编译到整个内核中,当内核需要加入该模块的时候,不需要重新编译整个内核,只需要将该内核模块插入(加载)到正在运行的内核中。同样,也可以从正在运行的内核中卸载。 Linux设备驱动可以使用两种方式被编译和加载: 1、直接编译到Linux内核,随Linux启动时加载,随时可以使用该驱动程序; 2、编译成一个可加载和删除的模块,用insmod加载,rmmod删除。 驱动程序框架 三个主要部分 1、设备初始化/释放: 负责对设备进行初始化和释放 初始化检测所要驱动的硬件设备是否存在、能否正常工作。如果设备正常,则对设备及相关驱动程序 需要的软件状态进行配置/初始化。 2、上半部分:服务于文件系统I/O 负责:通过文件系统从应用程序读取数据,把数据通过文件系统回送给应用程序(文件系统层设备驱动层) 这部分由文件系统相关的系统调用执行,和调用进程属于同一个进程linux 驱动,具有调用进程的运行环境,只是由用户态变成了内核态。 3、下半部分:服务于硬件设备的I/O 负责:把数据从内核传送到硬件,从硬件读取数据到内核(设备驱动曾硬件层) 这部分可以通过中断方式实现,对于多数设备可以提高CPU处理效率。 这部分也可以不通过中断方式实现,只要能完成设备驱动层和硬件之间的数据通信即可。 1、字符设备驱动程序框架 2、块设备驱动程序框架 2、网络设备驱动程序框架 (编辑:开发网_新乡站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐