原创 linux 鎖機制 - spinlock

瞭解linux spinlock 1.spinlock   在linux kernel的實現中,經常會遇到這樣的場景:共享數據被中斷上下文和進程上下文訪問,該如何保護呢?如果只有進程上下文的訪問,那麼可以考慮使用semapho

原创 Linux音頻子系統(3) - ALSA ASoC

瞭解ASoC 參考 1.概述   ASoC是Alsa System on Chip的縮寫,用於實現那些集成聲音控制器的CPU,它的設計目標如下: 解耦codec, codec的驅動不依賴具體的平臺。 簡單易用的I2S/PCM

原创 Linux 內核調試(2) - Kdump

瞭解kdump 1.Introduction   Kdump is a standard Linux mechanism to dump machine memory content on kernel crash. Kdum

原创 linux block framework(4) - kernel devices.txt

Documentation/admin-guide/devices.txt LINUX ALLOCATED DEVICES (4.x+ version) 3 4 This list is the Linux De

原创 linux 內存管理(13) - memblock

瞭解memblock機制。 1.概述   在引導內核的過程中,需要使用內存, 而這個時候內核的內存管理並沒有被創建, 因此也就需要一種精簡的內存管理系統先接受這個工作, 而在初始化完成後, 再將舊的接口廢棄, 轉而使用強大的b

原创 linux 內存管理(10)- phys_to_virt/virt_to_phys

瞭解phys_to_virt/virt_to_phys 1.概述   對於提供了MMU的處理器而言,Linux提供了複雜的存儲管理系統,使得進程所能訪問的內存達到4GB。進程的4GB內存空間被人爲的分爲兩個部分:用戶空間與內核

原创 linux 內存管理(9) -頁表實現

瞭解linux 頁表實現 1.MMU/TLB/Cache概述 MMU:完成的工作就是虛擬地址到物理地址的轉換,可以讓系統中的多個程序跑在自己獨立的虛擬地址空間中,相互不會影響。程序可以對底層的物理內存一無所知,物理地址可以

原创 Linux音頻子系統(7) - PCM

瞭解PCM 1.PCM   PCM(Pulse-code modulation)脈衝編碼調製,是將模擬信號轉化爲數字信號的一種方法。聲音的轉化的過程爲,先對連續的模擬信號按照固定頻率週期性採樣,將採樣到的數據按照一定的精度進行

原创 linux 內核調試(1) - coredump

學習kernel 調試方法 1.內核轉儲   內核轉儲(coredump)保存了進程某一時刻的運行狀態,它在進程發生問題時產生,此時只要有程序的可執行文件和 coredump 即可對其進行調試,瞭解產生 coredump 那一

原创 linux 內存管理(17) - 理解堆棧

理解堆棧 1.概念   一個由C/C++編譯的程序佔用的內存分爲以下幾個部分 棧區:由編譯器自動分配釋放,存放函數的參數值,局部變量的值等。 堆區:由程序員分配和釋放,若程序員不釋放,程序結束時可能由OS回收。 全局區(靜態

原创 linux 內存管理(11) - TLB flush

瞭解 TLB flush 1.TLB flush API 1.1.void flush_tlb_all(void);   這個接口用來invalidate TLB cache中的所有的條目,執行完畢了該接口之後,由於TLB c

原创 linux block framework(1) - 塊設備概念

瞭解linux block 基本概念 1.概念   塊設備是I/O設備中的一類,當應用層對該設備讀寫時,是按扇區大小來讀寫數據的,若讀寫的數據小於扇區的大小,就會需要緩存區, 可以隨機讀寫設備的任意位置處的數據,例如 普通文件

原创 linux block framework(3) - ramdisk driver

案例ramdisk 源碼 #include <linux/module.h> #include <linux/kernel.h> #include <linux/init.h> #include <linux/fs.h> #

原创 如何創建基於arm 的Ubuntu rootfs

參考: https://blog.csdn.net/u010632165/article/details/78424000 https://www.jianshu.com/p/7453d52f0324 https://blog.

原创 Linux音頻子系統(5) - ASoC platform

瞭解ASoC架構 platform 1.概述   在Platform部分,主要是平臺相關的DMA操作和音頻管理。流程是先將音頻數據從內存通過DMA方式傳輸到CPU側的dai接口,然後通過CPU的dai接口(通過I2S總線)將數