发现一个问题,led驱动程序只能接受 0 和 1 这两个命令,即cmd =0 /1 这样驱动程序才能识别,cmd不等于这两个参数的命令都被忽略了。
/* 定义幻数 */
#define MEMDEV_IOC_MAGIC 'k'
/* 定义命令 */
#define MEMDEV_IOCON _IO(MEMDEV_IOC_MAGIC, 1
#define MEMDEV_IOCOFF _IO(MEMDEV_IOC_MAGIC, 2)
这种定义出来的命令在led驱动里面是识别不了的
switch(cmd)
{
case MEMDEV_IOCOFF:
gpio_set_value(led_gpios[arg],1);
break;
case MEMDEV_IOCON :
gpio_set_value(led_gpios[arg],0);
break;
default:
return - EINVAL;
}
实际上根本就不会进入这个语句中,不信大家试试看!
[ 此帖被wznpmm在2012-09-13 20:18重新编辑 ]