Linux存儲器接口軟硬件設計_第1頁
Linux存儲器接口軟硬件設計_第2頁
Linux存儲器接口軟硬件設計_第3頁
Linux存儲器接口軟硬件設計_第4頁
Linux存儲器接口軟硬件設計_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Linux存儲器接口軟硬件設計1.嵌入式系統(tǒng)上常用的存儲媒體Flash芯片F(xiàn)lash媒質存儲器:SD/MMC卡、CF卡、SM卡、U盤、DOCIC卡、SIM卡硬盤:CF接口、IDE接口…2.Linux對存儲設備的管理塊設備->文件系統(tǒng)字符設備也可以完成簡單的存儲工作嵌入式Linux的存儲通常通過MTD設備3.MTD設備驅動MTD(memorytechnologydevice)是用于訪問memory設備〔ROM、flash〕的Linux子系統(tǒng)在硬件和上層之間提供了一個抽象的接口,MTD把文件系統(tǒng)和Flash設備相隔離4.MTD與文件系統(tǒng)5.Flash硬件驅動層在init時驅動Flash硬件,NAND型Flash的驅動程序那么位于

/drivers/mtd/nand子目錄下MTD原始設備有兩局部組成MTD原始設備的通用代碼,各個特定的Flash的數(shù)據,例如分區(qū)。mtd_info、mtd_table〔mtdcore.c〕、mtd_part〔mtd_part.c〕MTD設備層linux系統(tǒng)定義出MTD的塊設備〔主設備號31〕和字符設備〔設備號90〕。設備節(jié)點:通過mknod在/dev子目錄下建立MTD字符設備節(jié)點〔主設備號為90〕和MTD塊設備節(jié)點〔主設備號為31〕,通過訪問此設備節(jié)點即可訪問MTD字符設備和塊設備。根文件系統(tǒng)在Bootloader中將文件系統(tǒng)映像燒錄到flash的某一個分區(qū)中,在啟動的時候,將該分區(qū)作為根文件系統(tǒng)掛載。文件系統(tǒng):內核啟動后,mount6.NAND和NOR——性能比較NOR和NAND是現(xiàn)在市場上兩種主要的非易失閃存技術NOR的讀速度比NAND稍快一些NAND的寫入速度比NOR快很多NAND的擦除速度遠比NOR的快大多數(shù)寫入操作需要先進行擦除操作NAND的擦除單元更小,相應的擦除電路更少7.接口差異NORflash帶有SRAM接口,線性尋址,可以很容易地存取其內部的每一個字節(jié)NANDflash使用復用接口和控制IO屢次尋址存取數(shù)據NAND讀和寫操作采用512字節(jié)的塊,這一點有點像硬盤管理此類操作易于取代硬盤等類似的塊設備8.容量和本錢NANDflash生產過程更為簡單,本錢低常見的NORflash為128KB~16MB,而NAND

flash通常有8~128MBNOR主要應用在代碼存儲介質中,NAND適合于數(shù)據存儲NAND在CompactFlash、SecureDigital、PCCards和MMC存儲卡市場上所占份額最大9.可靠性和耐用性在NAND中每塊的最大擦寫次數(shù)是100萬次,而NOR的擦寫次數(shù)是10萬次位交換的問題NANDflash中更突出,需要

ECC糾錯NANDflash中壞塊隨機分布,需要通過軟件標定——產品量產的問題10.更新MTD設備驅動程序MTD的補丁:///新的MTD驅動程序針對Linux2.6支持2kpageflash、DOC、SSDFC等新特性參考:TheLinuxMTD,JFFSHOWTO11.NandFlash連接原理12.PXA270上擴展Nandflash13.移植代碼建議先給內核打補丁有的linux內核帶的MTD驅動程序有嚴重的問題nandflash相關代碼在/drivers/mtd/nand/目錄下添加自己的驅動程序,可以從/drivers/mtd/nand/spia.c派生〔pxa27x_nand.c〕修改drivers/mtd/nand/config.in配置菜單修改/drivers/mtd/nand/Makefile添加

obj-$(CONFIG_MTD_NAND_ARM) +=pxa27x_nand.o14.解讀pxa27x_nand.c模塊入口:pxa27x_init函數(shù)ioremap的作用pxa27x_IO_init,初始化Nandflash所用端口module_init宏定義了linux加載的模塊——啟動的時候加載或者通過模塊加載nand_scan確定設備及其類型,掛載相應的驅動程序add_mtd_partitions函數(shù)注冊MTD分區(qū),add_mtd_device注冊MTD設備15.MTD上的Norflash驅動使用CFI接口的flashIntelAMD驅動程序自動掛接、自動檢測16.PXA270上Norflash設備驅動添加驅動程序

drivers/mtd/maps/uptechpxa27x-flash.c主要的工作在pxa27x_flash_probe函數(shù)中完成。查找分區(qū)17.測試MTD設備〔1〕正確加載了設備,使用命令

cat/proc/mtd,可以顯示MTD設備信息:dev:sizeerasesizenamemtd0:00e0000000004000"Nandflashpartition“創(chuàng)立節(jié)點〔如果不是用devfs〕在hostlinux上的romfs/dev目錄創(chuàng)立

