URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 3426
[ Назад ]

Исходное сообщение
"Re: работа с портами ввода/вывода"

Отправлено Bobson , 29-Сен-04 15:06 
Моя прога написанная под Linux Red Hat 7.2 (ядро v.2.4.7-10) на С++ для перехода из одного состояния в другое постоянно обращается к параллельному порту через inb(). Мне необходимо, чтобы переход в проге осуществлялся через прерывание параллельного порта. Как это сделать? Именно под Linux! Помогите пожалуйста. Очень нужно. Если не трудно, бросьте, в качестве иллюстрации, маленький исходничек.
Заранее благодарен.

Содержание

Сообщения в этом обсуждении
"Re: работа с портами ввода/вывода"
Отправлено Maxim Kuznetsov , 29-Сен-04 15:39 
>Моя прога написанная под Linux Red Hat 7.2 (ядро v.2.4.7-10) на С++
>для перехода из одного состояния в другое постоянно обращается к параллельному
>порту через inb(). Мне необходимо, чтобы переход в проге осуществлялся через
>прерывание параллельного порта. Как это сделать? Именно под Linux! Помогите пожалуйста.
>Очень нужно. Если не трудно, бросьте, в качестве иллюстрации, маленький исходничек.
>
>Заранее благодарен.

поработать с прерываниями/dma в обычном Линуксе можно только в ядре.
Но есть выход -
1) посмотрите real-time Linux (поищите в google),
помниться есть дистр. (патч к ядру) в котором организованн есть возможность работы с аппаратными ресурсами из обычного приложения.
2) переписать прогу - сделать из неё модуль ядра (или из той части проги которая слишком завязанна на аппаратуру)
На мой взгляд - второй путь наиболее правильный.


"Re: работа с портами ввода/вывода"
Отправлено kir , 29-Сен-04 19:27 
>Моя прога написанная под Linux Red Hat 7.2 (ядро v.2.4.7-10) на С++
>для перехода из одного состояния в другое постоянно обращается к параллельному
>порту через inb(). Мне необходимо, чтобы переход в проге осуществлялся через
>прерывание параллельного порта. Как это сделать? Именно под Linux! Помогите пожалуйста.
>Очень нужно. Если не трудно, бросьте, в качестве иллюстрации, маленький исходничек.
>
>Заранее благодарен.

;-)))
ненужно путать M$ решения - такого понятия как установить interrupt handler в linux можно на уровне ядра
поэтому выбирайте второй пункт а ответе выше :)