基于CF卡的特定FAT文件系統的設計與實(shí)現
在Nios II上還有另外一個(gè)非常重要的概念,即Avalon數據總線(xiàn)結構。Avalon總線(xiàn)是為SOPC環(huán)境而設計的,是一種相對簡(jiǎn)單的總線(xiàn)結構,主要用于連接片內處理器與外設,以構成SOPC系統,互連邏輯由PLD內部的邏輯單元構成??偩€(xiàn)描述了主從設備間的端口連接關(guān)系以及設備間通信的時(shí)序關(guān)系??偩€(xiàn)擁有多種傳輸模式,以適應不同外設的要求,其基本的傳輸模式是在一個(gè)主外設和一個(gè)從外設之間進(jìn)行單字節、半字或字(8、16或32位)的傳輸??偩€(xiàn)設有特定的端口長(cháng)度對齊功能,使得不同數據端口長(cháng)度的主從端之間進(jìn)行傳輸不存在任何問(wèn)題,更加方便了開(kāi)發(fā)者的使用。此外,利用DMA控制器組件,使得DMA技術(shù)可以非常方便地應用于Nios系統。在DMA模式下傳輸數據時(shí),傳輸的數據量越大,則傳輸發(fā)起所耗費的運算量則相對越小,傳輸效率也越高。
4、特定FAT32文件系統的結構與實(shí)現
為了使用和管理上的方便,將數據信息以文件的形式存放在存儲介質(zhì)上,加上特有的邏輯組織關(guān)系,就構成了文件系統。在PC電腦+Windows操作系統的模式下,最為普遍的就是FAT文件系統。隨著(zhù)數據量的不斷加大,FAT文件系統也由最初的FAT12發(fā)展到了FAT32,最大可以支持4GB的單個(gè)文件,理論上最大可以支持2TB的分區。
FAT32文件系統的邏輯結構如圖3所示。由于在FAT32文件系統中,文件存放采用鏈式結構,鏈表存儲在FAT表中,因此實(shí)現了文件實(shí)際數據的不連續存放(最小存儲單位內是連續的)。雖然這種鏈式結構使得文件在管理操作上實(shí)現了動(dòng)態(tài)反復靈活分配存儲空間的目的,但是由于過(guò)多的尋址也同時(shí)降低了系統對于文件讀寫(xiě)的性能。在很多實(shí)際的測試系統中,數據的實(shí)時(shí)存
儲性能目標更為重要,因此完全可以將FAT32系統簡(jiǎn)化,使得具體的文件數據在用戶(hù)數據區中連續存放,而系統在操作文件的時(shí)候,只需要獲取文件的第一個(gè)數據地址(簇號)以及文件的大小,即可進(jìn)行連續地址讀寫(xiě)操作,省去了不斷查找簇鏈的運算開(kāi)銷(xiāo)。并且,由于實(shí)際數據在物理地址上連續存放,更使得DMA可以發(fā)揮其特有的優(yōu)勢,一次性的傳輸數據量可以大大提高,讀寫(xiě)操作得以更加高效的執行。
在具體的操作上,主要問(wèn)題在于如何定位文件的第一個(gè)數據簇號以及如何獲取文件的大小。作者在A(yíng)ltera公司提供的Nios II IDE編程環(huán)境中,采用C語(yǔ)言成功編寫(xiě)相關(guān)程序。程序運行流程如圖4所示。
5、總結
本文給出了一種可以實(shí)際應用的基于CF卡的特定簡(jiǎn)化版FAT32文件系統,以及該文件系統所應用的硬件平臺。系統存儲介質(zhì)不僅僅擁有長(cháng)期保存、便于攜帶的特點(diǎn),而且通過(guò)簡(jiǎn)化文件系統結構,提高了數據存儲操作的速率和效率,并且該文件系統完全可以直接被Windows操作系統所識別,方便數據的后續操作處理。
評論