




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Linux存儲器接口軟硬件設(shè)計1.嵌入式系統(tǒng)上常用的存儲媒體Flash芯片F(xiàn)lash媒質(zhì)存儲器:SD/MMC卡、CF卡、SM卡、U盤、DOCIC卡、SIM卡硬盤:CF接口、IDE接口…2.Linux對存儲設(shè)備的管理塊設(shè)備->文件系統(tǒng)字符設(shè)備也可以完成簡單的存儲工作嵌入式Linux的存儲通常通過MTD設(shè)備3.MTD設(shè)備驅(qū)動MTD(memorytechnologydevice)是用于訪問memory設(shè)備〔ROM、flash〕的Linux子系統(tǒng)在硬件和上層之間提供了一個抽象的接口,MTD把文件系統(tǒng)和Flash設(shè)備相隔離4.MTD與文件系統(tǒng)5.Flash硬件驅(qū)動層在init時驅(qū)動Flash硬件,NAND型Flash的驅(qū)動程序那么位于
/drivers/mtd/nand子目錄下MTD原始設(shè)備有兩局部組成MTD原始設(shè)備的通用代碼,各個特定的Flash的數(shù)據(jù),例如分區(qū)。mtd_info、mtd_table〔mtdcore.c〕、mtd_part〔mtd_part.c〕MTD設(shè)備層linux系統(tǒng)定義出MTD的塊設(shè)備〔主設(shè)備號31〕和字符設(shè)備〔設(shè)備號90〕。設(shè)備節(jié)點:通過mknod在/dev子目錄下建立MTD字符設(shè)備節(jié)點〔主設(shè)備號為90〕和MTD塊設(shè)備節(jié)點〔主設(shè)備號為31〕,通過訪問此設(shè)備節(jié)點即可訪問MTD字符設(shè)備和塊設(shè)備。根文件系統(tǒng)在Bootloader中將文件系統(tǒng)映像燒錄到flash的某一個分區(qū)中,在啟動的時候,將該分區(qū)作為根文件系統(tǒng)掛載。文件系統(tǒng):內(nèi)核啟動后,mount6.NAND和NOR——性能比較NOR和NAND是現(xiàn)在市場上兩種主要的非易失閃存技術(shù)NOR的讀速度比NAND稍快一些NAND的寫入速度比NOR快很多NAND的擦除速度遠比NOR的快大多數(shù)寫入操作需要先進行擦除操作NAND的擦除單元更小,相應(yīng)的擦除電路更少7.接口差異NORflash帶有SRAM接口,線性尋址,可以很容易地存取其內(nèi)部的每一個字節(jié)NANDflash使用復(fù)用接口和控制IO屢次尋址存取數(shù)據(jù)NAND讀和寫操作采用512字節(jié)的塊,這一點有點像硬盤管理此類操作易于取代硬盤等類似的塊設(shè)備8.容量和本錢NANDflash生產(chǎn)過程更為簡單,本錢低常見的NORflash為128KB~16MB,而NAND
flash通常有8~128MBNOR主要應(yīng)用在代碼存儲介質(zhì)中,NAND適合于數(shù)據(jù)存儲NAND在CompactFlash、SecureDigital、PCCards和MMC存儲卡市場上所占份額最大9.可靠性和耐用性在NAND中每塊的最大擦寫次數(shù)是100萬次,而NOR的擦寫次數(shù)是10萬次位交換的問題NANDflash中更突出,需要
ECC糾錯NANDflash中壞塊隨機分布,需要通過軟件標(biāo)定——產(chǎn)品量產(chǎn)的問題10.更新MTD設(shè)備驅(qū)動程序MTD的補丁:///新的MTD驅(qū)動程序針對Linux2.6支持2kpageflash、DOC、SSDFC等新特性參考:TheLinuxMTD,JFFSHOWTO11.NandFlash連接原理12.PXA270上擴展Nandflash13.移植代碼建議先給內(nèi)核打補丁有的linux內(nèi)核帶的MTD驅(qū)動程序有嚴重的問題nandflash相關(guān)代碼在/drivers/mtd/nand/目錄下添加自己的驅(qū)動程序,可以從/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確定設(shè)備及其類型,掛載相應(yīng)的驅(qū)動程序add_mtd_partitions函數(shù)注冊MTD分區(qū),add_mtd_device注冊MTD設(shè)備15.MTD上的Norflash驅(qū)動使用CFI接口的flashIntelAMD驅(qū)動程序自動掛接、自動檢測16.PXA270上Norflash設(shè)備驅(qū)動添加驅(qū)動程序
drivers/mtd/maps/uptechpxa27x-flash.c主要的工作在pxa27x_flash_probe函數(shù)中完成。查找分區(qū)17.測試MTD設(shè)備〔1〕正確加載了設(shè)備,使用命令
cat/proc/mtd,可以顯示MTD設(shè)備信息: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)映象〔比方j(luò)ffs2.img〕18.測試MTD設(shè)備〔2〕目標(biāo)板啟動以后cpjffs2.img/dev/mtd0注意:這里使用的/dev/mtd0是字符設(shè)備mount–tjffs2/dev/mtdblock0/var/jffs2需要在編譯內(nèi)核的時候包含jffs2文件系統(tǒng)使用塊設(shè)備在文件系統(tǒng)上進行其他測試:[/var/jffs2]cp/root/hello.19.嵌入式linux下常見的文件系統(tǒng)RomFS:只讀文件系統(tǒng),可以放在ROM空間,也可以在系統(tǒng)的RAM中,嵌入式linux中常用來作根文件系統(tǒng)RamFS:利用VFS自身結(jié)構(gòu)而形成的內(nèi)存文件系統(tǒng),使用系統(tǒng)的RAM空間JFFS/JFFS2:為Flash設(shè)計的日志文件系統(tǒng)Yaffs:專門為NandFlash設(shè)計proc:為內(nèi)核和內(nèi)核模塊將信息發(fā)送給進程提供一種機制,可以查看系統(tǒng)模塊裝載的信息devFS:設(shè)備文件系統(tǒng)20.Linux上的Ext2fs支持4TB存儲、文件名稱最長1012字符可選擇邏輯塊快速符號鏈接Ext2不適合flash設(shè)備是為象IDE設(shè)備那樣的塊設(shè)備設(shè)計的,邏輯塊大小必須是512byte、1KB、2KB等沒有提供對基于扇區(qū)的擦除/寫操作的良好管理如果在一個扇區(qū)中擦除單個字節(jié),必須將整個扇區(qū)復(fù)制到
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設(shè)計的日志文件系統(tǒng)jffs/jffs2不適合大容量的Nandflashjffs的日志通過jffs_node建立在RAM中,占用
RAM空間:對于128MB的Nand大概需要4MB的空間來維護節(jié)點啟動的時候需要掃描日志節(jié)點,不適合大容量的NandflashFAT系統(tǒng)沒有日志23.編譯yaffs文件系統(tǒng)mtd的最新補丁升級?接口更新,適合與yaffs與原有的mtd驅(qū)動程序不兼容,需要重寫如果使用舊mtd驅(qū)動需要定義Makefile中MTD_OLD=-DCONFIG_YAFFS_USE_OLD_MTD參考文檔:yaffs-rootfs-howto最新版的yaffs網(wǎng)站:
://aleph1.co.uk/armlinux/projects/yaffs24.使用yaffs文件系統(tǒng)通過cat/proc/yaffs命令可以看到y(tǒng)affs系統(tǒng)的相關(guān)信息mount-tyaffs/dev/mtdblock/0/mnt/yaffsyaffs做root的問題,如何處理壞塊?25.IDE接口軟硬件設(shè)計26.IDE接口簡介IntegratedDriveElectronics〔IDE〕本意是指把控制器與盤體集成在一起的硬盤驅(qū)動器。通常說的IDE接口,稱之為ATA〔AdvancedTechnologyAttachment〕接口分類:ATA-1〔IDE〕、ATA-2〔EIDE〕、ATA-3〔FastATA-2〕、UltraATA、UltraATA/33、UltraATA/66、UltraATA/100及SerialATA27.IDE接口標(biāo)準(zhǔn)CSEL電纜主從選擇DMARQDMA請求CS0片選0INTRQ中斷請求CS1片選1IOR讀取IO口D[15:0]數(shù)據(jù)線IORDYIO就緒DASP驅(qū)動器有效IOW寫入IO口A[2:0]地址PDIAG通過檢測DMACKDMA應(yīng)答RESET復(fù)位低電平有效28.IDE設(shè)備存放器CS1CS0A2A1A0讀取寫入位10000數(shù)據(jù)寄存器數(shù)據(jù)寄存器1610001錯誤寄存器特征寄存器810010扇區(qū)數(shù)寄存器扇區(qū)數(shù)寄存器810011扇區(qū)號寄存器扇區(qū)號寄存器810100柱面號(低字節(jié))柱面號(低字節(jié))810101柱面號(高字節(jié))柱面號(高字節(jié))810110驅(qū)動器/磁頭驅(qū)動器/磁頭810111狀態(tài)寄存器命令寄存器801110可選狀態(tài)寄存器設(shè)備控制寄存器801111驅(qū)動器地址寄存器保留829.嵌入式處理器上
擴展IDE接口的考慮電平標(biāo)準(zhǔn)是否滿足?IDE接口為5V邏輯,與3.3V邏輯如何接口總線時序如何滿足?讀寫時序和SRAM類似,通過組合邏輯即可滿足30.UP-NETARM2410-S上IDE接口邏輯原理圖FPGA內(nèi)部邏輯nGCSF信號地址譯碼的結(jié)果偏移地址0x80000031.IDE接口的驅(qū)動程序在driv
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 東西轉(zhuǎn)讓協(xié)議合同范例
- 內(nèi)衣行業(yè)交易合同范例
- 出售立式車床合同范例
- 養(yǎng)殖職工合同范例
- 加工噴涂合同范例
- 保潔協(xié)議合同范例
- 中介網(wǎng)簽合同范例
- 產(chǎn)銷合同范例
- 中標(biāo)優(yōu)先投資合同范例
- 加盟銷售轉(zhuǎn)讓合同范例
- 固態(tài)電池發(fā)展趨勢研究
- 2025年鄉(xiāng)村住宅互換協(xié)議
- 2025年哈爾濱幼兒師范高等??茖W(xué)校單招職業(yè)技能測試題庫完整
- 2025-2030年中國鐵精粉市場發(fā)展?fàn)顩r及營銷戰(zhàn)略研究報告
- 做最勇敢的自己
- 《生活污水》課件
- 2025年大慶職業(yè)學(xué)院單招職業(yè)技能測試題庫(名師系列)
- GB/T 23694-2024風(fēng)險管理術(shù)語
- 創(chuàng)辦民辦學(xué)校項目可行性論證報告
- 律師事務(wù)所監(jiān)管資金協(xié)議書(2篇)
- 2025年江蘇南通煒賦集團有限公司招聘筆試參考題庫含答案解析
評論
0/150
提交評論