LED&KEYPAD
驱动程序编写实验
实验目的:
1.
了解驱动程序结构,熟悉编写驱动程序的基本流程;
2.
实现LED和KEYPAD的驱动程序,要求实现基本的接口函数。
实验原理:
1.
驱动程序是一组代码,这部分代码负责将应用程序的一些需求,如读、写等操作,正确无误的传递给相关的硬件,并使硬件能够做出正确反应的代码。驱动程序像是一个黑盒子,它隐藏了硬件的工作细节,应用程序只需要通过一组标准化的接口,就可以实现对硬件的操作;
2.
编写驱动程序应从了解相应设备的硬件原理开始,进而了解并实现内核模块的注册和撤销、虚拟文件接口函数及其结构体。最后,编写测试程序对已实现的驱动程序进行测试。
实验内容:
从硬件原理上来看,KEYPAD以及LED是连接在系统数据总线上。要实现对LED的或者KEYPAD的控制,只需要打开相应的LED或者KEYPAD的片选信号,进行相关的读写操作就可以了。
- 驱动编写
l 虚拟文件系统与硬件驱动的接口
LED和KEYPAD都是字符型设备,所以可直接使用file_operations接口;这里定义LED_KEYPAD设备接口函数,
static struct file_ooperations
LedKeypad_fops = {
open:LedKeypad_open,
read: LedKeypad _read,
write: LedKeypad _write,
release: LedKeypad _release,
};
l 向内核注册和撤销LED_KEYPAD设备