驱动开发 驱动简介 Linux系统中,设备驱动程序是操作系统内核的重要组成部分,在 与硬件设备之间建立了标准的抽象接口。通过这个接口,用户可以像处理普通文件一样,对硬件设备进行打开(open)、关闭(close)、读写(read/write)等操作。 Linux下对外设的访问只能通过驱动程序 驱动程序在系统中的加载 驱动程序大多是在系统启动的时候初始化的。 Linux则允许设备驱动程序以Module机制实现。这样就可以在装入Module时注册设备接口实现,而不必非要在启动时注册。 对应用程序来讲,需要用驱动程序来实现用户态和内核态之间传递数据。对设备的操作就像对文件操作一样方便,因为Linux采用了分层封装的方法向上层提供了一种通用的文件系统接口。 驱动考虑因素 驱动程序主要需要考虑下面三个方面: 提供尽量多的选项给用户, 提高驱动程序的速度,尽量使驱动程序简单,使之易于维护。 效率 调试方法 LINUX的驱动开发调试有两种方法, 一种是直接编译到内核,再运行新的内核来测试; 二是编译为模块的形式,单独加载运行调试。 第一种方法效率较低,但在某些场合是唯一的方法。模块方式调试效率很高,它使用insmod工具将编译的模块直接插入内核,如果出现故障,可以使用rmmod从内核中卸载模块。不需要重新启动内核,这使驱动调试效率大大提高。 设备驱动的分类 Linux中把系统的设备定义成如下
原创力文档

文档评论(0)