Рассматривается способ определения количества ресурсов, необходимых для разработки аудио драйвера
Алгоритм оценки сложности написания драйвера:
Если ответ положительный, количество требуемого времени уменьшается, поскольку шина PCI хорошо стандартизирована и с высокой вероятностью у устройства есть DMA механизм. В этом случае можно использовать один из стандартных драйверов в качестве шаблона.
Если устройство находится на шине ISA, время разработки увеличивается, так как может потребоваться поддержка ISA PnP и других вопросов конфигурации, поиска и доступа к чипу. Чип может дополнительно нуждаться в отдельном DMA контроллере на стороне CPU для передачи данных. В качестве шаблона может использоваться драйвер для устройства Sound Blaster (sb).
Если устройство не относится ни к PCI, ни к ISA шинам, шаблон может быть найден среди интегрированных контроллеров SoC-систем. В этом случае имеет смысл изучить и PCI и ISA шаблоны.
Если ответ положительный, создание аудиодрайвера станет проще, так как аудио стек предоставляет библиотеки централизованного управления этими кодеками (библиотека контроллера). Если устройство доступно через шину PCI, можно использовать один из стандартных драйверов в качестве шаблона. В противном случае необходимо создать гибрид из шаблонов библиотек кодека и контроллера. Для дополнительной информации см. основные виды кодеков.
Если ответ отрицательный, то придется разрабатывать все управление микшером самостоятельно. В качестве шаблона может использоваться драйвер для устройства Sound Blaster (sb). Если устройство доступно через шину PCI, имеет смысл изучить и PCI, и ISA шаблоны.
Обработка нескольких потоков или подканалов требует больше усилий, но повышает эффективность использования оборудования. Если аудиокарта поддерживает только один поток, архитектура предоставляет интерфейс микширования PCM потоков, где множество потоков направляются в драйвер собранными воедино.
Если вы намереватесь поддерживать устройство на платформах с двумя типами порядка байтов, это повлияет на эффективность расходования ресурсов CPU, потому что данные придется конвертировать и при чтении, и при записи регистров.
Предыдущий раздел: Библиотека libado