linux內(nèi)核mtd驅(qū)動(dòng)程序與sd卡驅(qū)動(dòng)程序

linux內(nèi)核mtd驅(qū)動(dòng)程序與sd卡驅(qū)動(dòng)程序

ID:33592448

大?。?34.50 KB

頁數(shù):70頁

時(shí)間:2019-02-27

linux內(nèi)核mtd驅(qū)動(dòng)程序與sd卡驅(qū)動(dòng)程序_第1頁
linux內(nèi)核mtd驅(qū)動(dòng)程序與sd卡驅(qū)動(dòng)程序_第2頁
linux內(nèi)核mtd驅(qū)動(dòng)程序與sd卡驅(qū)動(dòng)程序_第3頁
linux內(nèi)核mtd驅(qū)動(dòng)程序與sd卡驅(qū)動(dòng)程序_第4頁
linux內(nèi)核mtd驅(qū)動(dòng)程序與sd卡驅(qū)動(dòng)程序_第5頁
資源描述:

《linux內(nèi)核mtd驅(qū)動(dòng)程序與sd卡驅(qū)動(dòng)程序》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、Linux內(nèi)核MTD驅(qū)動(dòng)程序與SD卡驅(qū)動(dòng)程序flash閃存設(shè)備和SD插卡設(shè)備是嵌入式設(shè)備用到的主要存儲(chǔ)設(shè)備,它們相當(dāng)于PC機(jī)的硬盤。在嵌入設(shè)備特別是手持設(shè)備中,flash閃存是焊接在嵌入設(shè)備主板上的flash閃存芯片。在嵌入設(shè)備上有MMC/SD卡控制器及插槽,可通過MMC/SD來擴(kuò)充存儲(chǔ)空間。嵌入設(shè)備的存儲(chǔ)設(shè)備的空間劃分及所有邏輯設(shè)備和文件系統(tǒng)示例列出如下圖:圖:嵌入設(shè)備的存儲(chǔ)空間劃分及文件系統(tǒng)示例圖在嵌入設(shè)備上的flash芯片上blob和zImage直接按內(nèi)存線性地址存儲(chǔ)管理,對(duì)于flash芯片上留出的供用戶使用的存

2、儲(chǔ)空間,使用MTDBLOCK塊設(shè)備和JFFS2文件系統(tǒng)。對(duì)于flash芯片的分區(qū)表信息則以MTDCHAR字符設(shè)備來存儲(chǔ)管理。在嵌入設(shè)備上的MMC/SD插卡則由MMCBLOCK驅(qū)動(dòng)程序和VFAT文件系統(tǒng)進(jìn)行存儲(chǔ)管理。本章分析了MTD設(shè)備和MMC/SD驅(qū)動(dòng)程序。Figure3-1.UBI/MTDIntegration目錄[隱藏]·1MTD內(nèi)存技術(shù)設(shè)備o1.1MTD內(nèi)存技術(shù)設(shè)備層次結(jié)構(gòu)o1.2設(shè)備層和原始設(shè)備層的函數(shù)調(diào)用關(guān)系o1.3MTD相關(guān)結(jié)構(gòu)o1.4MTD塊設(shè)備初始化o1.5MTD塊設(shè)備的讀寫操作o1.6MTD核心初始化

3、o1.7MTD字符設(shè)備o1.8具體flash芯片的探測及映射o1.9驅(qū)動(dòng)程序?qū)嵗治觥?SD/MMC卡塊設(shè)備驅(qū)動(dòng)程序o2.1MMC抽象設(shè)備層相關(guān)結(jié)構(gòu)§2.1.1(1)設(shè)備描述結(jié)構(gòu)§2.1.2(2)讀寫請(qǐng)求相關(guān)結(jié)構(gòu)o2.2MMC抽象設(shè)備層MMC塊設(shè)備驅(qū)動(dòng)程序§2.2.1(1)MMC塊設(shè)備驅(qū)動(dòng)程序初始化§2.2.2(2)MMC塊設(shè)備驅(qū)動(dòng)程序探測函數(shù)§2.2.3(3)MMC卡請(qǐng)求的處理o2.3具體MMC控制器驅(qū)動(dòng)程序示例§2.3.1(1)amba控制器驅(qū)動(dòng)程序相關(guān)結(jié)構(gòu)§2.3.2(2)amba控制器的初始化§2.3.3(3)

