Проблемы в драйвере с распределением I/O: Serial(auto)

Все о программировании под *nix
lightport
Заглянувший
Сообщения: 5
Зарегистрирован: 20 авг 2004, 15:49
Откуда: Минск

Проблемы в драйвере с распределением I/O: Serial(auto)

Сообщение lightport »

Здравствуйте.

В драйвере com порта я использую безопасное распределение I/O портов.

С помощю check_region(...) проверяю порты 2F8 - 2FF, а в коде возврата
получаю: порты заняты.

Командой cat /proc/ioports получаю что:
2F8 - 2FF serial(auto)
3F8 - 3FF serial (auto)

Это система порты при инициализации выделяет?
Как мне их сделать свободными, чтобы я их мог безопасно распределить?

Помогите пожалуйста.
С Уважением Андрей.

michael
Неотъемлемая часть форума
Сообщения: 434
Зарегистрирован: 12 апр 2004, 11:00
Откуда: г. Владивосток
Контактная информация:

Сообщение michael »

А разве это не означает, что у тебя уже загружен модуль serial (или, может быть, он встроен в ядро), который и занимает эти порты?

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

lightport, возможно я ошибаюсь, диапазоны портов для RS-232 адаптеров стандартны. И особого смысла их менять я не вижу. С трудом понимаю, зачем писать драйвер com-порта? Это что, своя аппаратная реализация UART? По теме перераспределения адресов и прерываний наверное стоит смотреть код в ядре, отвечающий за работу с многопортовыми адаптерами.
Опыт растет прямо пропорционально выведенному из строя оборудованию

lightport
Заглянувший
Сообщения: 5
Зарегистрирован: 20 авг 2004, 15:49
Откуда: Минск

Сообщение lightport »

Дело в том, что мне нужно управлять COM портами на уровне ядра.

А можно подключить мой драйвер к стандартному драйверу COM порта?
Если да, то как это делаеть?

Я плохо понимаю почему моему модулю нельзя выделить I/O порты COM
портов.
С Уважением Андрей.

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

lightport, я очень плохо понимаю, зачем тебе управлять портом на уровне ядра. Опиши задачу. Выставление параметров порта делается через setserial или (ИМХО) через вызовы ядра из userspace. Зачем тебе делать ту работу, котору за тебя уже сделали? Да, ты можешь не использовать стандартный драйвер, а на основе его сделать или с нуля свой. Только зачем?
PS: По варезникам ходит книга Linux Device Drivers (вроде так называлвсь).
Опыт растет прямо пропорционально выведенному из строя оборудованию

lightport
Заглянувший
Сообщения: 5
Зарегистрирован: 20 авг 2004, 15:49
Откуда: Минск

Сообщение lightport »

Мне необходимо синхронизировать работу и управлять несколькими устройствами находящимися на значительном расстоянии друг от друга.
В этом случае привязка начала передачи синхрослова в канал должна
быть не хуже чем 1 микросекунда.
Поэтому необходима прямая работа с портами из драйвера.
С Уважением Андрей.

Ответить