原创 2019 諸事大吉

2019關鍵詞:高質量

原创 Linux IDR機制

IDR機制在Linux內核中指的是整數ID管理機制。 實質上來講,這就是一種將一個整數ID號和一個指針關聯在一起的機制。 這個機制最早在03年2月加入內核,當時作爲POSIX定時器的一個補丁。現在,內核中很多地方都可以找到它的身影。  

原创 Linux ALSA框架之八:ASoC架構中的Platform

1. Platform驅動在ASoC中的作用 前面幾章內容已經說過,ASoC被分爲Machine,Platform和Codec三大部件,Platform驅動的主要作用是完成音頻數據的管理,最終通過CPU的數字音頻接口(DAI)把音頻數據

原创 LOG_NDEBUG作用

log.h文件: /*  * Normally we strip ALOGV (VERBOSE messages) from release builds.  * You can modify this (for example with

原创 Linux ALSA框架之四:Control設備的創建

Control接口 Control接口主要讓用戶空間的應用程序(alsa-lib)可以訪問和控制音頻codec芯片中的多路開關,滑動控件等.對於Mixer(混音)來說,Control接口顯得尤爲重要,從ALSA 0.9.x版本開始,所有

原创 堆排序

堆排序與快速排序,歸併排序一樣都是時間複雜度爲O(N*logN)的幾種常見排序方法。學習堆排序前,先講解下什麼是數據結構中的二叉堆。 二叉堆的定義 二叉堆是完全二叉樹或者是近似完全二叉樹。 二叉堆滿足二個特性: 1.父結點的鍵值總是大於或

原创 Opensource License

開源許可證GPL、BSD、MIT、Mozilla、Apache和LGPL的區別 以下是上述協議的簡單介紹:BSD開源協議 BSD開源協議是一個給於使用者很大自由的協議。基本上使用者可以”爲所欲爲”,可以自

原创 Linux ALSA框架之三:PCM設備的創建

1. PCM是什麼 PCM是英文Pulse-code modulation的縮寫,中文譯名是脈衝編碼調製.我們知道在現實生活中,人耳聽到的聲音是模擬信號,PCM就是要把聲音從模擬轉換成數字信號的一種技術,他的原理簡單地說就是利用一個固定

原创 數據結構中常見的樹(BST二叉搜索樹、AVL平衡二叉樹、RBT紅黑樹、B-樹、B+樹、B*樹)

ST樹        即二叉搜索樹:        1.所有非葉子結點至多擁有兩個兒子(Left和Right);        2.所有結點存儲一個關鍵字;        3.非葉子結點的左指針指向小於其關鍵字的子樹,右指針指向大

原创 Linux ALSA框架之七:ASoC架構中的Codec

1. Codec簡介 在移動設備中,Codec的作用可以歸結爲4種,分別是:  對PCM等信號進行D/A轉換,把數字的音頻信號轉換爲模擬信號對Mic、Linein或者其他輸入源的模擬信號進行A/D轉換,把模擬的聲音信號轉變CPU能夠處理

原创 Linux ALSA框架之六:ASoC架構中的Machine

前面一節的內容我們提到,ASoC被分爲Machine、Platform和Codec三大部分,其中的Machine驅動負責Platform和Codec之間的耦合以及部分和設備或板子特定的代碼,再次引用上一節的內容:Machine驅動負責處

原创 JTAG調試原理

JTAG(Joint Test Action Group,聯合測試行動小組)是一種國際標準測試協議,主要用於芯片內部測試。現在多數的高級器件都支持JTAG協議,如ARM、DSP、FPGA器件等。標準的JTAG接口是4線:TMS、 TCK、

原创 alsa調用

ALSA打開數據流程     soc_pcm_open => cpu_dai->driver->ops->startup => platform->driver->ops->open => codec_dai->driver->ops->

原创 linux awk命令詳解

簡介 awk是一個強大的文本分析工具,相對於grep的查找,sed的編輯,awk在其對數據分析並生成報告時,顯得尤爲強大。簡單來說awk就是把文件逐行的讀入,以空格爲默認分隔符將每行切片,切開的部分再進行各種分析處理。 awk有3個不同版

原创 Linux ALSA框架之二:聲卡的創建

1. struct snd_card 1.1 snd_card是什麼 snd_card可以說是整個ALSA音頻驅動最頂層的一個結構,整個聲卡的軟件邏輯結構開始於該結構,幾乎所有與聲音相關的邏輯設備都是在snd_card的管理之下,聲卡驅