主题 : linux 下 关于led驱动的问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 39283
精华: 0
发帖: 20
金钱: 100 两
威望: 20 点
综合积分: 40 分
注册时间: 2011-03-07
最后登录: 2017-09-13
楼主  发表于: 2012-09-13 20:08

 linux 下 关于led驱动的问题

发现一个问题,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重新编辑 ]
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
1楼  发表于: 2012-09-14 06:19
0, 1代表了开关,难道还有其他状态吗?
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.