<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于INTEL StrataFlash在VxWorks上構建TrueFFS文件系統

基于INTEL StrataFlash在VxWorks上構建TrueFFS文件系統

作者: 時(shí)間:2012-05-21 來(lái)源:網(wǎng)絡(luò ) 收藏

一 前言

是美國WindRiver公司于1983年推出的一種嵌入式(RTOS),它以突出的可靠性,實(shí)時(shí)性,可裁減性等特點(diǎn)被廣泛應用于航空,航天,軍事,通信,安防等領(lǐng)域。

在嵌入式系統中,通常用flash作為永久存儲介質(zhì),用來(lái)存儲系統引導程序、操作系統映像、用戶(hù)應用程序以及系統的配置參數等?;?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/VxWorks">VxWorks 操作系統,在flash上建立TureFFS,可以使用戶(hù)操作flash時(shí),就像操作硬盤(pán)一樣,支持文件的建立、拷貝、刪除等操作。

StrataFlash系列flash是2005年初INTEL公司推出的在技術(shù)上有重大突破的產(chǎn)品,它開(kāi)創(chuàng )了在單個(gè)晶體管中存儲兩位數據的存儲技術(shù),從而大大地降低了成本,一經(jīng)推出,迅速被廣泛采用。在其上構建TrueFFS,可以為其他開(kāi)發(fā)者提供有益的借鑒。

二 TrueFFS介紹

TrueFFS文件系統為種類(lèi)繁多的flash存儲設備提供了統一的塊設備接口,它具有可重入性、線(xiàn)程安全等特點(diǎn)。在TrueFFS的支持下,應用程序對flash設備的操作就好像對有DOS文件系統支持的硬盤(pán)設備的操作一樣。

TrueFFS文件系統包括一個(gè)核心層(Core Layer)和三個(gè)功能層:轉換層(Translation Layer)、驅動(dòng)層(Memory Technology Driver (MTD) Layer)、套接層(Socket Layer),共四層。層次結構如圖 1所示。

核心層的主要功能是使其他各層互相連接,為其他層的通信提供通道以及完成一些象碎片收集,定時(shí)器管理等全局任務(wù)。WindRiver公司通常以二進(jìn)制代碼的形式提供核心層模塊,開(kāi)發(fā)者不需對核心層進(jìn)行任何修改。

轉換層主要負責維護一個(gè)文件系統的邏輯塊和flash中刪除塊之間的映射圖。這個(gè)映射圖主要是用來(lái)實(shí)現對flash的平衡磨損策略,以及進(jìn)行錯誤恢復。所謂平衡磨損是指,flash的壽命通常是有限的,每個(gè)塊的擦寫(xiě)次數大概在十萬(wàn)次左右(實(shí)際上要少的多),因此在擦寫(xiě)時(shí)不能一直對某一個(gè)塊重復擦寫(xiě),即使是對同一個(gè)數據改寫(xiě)時(shí)也是這樣,一個(gè)數據改寫(xiě)前在這個(gè)塊中存放,改寫(xiě)后可能就存放到另外一塊了,而且flash是先寫(xiě)后刪,這就可以在寫(xiě)入發(fā)生錯誤時(shí)進(jìn)行錯誤恢復了。轉換層也是以二進(jìn)制代碼的形式提供的。

驅動(dòng)層是對不同種類(lèi)的flash提供底層的操作,如映射(map),讀(read),寫(xiě)(write),刪(erase)等。構建TrueFFS文件系統的主要工作就是針對不同類(lèi)型的flash芯片編寫(xiě)相應的驅動(dòng)層代碼。

套接層是提供TrueFFS和硬件之間的接口,提供訪(fǎng)問(wèn)特定硬件的訪(fǎng)問(wèn)進(jìn)程。包括套接字注冊,電源管理,寫(xiě)保護等。WindRiver公司為開(kāi)發(fā)者提供一個(gè)套接層模板,需要針對特定的硬件進(jìn)行修改。

三 INTEL StrataFlash系列FLASH上構建TrueFFS文件系統

本文以INTEL StrataFlash系列中常用的32Mbit 28F320J3A為例說(shuō)明構建TrueFFS文件系統的過(guò)程。

1 修改相關(guān)系統文件

修改config.h文件,此文件一般存放在BSP文件夾中,在此文件中定義支持TrueFFS功能以及其他相關(guān)功能的宏,包括:

#define INCLUDE_

#ifdef INCLUDE_

#define INCLUDE_DOSFS

#define INCLUDE_SHOW_ROUTINES

#endif

修改sysTffs.c文件,此文件一般存放在BSP文件夾中,此文件定義哪個(gè)MTD驅動(dòng)和轉換層模塊被包含到TrueFFS中,以及定義flash的基地址和大小,會(huì )有以下定義出現:

#define INCLUDE_MTD_I28FJ3A

#define INCLUDE_TL_FTL

#define FLASH_BASE_ADRS 0x10000000

#defineFLASH_SIZE 0x00400000

修改sysLib.c文件,此文件一般存放在BSP文件夾中,在數組sysPhysMemDesc[]中加入FLASH_BASE_ADRS、 FLASH_SIZE所指定的地址段,MMU屬性設為VM_STATE_WRITABLE和VM_STATE_CACHEABLE_NOT等。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>