Linux ALSA 系統架構

2021-06-05 21:32:44 字數 902 閱讀 6353

alsa是linux音效卡驅動的架構,下面基於linux-2.6.32描述下alsa系統架構。alsa系統可以分為alsa-lib、alsa-driver,而alsa-driver又分為core層和底層硬體層。作為開發者,我們只需移植底層硬體層,根據自己硬體特性,實現底層的移植。而core層基本屬於alsa標準框架,不需要自己實現。介紹alsa框架,下面是大體框架圖。

如上圖所示,alsa驅動最終會被上層應用呼叫,這是通過alsa-lib實現的,alsa-lib為alsa-driver封裝了許多api,通過這些api,上層應用可以呼叫到驅動層。而alsa-lib中的這些api,我們可暫時把他們當做乙個黑盒子,裡面具體實現不需要去關注,下面以linux-2.6.32中alsa呼叫函式關係說明其架構。先分析alsa驅動的註冊過程。

一、alsa驅動的註冊

註冊流程檢視上圖,具體的註冊過程不在此贅述。

二、開啟流程

在alsa驅動註冊完畢以後,當應用程式開始呼叫時,會有乙個過程:開啟裝置、對映、設定硬體引數、準備工作、觸發資料流。下圖為整個流程。

帶sep0611的是需要自己實現的底層驅動。

三、寫資料流程

Linux ALSA 系統架構

alsa是linux音效卡驅動的架構,下面基於linux 2.6.32描述下alsa系統架構。alsa系統可以分為alsa lib alsa driver,而alsa driver又分為core層和底層硬體層。作為開發者,我們只需移植底層硬體層,根據自己硬體特性,實現底層的移植。而core層基本屬於...

Linux ALSA 系統架構

alsa是linux音效卡驅動的架構,下面基於linux 2.6.32描述下alsa系統架構。alsa系統可以分為alsa lib alsa driver,而alsa driver又分為core層和底層硬體層。作為開發者,我們只需移植底層硬體層,根據自己硬體特性,實現底層的移植。而core層基本屬於...

Linux ALSA 系統架構

alsa是linux音效卡驅動的架構,下面基於linux 2.6.32描述下alsa系統架構。alsa系統可以分為alsa lib alsa driver,而alsa driver又分為core層和底層硬體層。作為開發者,我們只需移植底層硬體層,根據自己硬體特性,實現底層的移植。而core層基本屬於...