有人能指出一些示例代码,用于启用和处理Linux中ARM9的用户引脚IO中断(C语言)吗?
我知道可能需要一个低级别的驱动程序,我只是想知道如何初始化它,然后在用户级别处理消息传递等。
我熟悉ARM中断和设备驱动程序(在Windows中),但我是linux编程的新手。
感谢
答案 0 :(得分: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);
}