2012-06-15 3 views
0

Я работаю над встроенной платформой linux под управлением Linux 2.6. Я хотел бы знать, как сделать следующее.Обработка аппаратных прерываний в Linux

1) У меня есть аппаратное прерывание источника IRQ7, который показывает в/Proc/перебивает

кота/Proc/перебивает | Grep IRQ7

M547X_8X 71: 1916076 PCI IRQ7

2) Для PCI IRQ7, каждый раз, когда я нажимаю кнопку, третье значение значение изменяется

M547X_8X 71: 2177862 PCI IRQ7

Не это означает, что мой переключатель нажат?

Теперь я хочу запустить программу пользователя из сна, когда я нажимаю эту кнопку. Как написать эту программу пользовательского пространства с использованием прерываний или сигналов?

Должен ли я написать программу драйверов для этого?

Можете ли вы предложить ресурсы, которые я должен изучить?

+0

Посмотрите на блокировку, прочитанную на узле gpio. –

ответ

0

Вы должны взглянуть на ключ gpio на linux. После экспорта прерывания в/dev/input/eventXXX вы можете использовать инструмент evtest для проверки из пользовательского пространства.

+0

Благодарим вас за ответ. Я хотел бы сделать это в C. Какую библиотеку я бы использовал? Не могли бы вы объяснить больше? – user1458278

+0

Привет, Первое, что вам нужно узнать, как кнопка может прервать процессор, на SoC, как обычно, кнопка подключена к одному выходу gpio CPU. Когда вы знаете о том, как кнопка подключается к CPU, вы найдете правильный способ обработки прерывания. Об инструменте evtest вы можете получить его здесь [link (beagleboard.googlecode.com/files/evtest.c)]. это программа c. – nhtvinh

Смежные вопросы