加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

Mini6410 达成简单按键中断驱动

发布时间:2021-12-18 16:27:56 所属栏目:PHP教程 来源:互联网
导读:简单按键中断驱动,在mini6410开发板上运行良好。 仅供技术交流,请勿商用 #include linux/fs.h #include linux/init.h #include linux/module.h #include linux/kernel.h #include linux/irq.h #include asm/irq.h #include asm/io.h #include linux/interru
简单按键中断驱动,在mini6410开发板上运行良好。
 
仅供技术交流,请勿商用
 
#include <linux/fs.h>   
#include <linux/init.h>   
#include <linux/module.h>   
#include <linux/kernel.h>   
#include <linux/irq.h>   
#include <asm/irq.h>   
#include <asm/io.h>   
#include <linux/interrupt.h>   
#include <linux/miscdevice.h>   
#include <linux/cdev.h>   
#include <asm/uaccess.h>   
#include <mach/hardware.h>   
#include <linux/platform_device.h>   
#include <mach/regs-gpio.h>   
#include <mach/gpio-bank-n.h>   
#include <plat/gpio-cfg.h>   
  
#define DEVICE_NAME "button_irq"   
  
static int button_irq_open(struct inode *inode,struct file *filp)  
{  
    return 0;  
}  
static int button_irq_release(struct inode *inode,struct file *filp)  
{  
    return 0;  
}  
static irqreturn_t  button_irq_inter(int nr,void *devid)  
{  
    static int count=0;  
    count ++;  
    printk("%dn",count);  
    return IRQ_RETVAL(IRQ_HANDLED);  
}  
static int button_irq_init()  
{  
    unsigned int ret;  
    ret = request_irq(IRQ_EINT(0),button_irq_inter,IRQ_TYPE_EDGE_BOTH,"KEY0",NULL);  
    return 0;  
}  
static struct file_operations dev_fops =  
{  
    .owner = THIS_MODULE,  
    .open = button_irq_open,  
    .release = button_irq_release,  
  
};  
static struct miscdevice misc =  
{  
    .minor = MISC_DYNAMIC_MINOR,  
    .name = DEVICE_NAME,  
    .fops = &dev_fops,  
};  
static int __init dev_init()  
{  
    int ret;  
    ret = misc_register(&misc);  
    printk("button_irq errnon");  
    button_irq_init();  
    return 0;  
}  
static void __exit dev_exit()  
{  
    misc_deregister(&misc);  
    free_irq(IRQ_EINT(0),NULL);  
}  
  
module_init(dev_init);  
module_exit(dev_exit);  
  
MODULE_LICENSE("GPL");  
MODULE_AUTHOR("MUGE0913");  

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读