|
Обмен данными между устройствами, или как по прерыванию передать данные из одного драйвера в другой? |
|
|
|
Apr 20 2016, 17:06
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 18-03-14
Пользователь №: 80 976

|
Всем доброго времени суток!
Имеется плата с ARM, АЦП и ДСП на борту. При получении данных от АЦП вырабатывается аппаратное прерывание, по которому нужно передать данные в ДСП, как это реализовать?
Первое что приходит голову, написать общий драйвер АЦП-ДСП, и в обработчике прерывания «отправить» данные. Однако, хочется, чтобы драйвера были независимые, тогда, получается нужен посредник, например демон, который будет передавать данные из одного драйвера в другой, но не пойму как ему сообщить о готовности данных. Думаю использовать raise_softirq в драйвере АЦП, а в демоне сделать его обработчик(open_softirq), но чувствую open_softirq работает только в пространстве ядра.
Подскажите, как обычно решают такую задачу, заранее спасибо.
|
|
|
|
|
 |
Ответов
|
Apr 22 2016, 17:17
|
Профессионал
    
Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439

|
Цитата(Viwon @ Apr 20 2016, 21:06)  Всем доброго времени суток!
Имеется плата с ARM, АЦП и ДСП на борту. При получении данных от АЦП вырабатывается аппаратное прерывание, по которому нужно передать данные в ДСП, как это реализовать?
Первое что приходит голову, написать общий драйвер АЦП-ДСП, и в обработчике прерывания «отправить» данные. Однако, хочется, чтобы драйвера были независимые, тогда, получается нужен посредник, например демон, который будет передавать данные из одного драйвера в другой, но не пойму как ему сообщить о готовности данных. Думаю использовать raise_softirq в драйвере АЦП, а в демоне сделать его обработчик(open_softirq), но чувствую open_softirq работает только в пространстве ядра.
Подскажите, как обычно решают такую задачу, заранее спасибо. Демоны в ядре не живут. Живут потоки (threads). Посмотрите на notifier chain facility. Возможно это то, что вам надо. https://people.cs.clemson.edu/~westall/853/...es/notifier.pdfhttp://www.linuxjournal.com/article/8144
|
|
|
|
|
Apr 25 2016, 09:27
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 18-03-14
Пользователь №: 80 976

|
Цитата(Tarbal @ Apr 22 2016, 20:17)  Посмотрите на notifier chain facility. Возможно это то, что вам надо. https://people.cs.clemson.edu/~westall/853/...es/notifier.pdfДа, спасибо, кажется то что нужно. Правда, механизм рассчитан на множество подписчиков, а у меня только один, есть некая избыточность.
Сообщение отредактировал Viwon - Apr 25 2016, 09:30
|
|
|
|
Сообщений в этой теме
Viwon Обмен данными между устройствами Apr 20 2016, 17:06 nill Ваше описание слишком запутано, чтоб можно было да... Apr 21 2016, 07:32 Viwon АЦП подключён к процессору(ARM), через специальный... Apr 21 2016, 11:57 nill Цитата(Viwon @ Apr 21 2016, 17:57) Если к... Apr 22 2016, 07:02  Viwon Цитата(nill @ Apr 22 2016, 10:02) А ARM н... Apr 22 2016, 13:20 Tarbal Вот здесь в конце описаны типичные ошибки при пере... Apr 23 2016, 20:09
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|