Разработка драйверов устройств
Для многих электронных устройств, будь то PCI плата или USB девайс, очень часто требуется написание специализированного программного обеспечения и/или драйверов.
Драйвера устройств позволяют пользовательским приложениям получать доступ к функциям оборудования.
Именно драйвера устройств, находясь в ядре операционных систем, выполняют низкоуровневое программирование портов ввода вывода, могут отобразить физическое пространство портов платы в память пользовательсткого процесса, запрограммировать передачу данных по DMA (Direct Memory Access), выполнить обработку прерывания.
Написание драйверов - это трудная задача. Драйвера работают с оборудованием и ошибки в драйверах могут обернуться крахом операционной системы.
Специалисты "Инпро Плюс" имеют богатый опыт по созданию драйверов устройств для операционных систем Windows и Linux.
Мы используем Microsoft WDK, Windows Driver Kit для реализации драйверов для ОС Windows. WDK содержит набор из средств разработки, заголовочных файлов, библиотек, утилит необходимых для написания драйверов.
Для отладки драйверов Windows используется инструмент Microsoft WinDbg. С его помощью можно вести отладку кода ядра и приложений Windows, устанавливать точки останова, смотреть состояния регистров процессора, дамп памяти и многое другое.
Опыт написания драйверов Windows:
- miniport/display/framebuffer,
- audio,
- genpio,
- bus driver.
Написать драйвер для ОС Linux так же не очень просто. Задача усложняется тем, что в различных системах могут использоваться разные версии ядра (kernel) операционной системы и даже разные типы процессоров. Тем не менее, все возможно и все в наших руках.
Наш опыт написания драйверов Linux:
- genpio,
- USB HID,
- использование USBIP,
- video/framebuffer,
- jpeg decoder.
Зачастую, использование Linux для встраиваемых систем не только предпочтительно, но и является единственно возможным и приемлимым решением.