简体   繁体   English

Linux中的GPIO引脚中断处理程序(arm)

[英]GPIO pin Interrupt handlers in linux (arm)

Can somebody point me at some sample code for enabling and handling user pin IO interrupts (C language) for an ARM9 in linux? 有人能指出一些示例代码,用于启用和处理Linux中ARM9的用户引脚IO中断(C语言)吗?

I am aware that a low level driver may be needed, I just want to get some ideas on how to initialise it, then handle the messaging at the user level etc. 我知道可能需要一个低级别的驱动程序,我只是想了解如何初始化它,然后在用户级别处理消息传递等。

I am familiar with ARM interrupts, and device drivers (in Windows) but I am new to linux programming. 我熟悉ARM中断和设备驱动程序(在Windows中)但我不熟悉linux编程。

thanks 谢谢

It really depends on the actual BSP you're using. 这实际上取决于您使用的实际BSP。 AFAIK there's no "generic ARM9 gpio interrupt" in Linux, it's pretty much board-specific. AFAIK在Linux中没有“通用ARM9 gpio中断”,它几乎是特定于板子的。 Eg here's an example for a PCA100 board: 例如,这是PCA100板的示例:

static int pca100_sdhc2_init(struct device *dev, irq_handler_t detect_irq,
                void *data)
{
        int ret;

        ret = request_irq(IRQ_GPIOC(29), detect_irq,
                          IRQF_DISABLED | IRQF_TRIGGER_FALLING,
                          "imx-mmc-detect", data);
        if (ret)
                printk(KERN_ERR
                        "pca100: Failed to reuest irq for sd/mmc detection\n");

        return ret;
}

static void pca100_sdhc2_exit(struct device *dev, void *data)
{
        free_irq(IRQ_GPIOC(29), data);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM