Здравствуйте.
В драйвере com порта я использую безопасное распределение I/O портов.
С помощю check_region(...) проверяю порты 2F8 - 2FF, а в коде возврата
получаю: порты заняты.
Командой cat /proc/ioports получаю что:
2F8 - 2FF serial(auto)
3F8 - 3FF serial (auto)
Это система порты при инициализации выделяет?
Как мне их сделать свободными, чтобы я их мог безопасно распределить?
Помогите пожалуйста.
Проблемы в драйвере с распределением I/O: Serial(auto)
Проблемы в драйвере с распределением I/O: Serial(auto)
С Уважением Андрей.
lightport, возможно я ошибаюсь, диапазоны портов для RS-232 адаптеров стандартны. И особого смысла их менять я не вижу. С трудом понимаю, зачем писать драйвер com-порта? Это что, своя аппаратная реализация UART? По теме перераспределения адресов и прерываний наверное стоит смотреть код в ядре, отвечающий за работу с многопортовыми адаптерами.
Опыт растет прямо пропорционально выведенному из строя оборудованию
lightport, я очень плохо понимаю, зачем тебе управлять портом на уровне ядра. Опиши задачу. Выставление параметров порта делается через setserial или (ИМХО) через вызовы ядра из userspace. Зачем тебе делать ту работу, котору за тебя уже сделали? Да, ты можешь не использовать стандартный драйвер, а на основе его сделать или с нуля свой. Только зачем?
PS: По варезникам ходит книга Linux Device Drivers (вроде так называлвсь).
PS: По варезникам ходит книга Linux Device Drivers (вроде так называлвсь).
Опыт растет прямо пропорционально выведенному из строя оборудованию
Мне необходимо синхронизировать работу и управлять несколькими устройствами находящимися на значительном расстоянии друг от друга.
В этом случае привязка начала передачи синхрослова в канал должна
быть не хуже чем 1 микросекунда.
Поэтому необходима прямая работа с портами из драйвера.
В этом случае привязка начала передачи синхрослова в канал должна
быть не хуже чем 1 микросекунда.
Поэтому необходима прямая работа с портами из драйвера.
С Уважением Андрей.