:linux 文章 進(jìn)入:linux技術(shù)社區(qū)
Linux ALSA聲卡驅(qū)動之三:PCM設(shè)備的創(chuàng)建
- 1. PCM是什么 PCM是英文Pulse-code modulation的縮寫,中文譯名是脈沖編碼調(diào)制。我們知道在現(xiàn)實生活中,人耳聽到的聲音是模擬信號,PCM就是要把聲音從模擬轉(zhuǎn)換成數(shù)字信號的一種技術(shù),他的原理簡單地說就是利用一個固定的頻率對模擬信號進(jìn)行采樣,采樣后的信號在波形上看就像一串連續(xù)的幅值不一的脈沖,把這些脈沖的幅值按一定的精度進(jìn)行量化,這些量化后的數(shù)值被連續(xù)地輸出、傳輸、處理或記錄到存儲介質(zhì)中,所有這些組成了數(shù)字音頻的產(chǎn)生過程?! ?nbsp; 圖
- 關(guān)鍵字: Linux ALSA
linux中斷處理原理分析
- Tasklet作為一種新機(jī)制,顯然可以承擔(dān)更多的優(yōu)點。正好這時候SMP越來越火了,因此又在tasklet中加入了SMP機(jī)制,保證同種中斷只能在一個cpu上執(zhí)行。在軟中斷時代,顯然沒有這種考慮。因此同一種中斷可以在兩個cpu上同時執(zhí)行,很可能造成沖突?! inux中斷下半部處理有三種方式:軟中斷、tasklet、工作隊列?! ≡?jīng)有人問我為什么要分這幾種,該怎么用。當(dāng)時用書上的東西蒙混了過去,但是自己明白自己實際上是不懂的。最近有時間了,于是試著整理一下linux的中斷處理機(jī)制,目的是起碼從原理上能夠
- 關(guān)鍵字: linux 中斷
linux世界里的時間
- 通常,操作系統(tǒng)可以使用三種方法來表示系統(tǒng)的當(dāng)前時間與日期: ?、僮詈唵蔚囊环N方法就是直接用一個64位的計數(shù)器來對時鐘滴答進(jìn)行計數(shù)。 ?、诘诙N方法就是用一個32位計數(shù)器來對秒進(jìn)行計數(shù),同時還用一個32位的輔助計數(shù)器對時鐘滴答計數(shù),之子累積到一秒為止。因為232超過136年,因此這種方法直至22世紀(jì)都可以讓系統(tǒng)工作得很好?! 、鄣谌N方法也是按時鐘滴答進(jìn)行計數(shù),但是是相對于系統(tǒng)啟動以來的滴答次數(shù),而不是相對于相對于某個確定的外部時刻;當(dāng)讀外部后備時鐘(如RTC)或用戶輸入實際時間時,根據(jù)當(dāng)前的滴答次數(shù)計
- 關(guān)鍵字: linux 時鐘
Linux驅(qū)動程序?qū)W習(xí)步驟經(jīng)典收藏
- 了解linux驅(qū)動程序技巧學(xué)習(xí)的方法很重要,學(xué)習(xí)linux操作系統(tǒng)時,你可能會遇到關(guān)于驅(qū)動方面的問題,這里將介紹學(xué)習(xí)linux驅(qū)動程序的方法,在這里拿出來和大家分享一下。 1.學(xué)會寫簡單的makefile 2.編一應(yīng)用程序,可以用makefile跑起來 3.學(xué)會寫linux驅(qū)動程序的makefile 4.寫一簡單char驅(qū)動,makefile編譯通過,可以insmod,lsmod,rmmod.在驅(qū)動程序的init函數(shù)里打印helloworld,insmod后應(yīng)該能夠通過dmes
- 關(guān)鍵字: Linux 驅(qū)動程序
Linux ALSA聲卡驅(qū)動之二:聲卡的創(chuàng)建
- 1.?struct?snd_card?1.1.?snd_card是什么snd_card可以說是整個ALSA音頻驅(qū)動最頂層的一個結(jié)構(gòu),整個聲卡的軟件邏輯結(jié)構(gòu)開始于該結(jié)構(gòu),幾乎所有與聲音相關(guān)的邏輯設(shè)備都是在snd_card的管理之下,聲卡驅(qū)動的第一個動作通常就是創(chuàng)建一個snd_card結(jié)構(gòu)體。正因為如此,本節(jié)中,我們也從?struct?cnd_card開始吧。1.2.?snd_card的定義snd_card的定義位于改頭文件中:includ
- 關(guān)鍵字: Linux ALSA
Linux音頻驅(qū)動之一:ALSA架構(gòu)簡介
- 一. 概述 ALSA是Advanced Linux Sound Architecture 的縮寫,目前已經(jīng)成為了linux的主流音頻體系結(jié)構(gòu),想了解更多的關(guān)于ALSA的這一開源項目的信息和知識,請查看以下網(wǎng)址:http://www.alsa-project.org/。 在內(nèi)核設(shè)備驅(qū)動層,ALSA提供了alsa-driver,同時在應(yīng)用層,ALSA為我們提供了alsa-lib,應(yīng)用程序只要調(diào)用alsa-lib提供的API,即可以完成對底層音頻硬件的控
- 關(guān)鍵字: Linux ALSA
Linux內(nèi)核開發(fā)之中斷與時鐘(一)
- “小王,醒醒,開始上課了,今天咱們開始講中斷,這可是高級東西,錯過不補(bǔ)哈”我使勁推著睡夢中的小王?! 班?感情好啊,快點,快點”小王一聽有新東西講,像打了雞血似的興奮,連我都懷疑起她是不是性格中喜新厭舊。 不管那么多了,我講我的,她厭她的… 啥叫中斷?就是指cpu在執(zhí)行過程中,出現(xiàn)了某些突發(fā)事件時CPU必須暫停執(zhí)行當(dāng)前的程序,轉(zhuǎn)去處理突發(fā)事件,處理完畢后CPU有返回原程序被中斷的位置并繼續(xù)執(zhí)行?! ≈袛嗟姆址ú欢?,分類就不同,向什么內(nèi)外部中斷,可/不可屏蔽中斷…等等亂七八糟一大堆,我這里要說明的
- 關(guān)鍵字: Linux 中斷
[ARM筆記]設(shè)備IO端口和IO內(nèi)存的訪問
- 設(shè)備通常會提供一組寄存器來用于控制設(shè)備、讀寫設(shè)備和獲取設(shè)備狀態(tài),即控制寄存器、數(shù)據(jù)寄存器和狀態(tài)寄存器。這些寄存器可能位于IO空間,也可能位于內(nèi)存空間。當(dāng)位于IO空間時,通常被稱為IO端口,位于內(nèi)存空間時,對應(yīng)的內(nèi)存空間成為IO內(nèi)存?! ?. Linux IO端口和IO內(nèi)存訪問接口 1.1 IO端口 在Linux設(shè)備驅(qū)動中,應(yīng)使用Linux內(nèi)核提供的函數(shù)來訪問定位于IO空間的端口,這些函數(shù)包括如下幾種: (1)讀寫字節(jié)端口(8位寬) unsigned in
- 關(guān)鍵字: ARM Linux
基于S3C2410的Linux驅(qū)動程序開發(fā)
- 1. 開發(fā)環(huán)境的建立在嵌入式系統(tǒng)中,由于目標(biāo)機(jī)資源有限,因此通常是在主機(jī)上編譯好驅(qū)動程序以及應(yīng)用程序,然后通過串口、以太網(wǎng)、仿真器或其他通信手段與目標(biāo)機(jī)通信。為了方便進(jìn)行Linux設(shè)備驅(qū)動的開發(fā)和調(diào)試,首先必須建立良好的開發(fā)環(huán)境,包括交叉編譯環(huán)境的建立、minicom的設(shè)置以及nfs網(wǎng)絡(luò)文件系統(tǒng)的建立?! ?1) 交叉編譯環(huán)境由于我采用的是ARM9 S3C2410處理器,因此必須在主機(jī)上建立針對目標(biāo)板處理器的GNU工具鏈,這個過程相當(dāng)復(fù)雜繁瑣,開發(fā)者可以采用編譯好的針對A
- 關(guān)鍵字: S3C2410 Linux
基于斯道S3C2410的Linux內(nèi)核編譯
- 1。編譯緣由 使用斯道的zImage文件,我自己編譯的Mplayer不能使用,必須加--nosound選項才能播放視頻。后來見一篇文章說是Linux內(nèi)核音頻驅(qū)動的問題,所以決定重新編譯內(nèi)核。 2。編譯工具及資料 2。1內(nèi)核版本:斯道S3C2410普及版2光盤自帶的 2。1交叉編譯器:cross-2.95.3.tar.bz2,可能是在ARM官方的ftp服務(wù)器上下的,我忘了。 3。編譯過程 3。1拷貝cross-2.95.3.tar.bz2到/usr/local/arm/目錄,并轉(zhuǎn)到/usr/
- 關(guān)鍵字: S3C2410 Linux
[ARM筆記]設(shè)備驅(qū)動概述
- 1. 設(shè)備驅(qū)動和操作系統(tǒng) 1.1 無操作系統(tǒng)時的設(shè)備驅(qū)動 在沒有操作系統(tǒng)的情況下,設(shè)備驅(qū)動的接口直接提交給應(yīng)用軟件工程師,應(yīng)用軟件沒有跨越任何層次就可以直接訪問設(shè)備驅(qū)動的接口。驅(qū)動包含的接口函數(shù)也與硬件的功能直接吻合,沒有任何附加功能?! ?.2 有操作系統(tǒng)時的設(shè)備驅(qū)動 沒有操作系統(tǒng)時,設(shè)備驅(qū)動直接被應(yīng)用程序調(diào)用,不與任何操作系統(tǒng)關(guān)聯(lián)。當(dāng)系統(tǒng)中包含操作系統(tǒng)后,設(shè)備驅(qū)動會變得怎樣? 首先,無操作系統(tǒng)時設(shè)備驅(qū)動的硬件操作仍然是必不可少的,沒有這一部分,設(shè)備驅(qū)動不可能與
- 關(guān)鍵字: ARM Linux
:linux介紹
您好,目前還沒有人創(chuàng)建詞條:linux!
歡迎您創(chuàng)建該詞條,闡述對:linux的理解,并與今后在此搜索:linux的朋友們分享。 創(chuàng)建詞條
歡迎您創(chuàng)建該詞條,闡述對:linux的理解,并與今后在此搜索:linux的朋友們分享。 創(chuàng)建詞條
關(guān)于我們 -
廣告服務(wù) -
企業(yè)會員服務(wù) -
網(wǎng)站地圖 -
聯(lián)系我們 -
征稿 -
友情鏈接 -
手機(jī)EEPW
Copyright ?2000-2015 ELECTRONIC ENGINEERING & PRODUCT WORLD. All rights reserved.
《電子產(chǎn)品世界》雜志社 版權(quán)所有 北京東曉國際技術(shù)信息咨詢有限公司
京ICP備12027778號-2 北京市公安局備案:1101082052 京公網(wǎng)安備11010802012473
Copyright ?2000-2015 ELECTRONIC ENGINEERING & PRODUCT WORLD. All rights reserved.
《電子產(chǎn)品世界》雜志社 版權(quán)所有 北京東曉國際技術(shù)信息咨詢有限公司
京ICP備12027778號-2 北京市公安局備案:1101082052 京公網(wǎng)安備11010802012473