4、設(shè)備探測函數(shù)mmci_probe§2.3.4(4)amba控制器操作函數(shù)MTD內(nèi)存技術(shù)設(shè)備Linux中MTD子系統(tǒng)在系統(tǒng)的硬件驅(qū)動(dòng)程序和文件系統(tǒng)之間提供通用接口。在MTD上常用的文件文件系統(tǒng)是JFFS2日志閃存文件系統(tǒng)版本2(JournalingFlashFileSystem)。JFFS2用于微型嵌入式設(shè)備的原始閃存芯片的文件系統(tǒng)。JFFS2文件系統(tǒng)是日志結(jié)構(gòu)化的,這意味著它基本上是一長列節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)包含有關(guān)文件的部分信息―可能是文件的名稱、也許是一些數(shù)據(jù)。與Ext2文件系統(tǒng)相比,JFFS2因?yàn)橛幸韵逻@些優(yōu)點(diǎn):JFF

5、S2在扇區(qū)級(jí)別上執(zhí)行閃存擦除/寫/讀操作要比Ext2文件系統(tǒng)好。JFFS2提供了比Ext2fs更好的崩潰/掉電安全保護(hù)。當(dāng)需要更改少量數(shù)據(jù)時(shí),Ext2文件系統(tǒng)將整個(gè)扇區(qū)復(fù)制到內(nèi)存(DRAM)中,在內(nèi)存中合并新數(shù)據(jù),并寫回整個(gè)扇區(qū)。這意味著為了更改單個(gè)字,必須對(duì)整個(gè)扇區(qū)(64KB)執(zhí)行讀/擦除/寫例程,這樣做的效率非常低。JFFS2是附加文件而不是重寫整個(gè)扇區(qū),并且具有崩潰/掉電安全保護(hù)這一功能。JFFS2是是為FLASH定制的文件系統(tǒng),JFFS1實(shí)現(xiàn)了日志功能,JFFS2實(shí)現(xiàn)了壓縮功能。它的整個(gè)設(shè)計(jì)提供了更好的閃存管理

6、。JFFS2的缺點(diǎn)很少,主要是當(dāng)文件系統(tǒng)已滿或接近滿時(shí),JFFS2會(huì)大大放慢運(yùn)行速度。這是因?yàn)槔占膯栴}。MTD驅(qū)動(dòng)程序是專門為基于閃存的設(shè)備所設(shè)計(jì)的,它提供了基于扇區(qū)的擦除和讀寫操作的更好的接口。MTD子系統(tǒng)支持眾多的閃存設(shè)備,并且有越來越多的驅(qū)動(dòng)程序正被添加進(jìn)來以用于不同的閃存芯片。MTD子系統(tǒng)提供了對(duì)字符設(shè)備MTD_CHAR和塊設(shè)備MTD_BLOCK的支持。MTD_CHAR提供對(duì)閃存的原始字符訪問,象通常的IDE硬盤一樣,在MTD_BLOCK塊設(shè)備上可創(chuàng)建文件系統(tǒng)。MTD_CHAR字符設(shè)備文件是/dev/mt

7、d0、mtd1、mtd2等,MTD_BLOCK塊設(shè)備文件是/dev/mtdblock0、mtdblock1等等。NAND和NOR是制作Flash的工藝,CFI和JEDEC是flash硬件提供的接口,linux通過這些用通用接口抽象出MTD設(shè)備。JFFS2文件系統(tǒng)就建立在MTD設(shè)備上。NORflash帶有SRAM接口,可以直接存取內(nèi)部的每一個(gè)字節(jié)。NAND器件使用串行I/O口來存取數(shù)據(jù),8個(gè)引腳用來傳送控制、地址和數(shù)據(jù)信息。NAND讀和寫操作用512字節(jié)的塊。MTD內(nèi)存技術(shù)設(shè)備層次結(jié)構(gòu)MTD(memorytechnolo

8、gydevice內(nèi)存技術(shù)設(shè)備)在硬件和文件系統(tǒng)層之間的提供了一個(gè)抽象的接口,MTD是用來訪問內(nèi)存設(shè)備(如:ROM、flash)的中間層,它將內(nèi)存設(shè)備的共有特性抽取出來,從而使增加新的內(nèi)存設(shè)備驅(qū)動(dòng)程序變得更簡單。MTD的源代碼都在/drivers/mtd目錄中。MTD中間層細(xì)分為四層,按從上到下依次為:設(shè)備節(jié)點(diǎn)、MTD設(shè)備層、MTD

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。