原创 s3c2410時鐘信號:FCLK、HCLK和PCLK;clk_get_rate()

s3c2410 有三個時鐘FLCK 、HCLK 和PCLK (這3個時針都是核心時針) s3c2410 芯片有這麼一段話: FCLK is used by ARM920T ,內核時鐘,主頻。 HCLK is used for

原创 塊設備層分析2

三、塊設備驅動層 塊設備的關係圖如圖2,一個分區或一個硬盤都可能是block_device,它一個硬盤只有一個gendisk結構,且有可能有多個分區hd_struct。   圖2 我們來看一個IDE硬盤設備的驅動,在此我們不

原创 塊設備層分析3

以上均是IDE總線上設備的通用接口,直到do_request開始才執行特定設備的驅動,如CD,HD, floppy等IDE設備。我們來看一下ide-disk: 1、 首先是設備的初始化操作。 IDE設備接口 static ide_d

原创 塊設備層分析1

一、綜述 圖1是塊設備操作的一個分層實現圖。當一個進程調用read讀取一個文件時,內核執行如下一個過程:首先,它通過VFS層去讀取要到的文件塊有沒有已經被cache了,這個cache由一個buffer_head結構讀取。如果要讀取的文件

原创 Linux Platform Device and Driver

以下內容轉自: http://www.diybl.com/course/6_system/linux/Linuxjs/200871/129585.html http://blog.chinaunix.net/space.php?ui

原创 RamDisk塊設備驅動實例開發講解

一、開發環境 主  機:VMWare--Fedora 9 開發板:Mini2440--64MB Nand, Kernel:2.6.30.4 編譯器:arm-linux-gcc-4.3.2二、塊設備基本概念 扇區(Sectors):任何塊

原创 bio與塊設備驅動

   bio與塊設備驅動    系統中能夠隨機訪問固定大小數據片(chunk)的設備被稱作塊設備,這些數據片就稱作塊。塊設備文件都是以安裝文件系統的方式使用,此也是塊設備通常的訪問方式。塊設備的訪問方式是隨機的,也就是可以在訪問設備時

原创 塊設備驅動編寫總結

塊設備與字符設備的區別 1、 從字面上理解,塊設備和字符設備最大的區別在於讀寫數據的基本單元不同。塊設備讀寫數據的基本單元爲塊,例如磁盤通常爲一個sector,而字符設備的基本單元爲字節。所以Linux中塊設備驅動往往爲磁盤設備的驅動

原创 內存管理

1.在linux系統中,進程的4GB內存空間一般分爲用戶空間(0~3)G和內核空間(3~4)G. 內核空間中,從低地址到高地址依次爲: 物理內存映射區 隔離帶 vmalloc虛擬內存分配器 隔離帶 --------------------

原创 工作隊列(workqueue)

項目需要,在驅動模塊裏用內核計時器timer_list實現了一個狀態機。 鬱悶的是,運行時總報錯“Scheduling while atomic”,網上搜了一下: "Scheduling while atomic" indicates

原创 看塊設備驅動部分的筆記

轉自: http://bbs.chinaunix.net/thread-2050601-1-1.html 對於塊設備,首先明確幾個基本的概念: 扇區(Sectors): 通常是512 bytes.  是硬件設備傳輸數據的基本單位. 塊(

原创 臨界區的併發控制

一、併發與競態       併發指多個執行單元同時、並行被執行,而併發的執行單元對共享資源(全局變量,靜態變量)的訪問則容易導致競態。      幾種情景:1、對稱多處理器(SMP)的多個CPU     2、單個CPU進程與搶佔它的進程 

原创 內核定時器

在linux設備驅動編程中,可以利用linux內核中提供的一組函數和數據結構來完成定時觸發工作或者完成某週期性的事物。 struct time_list{ struct list_head entry; unsigned long

原创 platform_bus,platform_driver,platform_bus

一、platform_bus 總線是處理器和一個或多個設備之間的通道,在設備模型中, 所有的設備都通過總線相連。總線可以相互插入。設備模型展示了總線和它們所控制的設備之間的實際連接。Platform總線是2.6 kernel中最近引入的一

原创 硬盤的扇面、磁道、扇區

扇面:Cylinder/ 磁道:Track   / sectors 扇區:Sector  / head   CHS:Cylinder、Head、Sector/Track,示意圖如下:   Cylinder柱面數表示硬盤每面盤面上有幾