当前位置:  技术问答>linux和unix

求助:mini2440的按键中断驱动

    来源: 互联网  发布时间:2016-12-12

    本文导语:  最近在看中断,手上有块mini2440,里面有一个实现按键中断的程序,代码如下 #include  #include  #include  #include  #include  #include  #include  #include  #include  #include  #include  #include  #include  #include  #include  #include  #inclu...

最近在看中断,手上有块mini2440,里面有一个实现按键中断的程序,代码如下

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define DEVICE_NAME     "buttons"

struct button_irq_desc {
    int irq;
    int pin;
    int pin_setting;
    int number;
    char *name;
};

static struct button_irq_desc button_irqs [] = {
    {IRQ_EINT8 , S3C2410_GPG(0) ,  S3C2410_GPG0_EINT8  , 0, "KEY0"},
    {IRQ_EINT11, S3C2410_GPG(3) ,  S3C2410_GPG3_EINT11 , 1, "KEY1"},
    {IRQ_EINT13, S3C2410_GPG(5) ,  S3C2410_GPG5_EINT13 , 2, "KEY2"},
    {IRQ_EINT14, S3C2410_GPG(6) ,  S3C2410_GPG6_EINT14 , 3, "KEY3"},
    {IRQ_EINT15, S3C2410_GPG(7) ,  S3C2410_GPG7_EINT15 , 4, "KEY4"},
    {IRQ_EINT19, S3C2410_GPG(11),  S3C2410_GPG11_EINT19, 5, "KEY5"},
};
static volatile char key_values [] = {'0', '0', '0', '0', '0', '0'};

static DECLARE_WAIT_QUEUE_HEAD(button_waitq);

static volatile int ev_press = 0;


static irqreturn_t buttons_interrupt(int irq, void *dev_id)
{
    struct button_irq_desc *button_irqs = (struct button_irq_desc *)dev_id;
    int down;

    // udelay(0);
    down = !s3c2410_gpio_getpin(button_irqs->pin);

    if (down != (key_values[button_irqs->number] & 1)) { // Changed

key_values[button_irqs->number] = '0' + down;

        ev_press = 1;
        wake_up_interruptible(&button_waitq);
    }
    
    return IRQ_RETVAL(IRQ_HANDLED);
}


static int s3c24xx_buttons_open(struct inode *inode, struct file *file)
{
    int i;
    int err = 0;
    
    for (i = 0; i 

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • [求助]linux下的usb驱动开发的书籍
  • 高分求助foxpro的jdbc驱动程序!!!!
  • 求助:Linux下USB驱动的问题
  • 求助 !!ALSA声卡驱动错误!
  • 求助:makefile,驱动与linux内核的关系?
  • 求助:一个简单的驱动
  • 【求助】:如何用ioctl()函数调用一个驱动程序
  • 求助!驱动如何触发程序?
  • 关于JDBC for Oracle驱动的问题?紧急求助?
  • 求助,关于显卡驱动的安装,高手请进,谢谢
  • 求助````我该用哪个驱动啊?
  • 求助!声卡驱动怎么上!!!
  • 求助 简单测试字符驱动 Cannot allocate memory
  • 求助:如何移植DM9000网卡驱动到linux2.6内核?
  • 罗技快看畅想版UVC 摄像头驱动求助??????
  • 求助,关于编译驱动进内核的一个问题,实在找不到资料了!
  • [求助]请问Linux下怎么打开exe文件啊,小弟想安装网卡驱动啊
  • 求助 82576驱动
  • 求助啊,Linux 系统怎么看装了哪些驱动
  • [求助]关于驱动静态编译进内核的问题!
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 怎样读取HZK24S前十区的内容啊???求助求助
  • 紧急求助!紧急求助!
  • 操作系统 iis7站长之家
  • 菜鸟求助,solaris下计算问题求助
  • 【求助】SOS紧急求助..............极为简单的问题...跪求....
  • 高分求助啊!求助SUSE 10.0 不能上网.
  • 急急急急急急急啊,紧急求助啊!!!!!满分求助啊!!!!!!
  • 求助:linux下 vim的配置(高分求助)
  • red hat怎么安装gcc啊!总是出错,求助求助啊!!!yum源怎么改啊!!
  • 求助~~求助 ~~linux文件读写问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3