过去,您会寻找与设备通讯的基本地址,DMA和IRQ。我有点在寻找对等物。
我希望在Linux中直接与音频设备通信,而不是通过驱动程序。时间不是问题,但是我正在努力寻找所需的信息,并且我知道有可能需要大量代码,这很好。
我想知道是否有人可以为我指出实现这一目标的正确方向。
非常感谢。
答案 0 :(得分:2)
据我所知,如果您处于Linux的用户模式进程中,并且this guide(标题3)似乎可以确认您无法使用IRQ或DMA,但是经过检查后,我设法找到this Linux driver (udmabuf),使您可以通过用户空间访问DMA缓冲区;也许这就是您想要的?
否则,我会尝试写一个针对您的目的的(udmabuf)类似但更自定义的版本。
我不确定您打算将其用于什么,但是我首先要寻找的是为您想做的事情构建驱动程序(here's how to get started for ALSA仅作为示例)。至少要在此级别进行通信,除非您想进行自己的OS开发? (我认为,如果您真的不能出于任何目的使用驱动程序,那最终就是这样)。
答案 1 :(得分:0)
我自己回答这个问题感到很遗憾,WoodyDev,谢谢您为我指明了正确的方向。
是的,驾驶是最好的选择。
最好的解决方案是读取PCI地址空间,前64个字节包含所有需要的数据。
https://www.safaribooksonline.com/library/view/linux-device-drivers/0596000081/ch15.html