Linux驱动开发——按键驱动程序

加载模块-》初始化函数-》注册中断处理函数-》中断到来-》处理中断函数-》卸载模块-》释放中断线

#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>
//中断处理函数
static irqreturn_t isr_button(int irq,void *dev_id,struct pt_regs *regs){
	printk("hello Frank!\n");
	return 0;
}

static int __init key1_init(){
	int ret;
	set_irq_type(IRQ_EINT(1), IRQ_TYPE_EDGE_FALLING);
	
	ret = request_irq(IRQ_EINT(1),isr_button,IRQ_TYPE_EDGE_FALLING,"K1",NULL);
	
	if(ret){
		printk("K1_IRQ:could not register interrupt\n");
		return ret;
	}
	
	printk("init ok!\n");
	
	return 0;
}

static void __exit key1_exit(){
	free_irq(IRQ_EINT(1),NULL);
	printk("K1 exit\n");
}

module_init(key1_init);
module_exit(key1_exit);

MODULE_LICENSE("GPL");


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值