代码:#include#include#include#include#include#include//流水灯代码#define GPM4CON 0x110002e0#define GPM4DAT 0x110002e4static unsigned long*ledcon=NULL;static unsigned long*leddat=NULL;//自定义write文件操作(不自定义的话,内核有默认的一套文件操作函数)static ssize_t test_write(struct file*filp,const char __user*buff,size_t count,loff_t*offset){int value=0;int ret=0;ret=copy_from_user(&value,buff,4);//底层驱动只定义基本操作动作,不定义功能if(value==1){*leddat|=0x0f;*leddat&=0xfe;}if(value==2){*leddat|=0x0f;*leddat&=0xfd;}if(value==3){*leddat|=0x0f;*leddat&=0xfb;}if(value==4){*leddat|=0x0f;*leddat&=0xf7;}return 0;}//文件操作结构体初始化static struct file_operations g_tfops={.owner=THIS_MODULE,.write=test_write,};//杂设备信息结构体初始化static struct miscdevice g_tmisc={.minor=MISC_DYNAMIC_MINOR,.name="test_led