Мне необходимо написать драйвер дисплея, который подключается по последовательному порту.
Есть у меня модуль ядра, реализующий функционал консоли, из него изображение должно писаться в дисплей. Драйвер последовательного порта тоже есть.
Получается необходимо из одного драйвера обмениваться данными с другим драйвером.
Здесь могут помочь функции sys_open, sys_read, sys_close.
Однако открыть файл устройства во время загрузки системы - не представляется возможным. Следовательно мой дисплей заработает только после загрузки ОС. Что не очень радует.
Также думаю, что возникнут проблемы, если потребуется вывести, что-либо на экран из контекста прерывания.
Может быть кто-то подскажет как элегантнее реализовать мою задачу?
Совет по написанию драйвера
Модератор: Модераторы разделов
-
- Сообщения: 2041
- Статус: ☮ PEACE ☮
- ОС: открытая и свободная
Re: Совет по написанию драйвера
Так а зачем Вам открывать файл устройства? Вы можете передавать данные через подсистемы ядра. В этом случае, если я не ошибаюсь, input- или serio-subsystem (надо глянуть исходник).
Вот карта ядра, откуда можно узнать, через какие подсистемы взаимодействуют драйвера.
Посмотрите еще вот тут и тут... ну и тут тоже.
Labor omnia vincit
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
-
- Сообщения: 27
Re: Совет по написанию драйвера
Спасибо уважаемый Stauffenberg,
смотрю...
смотрю...
-
- Сообщения: 2041
- Статус: ☮ PEACE ☮
- ОС: открытая и свободная
Re: Совет по написанию драйвера
Немного неточно...
graphic card --> vga_con --> console --> tty
HI Subsystem
Все внимание на структуру struct consw vga_con; , та что вот тут
(linux/drivers/video/console/vgacon.c)
(linux/include/linux/console.h)
graphic card --> vga_con --> console --> tty
HI Subsystem
Все внимание на структуру struct consw vga_con; , та что вот тут
(linux/drivers/video/console/vgacon.c)
(linux/include/linux/console.h)
Labor omnia vincit
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
-
- Сообщения: 27
Re: Совет по написанию драйвера
Еще вопрос.
В файле tty_driver.h обьявляется структура struct list_head tty_drivers (вот тут)
Корректно ли будет найти в списке tty_drivers нужный драйвер и писать туда данные через методы tty_driver->ttys->ops?
В файле tty_driver.h обьявляется структура struct list_head tty_drivers (вот тут)
Корректно ли будет найти в списке tty_drivers нужный драйвер и писать туда данные через методы tty_driver->ttys->ops?
-
- Сообщения: 2041
- Статус: ☮ PEACE ☮
- ОС: открытая и свободная
Re: Совет по написанию драйвера
ох... так с ходу не ответишь. Надо досконально смотреть код. Попробуй и обязатально отпишись (:
Labor omnia vincit
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
-
- Сообщения: 95
- ОС: Slackware
Re: Совет по написанию драйвера
Дисплей графический? если да, то почему бы не написать framebuffer драйвер?
кто здесь?