嵌入式Linux音频驱动开发最简短的回答是行动。by赫伯特 干就是了。 嵌入式Linux音频驱动开发必备知识数字音频(必备)声卡驱动(必备)编程接口(必备)应用框架(必备) 我们年轻时坚持一些自己认为是正确的东西的时候,总有些长辈,完全是出于善意好心,过来提醒你,告诉你这个社会不像你想的那样,如果你要想怎么样,就必须怎么怎么样。这种话你是不是听过很多次啊?我长大的过程中也不断地听到这种话,我从来都不听,我就一直坚持我年轻时认为是正确的东西。——罗永浩 嵌入式Linux音频驱动开发,主要是基于两种声卡驱动。
01Open Sound System「OSS」 Open Sound System「OSS」是一个类 Unix 和 POSIX 兼容系统上一个可选的音频架构。OSSv3是 Linux 下原始的声音系统并集成在内核里。但是 OSSv4 在2002年 OSS 称为商业软件时它的地位被 ALSA 所取代。 OSSv4 在 2007 年又称为了开源软件,4Front Technologies 以 GPL 协议发布了它的源码。 02Advanced Linux Sound Architecture 高级 Linux 声音体系「Advanced Linux Sound Architecture」是 Linux 中提供声音设备驱动的内核组件,用来代替原来的开放声音系统(Open Sound System,OSSv3)。除了声音设备驱动,ALSA 还包含一个用户空间的函数库,开发者可以通过这些高级 API 使用驱动,不必直接与内核驱动进行交互。 Open Sound System「OSS」与 Advanced Linux Sound Architecture 对比的优缺点。 OSS的优点「对用户来说」
OSS的优点「对开发者来说」
ALSA 的优点
OSS API 文档链接:「http://manuals.opensound.com/developer/」 出于对安全性方面的考虑,Linux下的应用程序无法直接对声卡这类硬件设备进行操作,而是必须通过内核提供的驱动程序才能完成。在Linux上进行音频编程的本质就是要借助于驱动程序,来完成对声卡的各种操作。 对硬件的控制涉及到寄存器中各个比特位的操作,通常这是与设备直接相关并且对时序的要求非常严格,如果这些工作都交由应用程序员来负责,那么对声卡的编程将变得异常复杂而困难起来,驱动程序的作用正是要屏蔽硬件的这些底层细节,从而简化应用程序的编写。 奋斗的小青年,终生学习者 有趣的灵魂终会遇见。 ---------------------------------------------------------------------------------------------------------------------- 我们尊重原创,也注重分享,文章来源于微信公众号:Kende,建议关注公众号查看原文。如若侵权请联系qter@qter.org。 ---------------------------------------------------------------------------------------------------------------------- |