2010-12-07 35 views
3

有人能指点我一些示例代码来启用和处理Linux中的ARM9用户引脚IO中断(C语言)吗?GPIO引脚linux中的中断处理程序(arm)

我知道,可能需要一个底层驱动,我只是想获得关于如何初始化它,然后在用户级别等

我熟悉ARM的中断处理消息的一些想法,和设备驱动程序(在Windows中),但我是Linux编程的新手。

谢谢

回答

3

这真的取决于您使用的实际BSP。 AFAIK在Linux中没有“通用ARM9 gpio中断”,它几乎是特定于电路板的。例如。这里是一个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); 
} 
+0

非常感谢,这让我走了! – tommessum 2010-12-08 12:19:40