01 2018 档案
摘要:1 采用之前的中断按键法,程序会一直在read函数中死循环。 2 使用了poll之后,在一段时间内如果有按键按下就会返回,如果没有按键按下等时间到再返回。 3 4 应用程序的open,read,write,poll分别对应了驱动程序的open,read,write和poll。 5 首先,增加fileoperation结构体。 6 7 static struct ...
阅读全文
摘要:一、添加头文件 二、构造fileoperation结构体 static struct fileoperations second_drv_fops = { .owner = THIS_MODULE; .open = second_drv_open; .write = ;second_drv_write ...
阅读全文
摘要:char* filename; 1.先判断参数个数 if(argc != 3) { printf("xxx"); } filename = argc[1]; fd = open(filename,O_RDWR); if(fd < 0) { printf("can't open!\n"); retur
阅读全文
摘要:1.首先在驱动文件开头定义用于保存带操作IOK口的unsigned long变量,并且要用volatile修饰。 volatile unsigned long *gpfcon = NULL; volatile unsigned long *gpfdat = NULL; 2.在入口函数中对寄存器进行映射。 gpfcon = (volatile unsigned long ...
阅读全文
摘要:1 头文件: 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 13 定义变量 14 int major; 15 static struct class *firstdrv_cl...
阅读全文