как узнать номер прерывания / GPIO для определенного pin-кода в linux
Я делаю проект, в котором мне нужно обработать прерывание в Linux.
совет я использую это ARM9Board на основе S3C6410 MCU от Samsung (процессор arm 11) и имеет следующий интерфейс ввода-вывода:
Как показывает изображение, у меня есть eintx-контакты для внешних прерываний и GPxx-контакты как GPIO-контакты, и я не против использовать любой из них, но у меня нет их номеров !
для контактов EINTx :
когда я называю
int request_irq(unsigned int irq, void (*handler)(int, struct pt_regs *),
unsigned long flags, const char *device);
мне нужен номер прерывания, чтобы передать его в качестве первого параметра функции, так как я могу получить номер irq, например, pin-код EINT16 ?
для контактов GPxx: та же история, что и мне нужен GPIO pin nuumber, чтобы передать его этим функциям
int gpio_request(unsigned gpio, const char *label);
int gpio_direction_input(unsigned gpio);
int gpio_to_irq(unsigned gpio);
i.e Как узнать номер GPIO для pin-кода GPP8 ?
Я искал документы правления и техническое описание, но он не содержит что-нибудь о том , как получить эти цифры, любая идея или помощь в том, где искать ?
2 ответов
встроенный Linux, который вы используете, должен иметь драйвер GPIO, который имеет #define
операторы для контактов GPIO. Затем вы можете получить номер IRQ конкретного GPIO, используя что-то вроде:
irq_num = gpio_to_irq(S3C64XX_GPP(8));
поддержка Linux GPIO lib для этого конкретного чипа доступна в следующем файле:
Линукс/арки/руку/Маха-s3c6400/включить/мах/порты ввода-вывода.h
там вы найдете все #define
отчетность для различных Выводы GPIO.
см. раздел О соглашениях GPIO в их документации:
Я также выполнял некоторую работу над выводом GPIO, но он находится на другой плате, AM335x. Просто чтобы вы знали, есть довольно мало способов сделать это. Один из методов, который мы используем, - это использование платы памяти для доступа (записи или чтения) к pin-коду GPIO.
Это действительно хорошая статья, чтобы помочь мне получить вещи работать. Регистрация доступа к GPIOs Beaglebone через отображение памяти