GPIO pin Обработчики прерываний в linux (arm) - PullRequest
3 голосов
/ 07 декабря 2010

Может кто-нибудь указать мне пример кода для включения и обработки пользовательских прерываний ввода-вывода (язык C) для ARM9 в Linux?

Я знаю, что может потребоваться драйвер низкого уровня, я просто хочу получить некоторые идеи о том, как его инициализировать, затем обработать сообщения на уровне пользователя и т. Д.

Я знакомс прерываниями ARM и драйверами устройств (в Windows), но я новичок в программировании на linux.

спасибо

1 Ответ

3 голосов
/ 07 декабря 2010

Это действительно зависит от фактического BSP, который вы используете.AFAIK В Linux нет «универсального gpio-прерывания ARM9», оно в значительной степени зависит от платы.Например, вот пример платы 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);
}
...