基于VxWorks的TrueFFS文件系統(tǒng)的構建與設計.doc_第1頁
基于VxWorks的TrueFFS文件系統(tǒng)的構建與設計.doc_第2頁
基于VxWorks的TrueFFS文件系統(tǒng)的構建與設計.doc_第3頁
基于VxWorks的TrueFFS文件系統(tǒng)的構建與設計.doc_第4頁
全文預覽已結束

下載本文檔

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

文檔簡介

基于VxWorks的TrueFFS文件系統(tǒng)的構建與設計 VxWorks是一種的高性能實時操作系統(tǒng),其強實時性、高可靠性、良好的可剪裁特性、友好的集成開發(fā)環(huán)境Tornado,使VxWorks成為實時操作系統(tǒng)中最有特色的操作系統(tǒng)之一。加之VxWorks對ARM系列芯片有著良好的支持,使其在軍事、航天、通信、工業(yè)控制等諸多方面應用十分廣泛。但是目前大多數(shù)的嵌入式軟件開發(fā)人員都僅僅是開發(fā)了一些驅(qū)動程序,這樣也可以讓系統(tǒng)運行起來,然而僅僅做到這些是不夠的,構建文件系統(tǒng),采用文件系統(tǒng)的方式對各個程序加以細化的管理和操作,將更加有利于提高整個系統(tǒng)的效率和可靠性。 TrueFFS是一種硬盤仿真技術,TrueFFS應用程序能從閃存中讀寫,其過程如同從磁性介質(zhì)的機械硬盤驅(qū)動器上的MS-DOS文件系統(tǒng)中讀寫一樣。TrueFFS用磨損測評技術和無用單元收集算法,像硬盤一樣最合理的分配和使用每一個區(qū)塊,減少了區(qū)塊遷移和區(qū)塊過度使用,讓閃盤更可靠、使用壽命更長??梢栽谠S多嵌入式系的DOC中得以廣泛應用。 VxWorks操作系統(tǒng)在文件系統(tǒng)與設備驅(qū)動程序之間使用一種標準的I/O操作接口, 這樣使得在單個VxWorks操作系統(tǒng)中可以運行多個相同或者不同類型的文件系統(tǒng)。依據(jù)這些標準接口協(xié)議,用戶可以為VxWorks操作系統(tǒng)編寫自己的文件系統(tǒng),并且可融入自己編寫的設備驅(qū)動程序,以實現(xiàn)兩者的自由組合。有較高的靈活性和可擴展性。1 軟件結構 Window下的文件系統(tǒng)如FAT、NTFS往往不適合用在嵌入式應用系統(tǒng)中,因為第一:嵌入式應用系統(tǒng)工作條件往往比較惡劣。第二:實際的嵌入式應用系統(tǒng)往往資源很有限、不便于支持大型的文件系統(tǒng)。第三:閃存的過編程易造成閃存的損壞。 VxWorks中可支持的文件系統(tǒng)有:dosFs文件系統(tǒng)、TrueFFS文件系統(tǒng)(TrueFFS支持閃存設備)、rawFs文件系統(tǒng)、tapeFs文件系統(tǒng)、cdromFs文件系統(tǒng)、TSFS目標服務器文件系統(tǒng)。其中dosFs文件系統(tǒng)適合于塊存儲設備的實時操作,與MS-DOS文件系統(tǒng)兼容。TrueFFS提供面向多種閃存設備的塊設備接口,可以重進入、線程安全、并支持所有裝載VxWorks的CPU結構。由于閃存非常適合移動設備、手持設備和大多數(shù)的嵌入式系統(tǒng),而這些要求對于機械硬盤而言則難以滿足。TureFFS與dosFs文件系統(tǒng)是兼容的所以很有實用價值。 TureFFS與dosFs的區(qū)別在于TrueFFS不支持分區(qū)表,也不支持ioctl。值得注意的是,Tornado的這個版本支持SSFDC規(guī)范的NAND器件,但不支持NOR器件。VxWorks中的軟件體系結構如圖1所示。 至底向上依次是硬件設備、塊存取設備、文件系統(tǒng)、設備驅(qū)動、應用程序。硬件設備是閃存、DRAM、串口、網(wǎng)口等;塊存取設備驅(qū)動程序主要是面向設備的啟動層;文件系統(tǒng)主要有dosFs和TrueFFS,這部分是非常重要的,一個良好而高效的嵌入式系統(tǒng)必須要有這樣一個或者多個文件系統(tǒng)。接著是I/O系統(tǒng)接口,VxWorks操作系統(tǒng)中的I/O系統(tǒng)可以提供簡單、統(tǒng)一、與任何設備無關的接口,包括基本I/O和緩沖I/O系統(tǒng),適應高實型的要求。最頂部是用戶的編寫應用程序與下層的代碼也不直接與硬件聯(lián)系。2 TureFFS層次架構圖2 TrueFFS具有分層結構1.核心層:該層將其他各層連接起來,并處理全局事務,如后臺處理、碎片搜集、計時器和其他系統(tǒng)資源,核心層只有二進制形式。2.轉(zhuǎn)換層:該層包含了存儲媒質(zhì)的文件系統(tǒng)視圖與閃存擦除之間的映射。轉(zhuǎn)換層只有二進制形式。3.MTD層:MTD執(zhí)行閃存媒質(zhì)的低級編程(映射、讀、寫、擦除),MTD具有源代碼和二進制形式。4.Socket層:Socket層提供TrueFFS與板級硬件之間的接口,提供指定板硬件的存取程序。Socket驅(qū)動程序只具有源代碼形式。3 構建支持TrueFFS系統(tǒng)的步驟 選擇MTD組件,MTD是軟件模塊既可以用WINDRIVER公司的產(chǎn)品也可以用戶自己編寫。MTD支持的閃存設備有CFI接口的也有SCS接口,根據(jù)自己的Flash芯片,決定采用什么樣的BSP組件。確定Socket驅(qū)動程序、sysTffs.c文件中執(zhí)行、在相應的BSP中也要有所定義。配置系統(tǒng)。添加dosFs和其他組件。并且必須要有一個核心組件INCLUDE_TFFS。構建項目。在這里包含多種組件,主要是與選擇的Flash種類有關,各種公司生產(chǎn)的閃存設備都對應了不同的組件。如INCLUDE_MTD_AMD就是包含AMD、Fujitsu的閃存設備。引導目標機以及格式化驅(qū)動程序。安裝驅(qū)動程序。使用usrTffsConfig()函數(shù)將文件系統(tǒng)安裝在TrueFFS閃存驅(qū)動器。檢測驅(qū)動程序。確保文件操作的正確性。啟動系統(tǒng),注冊Socket驅(qū)動程序后,調(diào)出shell程序,用tfsDevFormat()格式化Flash。由于系統(tǒng)中有一部分是下載的系統(tǒng)映象文件,所以這部分區(qū)域不能被格式化,所以創(chuàng)建啟動鏡像區(qū)域是有必要的。4 閃存驅(qū)動程序設計 這部分的程序應該放在MTD層中實現(xiàn)。通用設備驅(qū)動程序是放在子程序usrRoot()中、而BSP專用設備驅(qū)動程序是放在子程序sysHWInit()中。硬件的行為和特性是通過內(nèi)部寄存器來控制的,對內(nèi)部寄存器的訪問,有兩種方式,I/O方式和存儲器映射閃存方式,在ARM系統(tǒng)里把外設I/O與內(nèi)存統(tǒng)一編址。驅(qū)動程序是界于硬件和上層應用軟件之間的低層程序代碼,驅(qū)動程序負責低層硬件和上層應用程序間的數(shù)據(jù)交換,直接面向硬件操作。驅(qū)動程序?qū)懙煤脛t使得上層應用程序的工作量相對減少很多。為防止阻塞,在驅(qū)動程序中設置狀態(tài)檢查至關重要,對硬件操作延時必然會產(chǎn)生,延時可以測出,通過時間判斷延時和死機等異常情況,從而做出相應處理。對Flash可以分扇區(qū)擦除也可以整片擦除,對閃存的寫數(shù)據(jù)其實也是先擦除再寫入,讀出數(shù)據(jù)也是分塊讀出數(shù)據(jù),可以按照周期時序規(guī)則對指定的寄存器寫入指令和讀出或者寫入數(shù)據(jù)。盡量循環(huán)擦除以避免造成閃存某一個區(qū)域的過編程,這樣可以有效利用各個塊的存儲空間也可以延長壽命。還必須注意數(shù)據(jù)的長度和數(shù)據(jù)類型的選擇,使內(nèi)存地址必須對齊,否則可能造成系統(tǒng)不可預知的問題。下面是部分代碼。/定義_廠各種指令代碼#define FLASH_CMD_FIRST 0xaa#define FLASH_CMD_SECOND 0x55/定義了總線周期地址#define FLASH_REG_FIRST_CYCLE *(unsigned short *)(0x2000000+0x555*2)#define FLASH REG_SECOND_CYCLE *(unsigned short *)(Ox2000000+Ox2aa*2)#define FLASH_CMD_PROGRAM1 0x80#define FLASH_CMD_PROGRAM2 0x10/flash按扇區(qū)擦除STATUS sysFlashEraseSector(unsigned int addr)/flash整片擦除STATUS sysFlashChipErase(void)/flash讀出整塊數(shù)據(jù)void FLASH_READ(unsigned int addr,unsigned short int *pread,int nwords)/flash寫入整塊數(shù)據(jù)STATUS sysFlashWrite (unsigned short int data,short int size,unsigned int addr) 為了盡可能的延長使用壽命,TrueFFS使用了一種稱為磨損測評的技術和無用單元收集算法。磨損測評可以緩解“過編程”的現(xiàn)象,平衡整個介質(zhì)的磨損情況,使每個單元的擦除次數(shù)近似相等。無用存儲單元收集技術對已經(jīng)擦除塊進行再次聲明,便于循環(huán)使用。5 小結 本文介紹了TrueFFS文件系統(tǒng)的建立過程,分析了各個層次架構,介紹了Flash驅(qū)動程序。

溫馨提示

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

評論

0/150

提交評論