1. 程式人生 > >嵌入式linux之塊裝置驅動程式概念,框架

嵌入式linux之塊裝置驅動程式概念,框架

不能像字元裝置驅動那樣,直接提供簡單的讀寫函式,效率過於低下

要將讀寫函式放入佇列,優化後,再去執行

框架:

“`
框架:

app: open,read,write “1.txt”
——————————————— 檔案的讀寫
檔案系統: vfat, ext2, ext3, yaffs2, jffs2 (把檔案的讀寫轉換為扇區的讀寫)
—————–ll_rw_block—————– 扇區的讀寫
1. 把”讀寫”放入佇列
2. 呼叫佇列的處理函式(優化/調順序/合併)

塊裝置驅動程式

硬體: 硬碟,flash

用kzalloc申請記憶體的時候, 效果等同於先是用 kmalloc() 申請空間 , 然後用 memset() 來初始化 ,所有申請的元素都被初始化為 0.

相關推薦

嵌入式linux裝置驅動程式概念,框架

不能像字元裝置驅動那樣,直接提供簡單的讀寫函式,效率過於低下 要將讀寫函式放入佇列,優化後,再去執行 框架: “` 框架: app: open,read,write “1.txt” ——————————————— 檔案的讀寫 檔

LDD3原始碼分析裝置驅動程式

作者:劉昊昱  編譯環境:Ubuntu 10.10 核心版本:2.6.32-38-generic-pae LDD3原始碼路徑:examples/sbull 一、塊裝置驅動基本操作 我們從init函式開始分析,sbull的init函式內容如下: 403static int

Linux裝置驅動程式分析

