Базовый адрес аудио драйвера, DMA и IRQ - PullRequest
0 голосов
/ 28 июня 2018

В старые времена вы смотрели на поиск базового адреса, DMA и IRQ для связи с устройством. Я в некотором роде ищу эквивалент.

Я ищу связь с аудиоустройством напрямую, а не через драйвер, в Linux. Время не проблема, но я изо всех сил пытаюсь найти информацию, которая мне нужна, и я знаю, что есть вероятность того, что потребуется много кода, это нормально.

Мне было интересно, может ли кто-нибудь указать мне правильное направление для достижения этого.

Спасибо большое.

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Я чувствую себя плохо, отвечая на это сам, WoodyDev, спасибо, что указал мне правильное направление.

Вы правы, водитель - лучший путь.

Лучшее решение - прочитать адресное пространство PCI, первые 64 байта содержат все необходимые данные.

https://www.safaribooksonline.com/library/view/linux-device-drivers/0596000081/ch15.html

0 голосов
/ 28 июня 2018

Насколько мне известно, вы не можете использовать IRQ или DMA, если вы находитесь в пользовательском режиме из linux и это руководство (заголовок 3), кажется, подтверждает это, однако после проверки Мне удалось найти этот драйвер Linux (udmabuf) , который позволяет вам обращаться к буферам DMA через пространство пользователя; Может быть, это то, что вы ищете?

В противном случае я мог бы попытаться написать аналогичную, но более настроенную версию (udmabuf) , специфичную для вашей цели.

Я не совсем уверен, для чего вы планируете его использовать, но первое, что я искал, это создание драйвера для того, что вы хотели сделать ( вот как начать работу с ALSA просто в качестве примера). По крайней мере, для общения на этом уровне, если вы не хотели заниматься разработкой собственной ОС? (Я думаю, что в конце концов так и будет, если вы действительно не сможете использовать драйверы для каких-либо целей)

...