新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于System ACE的DSP文件系統(tǒng)設(shè)計(jì)

基于System ACE的DSP文件系統(tǒng)設(shè)計(jì)

作者: 時(shí)間:2010-10-09 來源:網(wǎng)絡(luò) 收藏

  1.5 System ACE的文件和目錄

 ?。瓵CE是在目錄結(jié)構(gòu)的最底層。Xilinx的SystemACE軟件能夠?qū)⒈忍亓鬓D(zhuǎn)換為.ACE文件。1個(gè).ACE文件代表特定設(shè)備鏈的比特流。

 ?。甤ollection是目錄結(jié)構(gòu)中緊挨著.ACE的上一層,由8個(gè).ACE組成。在System ACE環(huán)境下,同一.collection下的所有.ACE文件都可以處理。

  在1個(gè)CF卡設(shè)備中有多個(gè)collection,但在任意一時(shí)問只能有1個(gè)被激活,至于哪一個(gè)被操作是通過xilinx.sys文件來決定的。xilinx.sys文件在ACE Flash設(shè)備的根目錄下。ACE控制器能夠解析xilinx.sys文件。若根目錄下面沒有xilinx.sys文件,則必須有1個(gè).ACE文件來充當(dāng)此角色。

  System ACE目錄結(jié)構(gòu)的分層設(shè)計(jì)使得它能夠維護(hù)多個(gè)版本或者是不同設(shè)計(jì)的collection。每一個(gè)collection目錄可以有1個(gè)或者多個(gè)不同的子目錄。每一個(gè)子目錄只能包含1個(gè).ACE文件。

  Sysrem ACE目錄結(jié)構(gòu)的規(guī)則如下:

  ◆Sysrem ACE配置文件必須放在CF卡設(shè)備的第1分區(qū)。

  ◆Sysrem ACE分區(qū)必須被格式化為FAT12或者FAT16格式。

  ◆xilinx.sys必須在根目錄下。當(dāng)xilinx.sys不存在時(shí),根目錄下必須有1個(gè).ACE來充當(dāng)此角色。

  2 CF卡原理

  CF(Compact Flash)卡是以閃存為存儲(chǔ),具有容量大(512 MB)、功耗低和可靠性高等優(yōu)點(diǎn),得到廣泛的應(yīng)用。CF卡讀寫的最小單位為1個(gè)扇區(qū)(512字節(jié)),讀寫操作是通過卡內(nèi)緩沖區(qū)進(jìn)行的,不支持直接讀寫存儲(chǔ)區(qū)域。

  CF卡可以工作在3種模式:PC Card Memory(Memory模式),PC Card I/O(I/O模式)和True IDE模式。PCCARD模式與PCMCIA標(biāo)準(zhǔn)兼容。TRUE IDE模式與ATA/ATAPI-4標(biāo)準(zhǔn)兼容。當(dāng)上電時(shí),如果OE接地,則進(jìn)入True IDE模式,在此模式下只可以存取任務(wù)寄存器。另外2種模式需要通過設(shè)備結(jié)構(gòu)寄存器來選擇。

  CF卡的操作方式與硬盤的操作方式相似。CF卡讀寫必須以扇區(qū)為單位,每個(gè)扇區(qū)為512字節(jié),每次可以讀寫1個(gè)扇區(qū)或連續(xù)多個(gè)扇區(qū)。扇區(qū)的尋址方式有2種:邏輯尋址(LBA)和物理尋址(CHS),它們之間的關(guān)系為:

  LBA=(柱面號(hào)×磁頭數(shù)+磁頭號(hào))×扇區(qū)數(shù)+扇區(qū)數(shù)-1

  尋址方式采用LBA(Logic Block Address),該方式將全部扇區(qū)映射至1塊連續(xù)的地址空間中,這樣可以大大簡化編程的工作,同時(shí)避免了柱面、磁頭和扇區(qū)之間的換算,使尋址更方便。對(duì)CF卡的配置及各種操作,如讀寫、刪除、格式化等,都通過寫特殊功能寄存器完成。

  3 文件系統(tǒng)的建立

  3.1 文件系統(tǒng)的引入

  100個(gè)數(shù)在文件系統(tǒng)中是如何存放的呢?在計(jì)算機(jī)中是以0/1二進(jìn)制的形式簡單地存放在存儲(chǔ)介質(zhì)中。如果不同的數(shù)多,如何處理?這就引出了文件系統(tǒng)。文件系統(tǒng)實(shí)際上就是對(duì)存儲(chǔ)的數(shù)據(jù)進(jìn)行管理。本文在CF卡上建立的文件系統(tǒng)是FAT16。FAT16是Microsoft較早推出的文件系統(tǒng),具有高度兼容性,目前仍然廣泛應(yīng)用于個(gè)人電腦尤其是移動(dòng)存儲(chǔ)設(shè)備中。

  硬盤上的數(shù)據(jù)按照其不同的特點(diǎn)和作用大致可分為5部分:MBR(Main Boot Record,主引導(dǎo)扇)區(qū),DBR(DosBoot Record,操作系統(tǒng)引導(dǎo)記錄)區(qū),F(xiàn)AT(File AllocationTable,文件分配表)區(qū),DIR(Directory,根目錄)區(qū),DATA區(qū)。

  MBR區(qū)位于整個(gè)硬盤的0柱面0磁頭1扇區(qū)(可以看作是硬盤的第1個(gè)扇區(qū)),bios在執(zhí)行自己固有的程序以后就會(huì)跳轉(zhuǎn)到mbr中的第1條指令,將系統(tǒng)的控制權(quán)交由mbr來執(zhí)行。在總共512字節(jié)的主引導(dǎo)記錄中,MBR的引導(dǎo)程序占了其中的前446字節(jié)(偏移0H~偏移1BDH),隨后的64字節(jié)(偏移1BEH~偏移1FDH)為DPT(Disk Partition Table,硬盤分區(qū)表),最后的2字節(jié)“55 AA”(偏移1FEH~偏移1FFH)是分區(qū)有效結(jié)束標(biāo)志。MBR不隨操作系統(tǒng)的不同而不同,即不同的操作系統(tǒng)可能會(huì)存在相同的MBR,即使不同,MBR也不會(huì)夾帶操作系統(tǒng)的性質(zhì),具有公共引導(dǎo)的特性。

  DBR(Dos Boot Record,操作系統(tǒng)引導(dǎo)記錄)區(qū)通常占用分區(qū)的第0扇區(qū),共512字節(jié)(特殊情況下也要占用其他保留扇區(qū),這里先說第0扇)。在這512字節(jié)中,其實(shí)又是由跳轉(zhuǎn)指令、廠商標(biāo)志和操作系統(tǒng)版本號(hào)、BPB(BIOS Parameter Block)、擴(kuò)展BPB、os引導(dǎo)程序、結(jié)束標(biāo)志幾部分組成。

  FAT表是用FAT16來記錄磁盤數(shù)據(jù)區(qū)簇鏈結(jié)構(gòu)的。如前面的例子,F(xiàn)AT將磁盤空間按一定數(shù)目的扇區(qū)為單位進(jìn)行劃分,這樣的單位稱為簇。通常情況下,每扇區(qū)512字節(jié)的原則是不變的。簇的大小一般是2n(n為整數(shù))個(gè)扇區(qū)的大小,像512 B、1 KB、2 KB、4 KB、8 KB、16 KB、32 KB、64 KB。實(shí)際中通常不超過32 KB。之所以簇為單位而不以扇區(qū)為單位進(jìn)行磁盤的分配,是因?yàn)楫?dāng)分區(qū)容量較大時(shí),采用大小為512位的扇區(qū)管理會(huì)增加FAT表的項(xiàng)數(shù),對(duì)大文件存取增加消耗,文件系統(tǒng)效率不高。

  DIR(Directory)是根目錄區(qū),緊接著第二FAT表(即備份的FAT表)之后,記錄著根目錄下每個(gè)文件(目錄)的起始單元、文件的屬性等。定位文件位置時(shí),操作系統(tǒng)根據(jù)DIR中的起始單元,結(jié)合FAT表就可以知道文件在硬盤中的具體位置和大小了。

  數(shù)據(jù)區(qū)是真正意義上的數(shù)據(jù)存儲(chǔ)的地方,位于DIR區(qū)之后,占據(jù)硬盤上的大部分?jǐn)?shù)據(jù)空間。

  3.2 FAT16文件系統(tǒng)存儲(chǔ)原理

  在FAT文件系統(tǒng)中,文件的存儲(chǔ)依照FAT表制定的簇鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)來進(jìn)行。同時(shí),F(xiàn)AT文件系統(tǒng)將組織數(shù)據(jù)時(shí)使用的目錄也抽象為文件,以簡化對(duì)數(shù)據(jù)的管理。格式化FAT16分區(qū)時(shí),格式化程序根據(jù)分區(qū)的大小確定簇的大小,然后根據(jù)保留扇區(qū)的數(shù)目、根目錄的扇區(qū)數(shù)目、數(shù)據(jù)區(qū)可分的簇?cái)?shù)與FAT表本身所占空間來確定FAT表所需的扇區(qū)數(shù)目,之后將計(jì)算結(jié)果寫入DBR的相關(guān)位置。FAT16 DBR參數(shù)的偏移0x11處記錄了根目錄所占扇區(qū)的數(shù)目。偏移0x16記錄了FAT表所占扇區(qū)的數(shù)據(jù)。偏移0x10記錄了FAT表的副本數(shù)目。系統(tǒng)在得到這幾項(xiàng)參數(shù)以后,就可以確定數(shù)據(jù)區(qū)的開始扇區(qū)偏移了。FAT16文件系統(tǒng)從根目錄所占的32個(gè)扇區(qū)之后的第1個(gè)扇區(qū)開始以簇為單位進(jìn)行數(shù)據(jù)的處理,這之前仍以扇區(qū)為單位。對(duì)于根目錄之后的第1個(gè)簇,系統(tǒng)并不編號(hào)為第0簇或第1簇,而是編號(hào)為第2簇,也就是說數(shù)據(jù)區(qū)順序上的第1個(gè)簇也是編號(hào)上的第2簇。FAT文件系統(tǒng)之所以有12、16、32不同的版本之分,其根本在于FAT表用來記錄任意一簇鏈接的二進(jìn)制位數(shù)。以FAT16為例,每一簇在FAT表中占據(jù)2字節(jié)(二進(jìn)制16位)。所以,F(xiàn)AT16最大可以表示的簇號(hào)為0xFFFF(十進(jìn)制的65535),以32 KB為簇的大小的話,F(xiàn)AT32可以管理的最大磁盤空間為:32 KB×65 535=2 048 MB,這就是為什么FAT16不支持超過2 GB分區(qū)的原因。FAT表實(shí)際上是1個(gè)數(shù)據(jù)表,以2字節(jié)為單位,我們暫將這個(gè)單位稱為FAT記錄項(xiàng),通常情況其第1、2個(gè)記錄項(xiàng)(前4個(gè)字節(jié))用作介質(zhì)描述。從第3個(gè)記錄項(xiàng)開始記錄除根目錄外的其他文件及文件夾的簇鏈情況。



關(guān)鍵詞: DSP

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