标签:
LED驱动实现的原理,尽管linux驱动直接与硬件打交道,但并不是linux驱动直接向硬件中的内存写数据,而是与本机的I/O内存进行交互。所谓I/O内存是通过各种接口连接到主机的硬件在主机内存中的映射。编写LED驱动,LED驱动会建立一个/dev/s3c6410_leds设备文件,该linux驱动可以控制4个LED,通过向/dev/s3c6410_leds发送长度为1到4的字符串可以控制这4个LED的开关,1表示开,0表示关。创建LED驱动的设备文件,使用cdev_init函数初始化cdev,描述设备文件需要一个cdev结构体。该结构体在<linux内核源代码>/include/linux/cdev.h;指定设备号,linux设备文件的设备号分为主设备号和次设备号。用一个int类型表示,其中前12位表示主设备号,后20位表示次设备号。使用cdev_add函数将字符设备添加到内核中的字符设备数组中;使用class_create宏创建stryct_class;使用device_create函数创建设备文件。卸载LED驱动的设备文件,需要一次调用device_destroy,class_destory和unregister_chrdev_region方法。设置寄存器与初始化LED驱动。控制LED,LED驱动可以使用两种方法,1.通过字符串控制LED;2.通过I/O命令控制LED
标签:
原文地址:http://www.cnblogs.com/fengxinbo/p/5560953.html