TQ2440按键点亮LED驱动程序(3)

2.设置中断处理函数,当发生中断时就调用这个中断处理函数来处理中断,这之后是定义设备的open方法,对于本文的程序open方法主要的职责是:设置cpu的中断控制引脚工作在中断模式下并且申请中断;设置LED的cpu控制引脚工作在输出模式下。

3.定义设备的close方法,close方法的主要职责:释放系统的中断,如果申请的中断没有释放会占用系统的中断资源,导致某些程序无法运行,比如我一开始由于中断的释放这里没有处理好,导致的问题是当我将驱动模块加载进系统内核,然后运行我的驱动测试程序,这些都没有问题,但是当我关掉测试程序再次运行时,本人发现测试程序打不开设备了,不能运行了,提示错误设备正忙,原因就是系统的中断资源没有及时释放。

4.定义设备的read方法,read方法的主要职责是:当我上层应用程序需要读我的设备的时候,当我设备没有数据可读的时候,这个时候该如何处理的问题。

5.定义设备的poll方法,poll设备方法负责完成:

①使用poll_wait将等待队列添加到poll_table中。

②返回描述设备是否可读或可写的掩码。

位掩码:

POLLIN  设备可读

POLLRDNORM 数据可读

POLLOUT 设备可写

POLLWRNORM 数据可写

设备可读通常返回 (POLLIN|POLLRDNORM)

设备可写通常返回 (POLLOUT|POLLWRNORM)

6.定义ioctl方法,这个设备方法不做解释,不懂的话请看我前面写的那篇TQ2440LED驱动程序的文章。

7.定义file_operations 。file_operations结构中的每一个成员的名字都对应着一个上层应用程序的调用。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7ee978f0939e8b2c18b25e766621a4f8.html