@mtd0,c,90,0、@mtdblock0,b,31,0文件用mkfs.jffs2〔或者mkfs.yaffs〕生成文件系統(tǒng)映象〔比方jffs2.img〕18.測試MTD設備〔2〕目標板啟動以后cpjffs2.img/dev/mtd0注意:這里使用的/dev/mtd0是字符設備mount–tjffs2/dev/mtdblock0/var/jffs2需要在編譯內核的時候包含jffs2文件系統(tǒng)使用塊設備在文件系統(tǒng)上進行其他測試:[/var/jffs2]cp/root/hello.19.嵌入式linux下常見的文件系統(tǒng)RomFS:只讀文件系統(tǒng),可以放在ROM空間,也可以在系統(tǒng)的RAM中,嵌入式linux中常用來作根文件系統(tǒng)RamFS:利用VFS自身結構而形成的內存文件系統(tǒng),使用系統(tǒng)的RAM空間JFFS/JFFS2:為Flash設計的日志文件系統(tǒng)Yaffs:專門為NandFlash設計proc:為內核和內核模塊將信息發(fā)送給進程提供一種機制,可以查看系統(tǒng)模塊裝載的信息devFS:設備文件系統(tǒng)20.Linux上的Ext2fs支持4TB存儲、文件名稱最長1012字符可選擇邏輯塊快速符號鏈接Ext2不適合flash設備是為象IDE設備那樣的塊設備設計的,邏輯塊大小必須是512byte、1KB、2KB等沒有提供對基于扇區(qū)的擦除/寫操作的良好管理如果在一個扇區(qū)中擦除單個字節(jié),必須將整個扇區(qū)復制到

RAM,然后擦除,再重寫入在出現(xiàn)電源故障時,Ext2fs是不能防止崩潰的文件系統(tǒng)不支持損耗平衡,縮短了flash的壽命21.jffs/jffs2文件系統(tǒng)的優(yōu)缺點日志文件系統(tǒng)提供了更好的崩潰、掉電平安保護jffs2支持對flash的均勻磨損在扇區(qū)級別上執(zhí)行閃存擦除/寫/讀操作要比Ext2文件系統(tǒng)好文件系統(tǒng)接近滿時,JFFS2會大大放慢運行速度——垃圾收集22.Nand上yaffs文件系統(tǒng)的優(yōu)勢專門為Nandflash設計的日志文件系統(tǒng)jffs/jffs2不適合大容量的Nandflashjffs的日志通過jffs_node建立在RAM中,占用

RAM空間:對于128MB的Nand大概需要4MB的空間來維護節(jié)點啟動的時候需要掃描日志節(jié)點,不適合大容量的NandflashFAT系統(tǒng)沒有日志23.編譯yaffs文件系統(tǒng)mtd的最新補丁升級?接口更新,適合與yaffs與原有的mtd驅動程序不兼容,需要重寫如果使用舊mtd驅動需要定義Makefile中MTD_OLD=-DCONFIG_YAFFS_USE_OLD_MTD參考文檔:yaffs-rootfs-howto最新版的yaffs網站:

://aleph1.co.uk/armlinux/projects/yaffs24.使用yaffs文件系統(tǒng)通過cat/proc/yaffs命令可以看到y(tǒng)affs系統(tǒng)的相關信息mount-tyaffs/dev/mtdblock/0/mnt/yaffsyaffs做root的問題,如何處理壞塊?25.IDE接口軟硬件設計26.IDE接口簡介IntegratedDriveElectronics〔IDE〕本意是指把控制器與盤體集成在一起的硬盤驅動器。通常說的IDE接口,稱之為ATA〔AdvancedTechnologyAttachment〕接口分類:ATA-1〔IDE〕、ATA-2〔EIDE〕、ATA-3〔FastATA-2〕、UltraATA、UltraATA/33、UltraATA/66、UltraATA/100及SerialATA27.IDE接口標準CSEL電纜主從選擇DMARQDMA請求CS0片選0INTRQ中斷請求CS1片選1IOR讀取IO口D[15:0]數(shù)據線IORDYIO就緒DASP驅動器有效IOW寫入IO口A[2:0]地址PDIAG通過檢測DMACKDMA應答RESET復位低電平有效28.IDE設備存放器CS1CS0A2A1A0讀取寫入位10000數(shù)據寄存器數(shù)據寄存器1610001錯誤寄存器特征寄存器810010扇區(qū)數(shù)寄存器扇區(qū)數(shù)寄存器810011扇區(qū)號寄存器扇區(qū)號寄存器810100柱面號(低字節(jié))柱面號(低字節(jié))810101柱面號(高字節(jié))柱面號(高字節(jié))810110驅動器/磁頭驅動器/磁頭810111狀態(tài)寄存器命令寄存器801110可選狀態(tài)寄存器設備控制寄存器801111驅動器地址寄存器保留829.嵌入式處理器上

擴展IDE接口的考慮電平標準是否滿足?IDE接口為5V邏輯,與3.3V邏輯如何接口總線時序如何滿足?讀寫時序和SRAM類似,通過組合邏輯即可滿足30.UP-NETARM2410-S上IDE接口邏輯原理圖FPGA內部邏輯nGCSF信號地址譯碼的結果偏移地址0x80000031.IDE接口的驅動程序在driv

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論