作为系统内核的一部分,驱动程序工作在内核态,而应用程序工作在用
户态。也就是说,不能直接通过指针把用户空间的数据地址传递给内核
(因为MMU映射的地址根本不一样)。要想在应用程序和驱动程序之
间传递数据(指针),就要经过转换,把用户态“看”到的空间地址转换
成内核态可访问的地址。Linux系统提供了一系列函数,可方便地实现
这种转换,它们自己负责检查访问权限,使用时不需要考虑更多问题。
设备驱动程序应该只为系统的其他部分提供使用设备的能力,至于使用
方法应该由应用程序来提供。也就是说,应用程序通过调用硬件设备对
应的驱动程序来完成自己的目的,而调用什么,驱动程序则不需要知道
。因此,在编写驱动程序时需要考虑下面三个方面:提供尽量多的选项
给用户;提高驱动程序的速度和效率;尽量使驱动程序简单。
第一节驱动程序设计基础——一、Linux驱动程序简介
评论0
最新资源