Linux设备驱动 - 中断注册

1,思路
  • 按键按下(产生了中断)→跳转到异常向量入口,执行中断函数
  • 中断函数要做什么:
    1.保护现场
    2.执行中断处理函数
    3.恢复现场
    我们需要做什么?
    学会使用中断注册函数,了解注册中断相关的函数和结构体
2、中断有关函数
  • 中断注册函数:request_irq的5个参数
    request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags, const char *name, void *dev)
    在这里插入图片描述
    参数1:irq,中断号。(和平台架构相关,结合datasheet以及平台文件)
    参数2:中断处理函数
    参数3:中断标记。上升/下降沿,高/低电平……
    参数4:中断名字。cat /proc/interrupts
    参数5:使用设备的设备结构体或者NULL。
  • 释放中断函数
    free_irq(irq,*dev_id)
3、request_irq的调用
  • 4412上外部中断号如何对应:
    (IRQ_EINT(x)和datasheet对应)
    在这里插入图片描述
    查看手册

在这里插入图片描述
在这里插入图片描述
HOME和BACK
EXYNOS4_GPX1[1]和EXYNOS4_GPX1[2]
→KP_COL[1]和KP_COL[2]
→XEINT_9和XEINT_10
所以:IRQ_EINT(9)和IRQ_EINT(10)

4、在平台文件中注册设备:keyirq
  • ` vim arch/arm/mach-exynos/mach-itop4412.c
struct platform_device s3c_device_keyirq_ctl = {
    .name   = "keyirq",
    .id     = -1,
};

在这里插入图片描述

  • &s3c_device_keyirq_ctl,
    在这里插入图片描述
  • 重新编译烧写内核
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AIOT技术栈

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值