分析Linux ALSA系統架構
轉自:http://www.it165.net/os/html/201207/2859.html
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驅動註冊完畢以後,當應用程式開始呼叫時,會有一個過程:開啟裝置、對映、設定硬體引數、準備工作、觸發資料流。下圖為整個流程。
帶sep0611的是需要自己實現的底層驅動。
三、寫資料流程
圖中應用程式通過ALSA-lib的API函式寫入資料,ALSA-lib呼叫等待函式等待底層可寫。ALSA-lib通過poll系統呼叫進入底層驅動並將poll訊號加入sleep佇列阻塞程序。硬體的中斷訊號觸發底層驅動註冊的中斷處理函式,中斷處理函式進而呼叫ALSA-driver中的函式判讀是否該寫。ALSA-driver中的函式再呼叫底層晶片硬體驅動獲取硬體當前資料大小。ALSA-driver再判斷空閒資料區的大小,如果滿足條件就喚醒sleep佇列,poll訊號從而被喚醒,進而返回給ALSA-lib,ALSA-lib收到訊號後再執行往buffer裡寫資料。
ALSA-lib通過mmap機制將硬體申請的記憶體對映到使用者空間,從而應用程式只需呼叫ALSA-lib往相應位置寫資料,硬體就可以直接讀取了。如果對映記憶體裡已有資料,通過DMA傳輸給codec,codec便開始讀取資料並進行解碼播放聲音了。經過測試,基於sep6200的ALSA音效卡驅動工作正常,既可以播放聲音也可以錄製。
相關推薦
分析Linux ALSA系統架構
轉自:http://www.it165.net/os/html/201207/2859.html ALSA是Linux音效卡驅動的架構,下面基於linux-2.6.32描述下ALSA系統架構。ALSA系統可以分為alsa-lib、alsa-driv
Linux ALSA 系統架構
ALSA是Linux音效卡驅動的架構,下面基於linux-2.6.32描述下ALSA系統架構。ALSA系統可以分為alsa-lib、alsa-driver,而alsa-driver又分為core層和底層硬體層。作為開發者,我們只需移植底層硬體層,根據自己硬體特
Linux ALSA音效卡驅動之一:ALSA系統架構
Linux ALSA 系統架構ALSA 是Linux音效卡驅動的架構,下面基於linux-2.6.32描述下ALSA系統架構。ALSA系統可以分為alsa-lib、alsa- driver,而alsa-driver又分為core層和底層硬體層。作為開發者,我們只需移植底層硬
電商平臺-電商促銷業務分析設計與系統架構
左側為享受促銷的資格,常見為這三種: 首單 大於或等於某個會員級別 特定會員組:比如女性,月消費滿1000等等,都是通過查詢條件查詢出來的特定分組。 優惠型別,對於電商網站主要是下面4類:
【分析】Ceph系統架構與基本概念
Ceph系統架構與基本概念 Ceph是一種為優秀的效能、可靠性和可擴充套件性而設計的統一的、分散式儲存系統。 “統一”表示Ceph一套儲存系統可以同時提供物件儲存、塊儲存和檔案系統儲存三種功能,以便在滿足不同應用需求的前提下簡化部署和運維。 “分散式”表示C
Android ALSA音訊系統架構分析(1)----從Loopback瞭解Audio
/************************************ Author:劉江明 * Environment:MTK Android 6.0* Date:2017年05月25日***********************************/
Linux內核分析+子安全系統selinux+Linux的用戶組和用戶
rm命令 裝載 hidden 其他 今天 ups nfs 根目錄 開機 一.Linux內核分析/etc/grub.conf文件 1.passwd命令 Linux以安全性和穩定性在世界上自居,在Linux發明之初就在安全領域做了很多手段,其中最簡單就是提供了密碼的登錄和密碼修
秒殺系統架構分析與實戰
選擇 return 暫時 memcached something 關心 附加 ron sta 1 秒殺業務分析 正常電子商務流程(1)查詢商品;(2)創建訂單;(3)扣減庫存;(4)更新訂單;(5)付款;(6)賣家發貨 秒殺業務的特性(1)低廉價格;(2)大幅推廣;
秒殺系統架構分析
public -type 無法 營銷 僵屍 原因 程序員 上架 抽獎 #1 秒殺業務分析# 正常電子商務流程 (1)查詢商品;(2)創建訂單;(3)扣減庫存;(4)更新訂單;(5)付款;(6)賣家發貨 秒殺業務的特性 (1)低廉價格;(2)大幅推廣;(3)瞬時售空;
高性能系統架構分析
存在 tail lis cdn加速 速度 blog 好的 可能 功能 什麽樣的系統架構算是高性能的呢?我的理解是它是以用戶為中心,提供快速的網頁訪問體驗。主要參數有較短的響應時間,較大的並發處理能力,較高的吞吐量,穩定的性能參數。 具體優化的方向可分為前端優化,應用層優化,
linux系統知識 - 系統架構
內核的功能 管理 .html 自身 功能 系統調用 計算 一個 lan 作者:Vamei 出處:http://www.cnblogs.com/vamei 歡迎轉載,也請保留這段聲明。謝謝! 參考地址 http://www.cnblogs.com/vamei/archive/
第一次作業:基於Linux操作系統的進程模型分析
一起 正常 std 文本 pid 存儲 time 計算機 關於 1.什麽是進程 ·進程(Process)是計算機中的程序關於某數據集合上的一次運行活動,是系統進行資源分配和調度的基本單位,是操作系統結構的基礎。它不只是程序的代碼,還包括當前的活動,通過程序計數器的值和處理寄
第一次作業:基於linux操作系統深入源碼進程模型分析
getpid tree 容器 svi 執行過程 網絡服務 -h cfs 阻塞 1.關於進程 定義: 進程(Process)是計算機中的程序關於某數據集合上的一次運行活動,是系統進行資源分配和調度的基本單位,是操作系統結構的基礎。在早期面向進程設計的計算機結構中,進程
第一次作業:深入分析Linux系統進程
pac 重要 模型 組織 zombie linu lsp wid color 前言:在現在的操作系統中有很多種,我主要是講講Linux操作系統的,首先我們了解一下Linux系統,Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、
詳細分析大型web系統各個子系統架構圖 純乾貨!
轉載:波波說運維 2018-10-06 00:04:02 概述 動態應用,是相對於網站靜態內容而言,是指以c/c++、php、Java、perl、.net等伺服器端語言開發的網路應用軟體,比如論壇、網路相簿、交友、BLOG等常見應用。動態應用系統通常與資料庫系統、
網購秒殺系統架構設計案例分析——《大型網站技術架構》筆記
一、核心思想: 網站秒殺時的併發比正常運營時多的多,所以網站的秒殺業務不能使用正常的網站業務流程,也不能和正常的網站交易業務共用伺服器(否則造成巨大浪費),必須設計部署專門的秒殺系統,進行專門應對 二、技術挑戰: 1.對現有網站業務造成衝擊:秒殺活動只是網站營銷的一個附加活動,具有時間短
Tomcat系統架構分析
3). 11. Server.xml <Engine defaultHost="localhost" name="Catalina"> <Valve className="org.apache.c
《深入分析JavaWeb技術內幕》之 11-Tomcat系統架構與設計模式
1、 分發請求 2 、同時請求 3、 多級容器 4、 設計模式 Tomcat的組織結構 https://www.cnblogs.com/zhouyuqin/p/5143121.html Tomcat Server處理一個HTTP請求的
《深入分析JavaWeb技術內幕》之 15-iBatis系統架構與對映原理
關鍵詞: 對映、 反射 &
Ext4檔案系統架構分析(一)
本文描述Ext4 檔案系統磁碟佈局和元資料的一些分析,同樣適用於ext2,ext3檔案系統,除了它們不支援的ext4的特性。整個分析分兩篇博文,分別概述佈局和詳細介紹各個佈局的資料結構及組織定址方式等。 1.Ext4 檔案系統佈局綜述 一個Ext4 檔案系統被分成一系列