![]() 嵌入式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。 ---------------------------------------------------------------------------------------------------------------------- |