Я новичок в процессе разработки в этом домене, поэтому мой вопрос может показаться не очень логичным.Возможно ли начать работу над API для аппаратного устройства перед тем, как иметь драйвер
Я работаю над проектом по созданию нового USB-устройства. Предположим, что это устройство является веб-камерой. Одной из основных особенностей этого устройства является то, что он должен иметь очень умный API, чтобы программисты могли получить широкий доступ к аппаратным частям. Например, управляя объективом камеры вручную с помощью ползунка, то же самое относится к интенсивности вспышки и фиксированию частоты кадров.
Насколько я знаю, все функциональные возможности устройства должны быть доступны и задокументированы драйвером устройства перед началом работы с API. К сожалению, меня попросили (как разработчика C/C++) начать разработку API в качестве метода для управления производственным процессом по его окончательной функциональности.
Нужно ли работать разработчику перед тем, как иметь драйвер устройства?
Кроме того, не могли бы вы предоставить мне пример кода (псевдокод) того, как API использует драйвер устройства для выполнения некоторых функций?
А как насчет исходного файла (реализации) для этого заголовка? Все ли включено в DLL драйвера? Другими словами, API является просто абстракцией (интерфейсом) для драйвера или он добавляет некоторую логику более высокого уровня, комбинируя несколько вызовов драйверов для выполнения какой-либо задачи? – Baraa
Вероятно, вы хотите, чтобы ваш драйвер был довольно простым, так как код на уровне ядра сложнее писать, а ошибки в нем имеют более серьезные последствия. И модернизация драйвера ядра будет сложнее. Таким образом, разделяемая библиотека пространства пользователя может содержать некоторые функции более высокого уровня, которые непосредственно не сопоставляются с одной командой драйвера. Это действительно зависит от вас, и вы, вероятно, найдете примеры обоих способов в мире, и они оба отлично справятся. –