今天又看了一遍flash驅動,以下是一些總結。
flash 裝置驅動
一.mtd
linux系統中,用了mtd系統來建立flash對linux的介面。
mtd---memory technology device,記憶體技術裝置。
mtd可以分為四個層:
1,硬體驅動層:最底層,負責flash硬體裝置的讀、寫、擦除。
nor flash 晶元驅動位於/driver/mtd/chips/下
nand flash驅動程式位於/driver/mtd/nand/下
2, mtd原始裝置層:主要指
mtdcore.c
。包含了通用**和flash的分割槽情況。這裡定義了分割槽情況mtd_table.
3.mtd裝置層: 指
mtdchar.c
和mtdblock.c
。mtd可以被定義成字元裝置或塊設
mtd字元裝置,通過註冊一系列file_opereation函式(lseek,open, close , read , write , ioctl ), 可實現對mtd裝置的讀寫和控制。
mtd塊裝置,定義了塊裝置結構,mtdblk_dev。並宣告了乙個mtdblk_dev 型別的指標
陣列mtdblks。
4.裝置節點。 /dev/mtd0 等。
mtd字元裝置主裝置號:90
mtd塊裝置主裝置號:31
常用**:
mtd.h
struct mtd_info 描述mtd原始裝置的資料結構。
---------
mtdparts.c
struct mtd_part 描述分割槽
add_mtd_partition()
del_mtd_partition
partition.h
struct mtd_partition 分割槽內容
--------------------------
mtdcore.c
struct mtd_table 分割槽表。
add_mtd_device()
del_mtd_device()
mtdchar.c
mtdblock.c
二.nor flash 驅動
map_info
do_map_probe()
三. nandflash 驅動
drivers/mtd/nand/nand_base.c
struct nand_chip
第19章 Flash裝置驅動
本文摘自 偶有較小改動 linux 裝置驅動開發詳解 宋寶華 編著 人民郵電出版社 留作紀念。living park 第19章 flash裝置驅動 19.1 linux flash驅動結構 19.1.1 linux mtd系統層次 在linux系統中,提供了mtd memory technology...
裝置驅動例項 字元裝置驅動
在整個linux裝置驅動學習中,字元裝置驅動較為基礎。通過對它的學習,對裝置驅動進一步加深了解 cdev 結構體struct cdev 講下比較重要的成員變數 dev t dev 定義了32位的裝置號,其中12位是主裝置號,20位是從裝置號。獲取主裝置號 major dev t dev 獲取從裝置號...
驅動 linux裝置驅動 字元裝置驅動開發
preface 前面對linux裝置驅動的相應知識點進行了總結,現在進入實踐階段!linux 裝置驅動入門篇 linux 裝置驅動掃盲篇 fedora下的字元裝置驅動開發 開發乙個基本的字元裝置驅動 在linux核心驅動中,字元裝置是最基本的裝置驅動。字元裝置包括了裝置最基本的操作,如開啟裝置 關閉...