struct sbull_dev {         int size;                       /* Device size in sectors */         u8 *data;                       /* The data array */       

Linux Device Drivers》第十六章 裝置驅動程式——note

簡介 一個塊裝置驅動程式主要通過傳輸固定大小的隨機資料來訪問裝置 Linux核心視塊裝置為與字元裝置相異的基本裝置型別 Linux塊裝置驅動程式介面使得塊裝置可以發揮其最大的功效,但是其複雜程式又是程式設計者必須面對的一個問題 一個數據塊指的是固

linux裝置驅動程式示例(適用於高版本核心3.16.0

1. 字元裝置與塊裝置的 I/O 操作主要有如下不同點:    (1)塊裝置只能以塊為單位接受輸入和返回輸出,而字元裝置則以位元組為單位。大多數裝置是字元裝置,因為它們不需要緩衝而且不以固定塊大小進行操作。    (2)塊裝置對於 I/O 請求有對應的緩衝區,因此它們可以選擇

Linux裝置驅動程式》——裝置驅動程式

一、概論  1、一個塊裝置驅動程式主要同通過傳輸固定大小的隨機資料來訪問裝置。Linux核心視塊裝置為與字元裝置相異的基本裝置型別,因此塊裝置驅動程式有自己完成特定任務的       接 口。   2、高效的塊裝置驅動程式在功能上是嚴格要求的,並不僅僅體現在使用者應用程式的

S3C2440 裝置驅動程式的編寫驅動用記憶體模擬硬碟(二十一)

通過上節的塊裝置驅動分析,本節便通過記憶體來模擬塊裝置驅動,方便我們更加熟悉塊裝置驅動框架 參考核心自帶的塊裝置驅動程式: drivers/block/xd.c drivers/block/z2ram.c 1、本節需要的結構體如下: 1.1 gendis

linux驅動裝置驅動

塊裝置驅動的系統架構 VFS: 是對各種具體檔案系統的一種封裝,使用者程式訪問檔案提供統一的介面。例如: EXT2,FAT,NFS等 系統架構—Cache: 當用戶發起檔案訪問請求的時候,首先回到Cache中定址檔案是否被快取了,如果在Ca

裝置驅動程式之一

一、塊裝置概述 linux支援的兩種重要的裝置型別分別是字元裝置和塊裝置,塊裝置可以隨機地以固定大小的塊傳送資料。與字元裝置相比,塊裝置有以下幾個特殊之處: 塊裝置可以從資料的任何位置進行訪問 塊資料總是以固定長度進行傳輸,即便請求的這是一個位元組 對塊裝置的訪問有大量的快

Linux下PCI裝置驅動程式開發基本框架

PCI是一種廣泛採用的匯流排標準,它提供了許多優於其它匯流排標準(如EISA)的新特性,目前已經成為計算機系統中應用最為廣泛,並且最為通用的匯流排標準。Linux的核心能較好地支援PCI匯流排,本文以Intel 386體系結構為主,探討了在Linux下開發PCI裝置驅動程式的基本框架。    一、PCI匯流排

第16章 驅動開發字元裝置驅動程式框架

16.1 字元裝置驅動程式框架簡介 我們在學習 C 語言的時候,知道每個應用程式的入口函式,即第一個被執行的函式是 main函式,那麼,我們自己的驅動程式,哪個函式是入口函式呢? 在寫驅動程式的時候,如果函式的名字可以任意取,常常為 xxxx_init(),

SD/MMC卡裝置驅動程式

int mmc_blk_issue_rq( struct mmc_queue * mq, struct request * req) { struct mmc_blk_data * md = mq-> data; struct mmc_car

linuxNAND FLASH驅動程式

NAND FLASH是一個儲存晶片 那麼: 這樣的操作很合理"讀地址A的資料,把資料B寫到地址A" 問1. 原理圖上NAND FLASH和S3C2440之間只有資料線, 怎麼傳輸地址? 答1.在DATA0~DATA7上既傳輸資料,又傳輸地址 當ALE為

裝置驅動程式碼及框架

#include <linux/init.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/fs.h> #include <li

韋東山嵌入式Linux學習筆記——第12課第8節 字元裝置驅動程式定時器防抖動

注:本文部分內容摘自《魚樹學員筆記》。 當按鍵按得比較快的時候,這裡出現了兩次中斷值,也即產生了抖動。 這裡產生了“抖動”,按鍵是機械開關,按下鬆開時裡面的金屬彈片可能抖動了好幾次。這種抖動產生了多次“脈衝”導致多次中斷。 方法: 使用定時器來防抖動。

嵌入式Linux裝置驅動開發:按鍵驅動程式例項

11.6  按鍵驅動程式例項 11.6.1  按鍵工作原理 高電平和低電平相接怎麼會變成低電平呢 就像你把電源正極的負極相連一樣會把電壓拉低。大電流會從高電平引腳流向低電平引腳,把高電平引腳拉低。 LED和蜂鳴器是最簡單的GPIO的應用,都不需要任何外部

Linux裝置驅動程式架構分析一個I2C驅動例項

作者:劉昊昱  核心版本:3.10.1 編寫一個I2C裝置驅動程式的工作可分為兩部分,一是定義和註冊I2C裝置,即i2c_client;二是定義和註冊I2C裝置驅動,即i2c_driver。下面我們就以mini2440的I2C裝置at24c08 EEPROM為例,介紹如

Linux裝置驅動程式架構分析I2C架構(基於3.10.1核心)

作者:劉昊昱  核心版本:3.10.1 I2C體系架構的硬體實體包括兩部分: 硬體I2C Adapter:硬體I2C Adapter表示一個硬體I2C介面卡,也就是I2C控制器。一般是SOC中的一個介面,也可以用GPIO模擬。硬體I2C Adapter主要用來在I2

Linux 驅動裝置結構體 (二)

上回最後面介紹了相關資料結構,下面再詳細介紹 塊裝置物件結構 block_device 核心用結構block_device例項代表一個塊裝置物件,如:整個硬碟或特定分割槽。如果該結構代表一個分割槽,則其成員bd_part指向裝置的分割槽結構。如果該結構代表裝置,則其成員

linux驅動由淺入深系列:裝置驅動三(裝置驅動結構分析,以mmc為例)

linux驅動由淺入深系列:塊裝置驅動之一(高通eMMC分割槽例項)前一篇文章介紹了塊裝置驅動在linux框架張的位置關係,本文來分析一下驅動本身。塊裝置驅動的模型還是基本基於字元裝置驅動的,可以簡單理解為塊裝置僅僅增加了操作緩衝區,對使用者操作請求進行佇列重排。因此只在有了