<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è) > 嵌入式系統 > 設計應用 > 嵌入式文件系統在工程機械監控器上的移植

嵌入式文件系統在工程機械監控器上的移植

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

摘要:在基于嵌入式操作系統的智能的開(kāi)發(fā)過(guò)程中,完成了文件系統的,將周立功公司的ZLG/FS文件系統經(jīng)過(guò)一系列修改,嵌入到的系統程序里運行。文件系統的硬件平臺選用三星公司的Nand Flash芯片K9F2808,作為文件系統的硬件依托。文件系統完后該芯片就成為系統硬盤(pán),用來(lái)存儲系統程序和字庫文件等。
關(guān)鍵詞:文件系統;Nand Flash;嵌入式系統;;K9F2808

引言
文件系統是操作系統中組織、存取和保護數據的一個(gè)重要部分,文件系統的主要目標是提高存儲器的利用率,接受用戶(hù)的委托實(shí)施對文件的操作。在本智能項目開(kāi)發(fā)之初,文件系統這部分設計是由合作方北京航空航天大學(xué)完成的,當時(shí)使用的是μC/OS—II。我方接手以后,對該文件系統進(jìn)行了分析研究,發(fā)現該文件系統雖然能用,但是有些地方不夠完善,存在一些問(wèn)題和隱患:比如μC/OS-II內存占用比較大,且效率不高等。因此,又從網(wǎng)上下載了周立功文件系統(ZLG/FS),發(fā)現其非常適合監控器項目的使用,并且具備如下特點(diǎn):
①高度兼容FAT12、FAT16、FAT32;
②可移植;
③支持多任務(wù)操作系統;
④兼容多種介質(zhì)。
ZLG/FS采用模塊化層次結構設計,并使用底層驅動(dòng)程序來(lái)兼容不同的硬件結構和不同的介質(zhì)。共包括6個(gè)模塊:應用程序模塊、文件管理與目錄管理模塊、文件分配表管理與文件目錄表管理模塊、邏輯盤(pán)管理模塊、高速緩存(Cache)管理模塊、底層驅動(dòng)程序模塊。最終決定將該文件系統移植到智能監控器系統上面。

1 硬件平臺簡(jiǎn)介
本系統采用目標機+宿主機的開(kāi)發(fā)模式,目標平臺是ARM S3C44B0,宿主機是PC機+μC/OS-II操作系統。S3C44B0是基于A(yíng)RM7TDMI內核的32位微控制器,它是三星公司專(zhuān)門(mén)為PDA、Internet設備和手持設備等開(kāi)發(fā)的微處理器。該芯片還包含有8 KB的Cache,這一特性使開(kāi)發(fā)人員能夠將μC/OS-II操作系統移植到基于該處理器的目標系統中。

2 文件系統在智能監控器系統上面的移植過(guò)程
2.1 底層驅動(dòng)程序的編寫(xiě)
硬件上,將三星公司的Nand Flash芯片K9F2808開(kāi)發(fā)為系統硬盤(pán)。需要編寫(xiě)兩部分的驅動(dòng)程序:一是關(guān)于該Flash芯片的驅動(dòng)程序,也就是對該芯片最底層的最基本的操作,建立文件Flash.c,包括Flash復位、讀Flash ID號、擦除Flash的一塊、讀扇區、寫(xiě)扇區等函數,這部分函數代碼由芯片公司提供;二是關(guān)于文件系統的基礎操作,創(chuàng )建文件K9F2808.c,它調用flash.c里面的函數,為上層的程序提供一個(gè)與底層無(wú)關(guān)的接口。
文件K9F2808.c主要包括以下函數:創(chuàng )建FAT12、創(chuàng )建根目錄、格式化Flash盤(pán)、將MBR寫(xiě)到盤(pán)里等。在格式化Flash盤(pán)這個(gè)函數里,首先要調用Flash復位的函數,然后擦除Flash盤(pán)的第0個(gè)Block,擦除成功以后,將MBR的內容寫(xiě)入該Block的第一個(gè)Page里,這是Flash盤(pán)的引導扇區,寫(xiě)入的MBR包含了該盤(pán)的一些基本信息。至此,完成了格式化盤(pán)的第一步,為后面繼續格式化打下基礎。
下一步就是要創(chuàng )建FAT12,用兩個(gè)扇區(即兩個(gè)Page)作FAT區,并將其內部單元全部初始化為00H,相繼的2個(gè)扇區作FAT區的備份。接下來(lái),把第1個(gè)Block擦除掉,然后在這個(gè)Block里創(chuàng )建該盤(pán)文件系統的根目錄,并將根目錄區初始化為00H。這樣就把一個(gè)Flash盤(pán)給格式化為FAT12文件系統格式。但是還不能往盤(pán)里存東兩,因為還需要一些文件系統上層的管理。
在K9F2808.c這個(gè)文件里,函數K9F2808(uint8 Cammand,vold*Parameter)是底層驅動(dòng)程序與上層的接口函數,第一個(gè)參數代表要對該盤(pán)進(jìn)行操作的命令,比如磁盤(pán)初始化、關(guān)閉磁盤(pán)、讀扇區、寫(xiě)扇區等;第二個(gè)參數是一個(gè)結構體,它包含了當前操作的磁盤(pán)的一些讀寫(xiě)基本信息。在文件系統的上層程序里這個(gè)函數將被頻繁調用。
2.2 邏輯盤(pán)管理的程序移植
這是底層驅動(dòng)程序上面一層的程序,文件名是disk.c,其中主要包含:磁盤(pán)初始化、讀取磁盤(pán)信息、獲取空盤(pán)信息、增加一個(gè)驅動(dòng)程序。刪除一個(gè)驅動(dòng)程序等函數。這部分程序勿需改變,可以原封不動(dòng)地延用ZLG—FS里提供的程序,在此不再贅述。
2.3 高速緩存管理的程序移植
這是FAT文件系統關(guān)于Cache管理的部分,文件名是RWSec.c,主要包括:初始化磁盤(pán)Cache、解鎖指定Cache(允許切換出內存)、把指定扇區寫(xiě)回邏輯盤(pán)、把指定Cache寫(xiě)回邏輯盤(pán)、把所有已改變的扇區寫(xiě)回邏輯盤(pán)、從內存獲取一個(gè)Cache、為邏輯盤(pán)上的一個(gè)扇區打開(kāi)一個(gè)Cache并鎖定、從邏輯盤(pán)讀取一個(gè)扇區、指定邏輯盤(pán)的指定一個(gè)扇區被改寫(xiě)等。除了極個(gè)別的地方需要稍做修改外,這部分函數基本上都延用ZLG—FS里提供的程序。
2.4 文件分配表管理(FAT)的移植
文件Fat.c主要是FAT文件系統的文件分配表基本操作函數,包括:返回FAT表指定簇的下一個(gè)簇號、分配下一個(gè)簇、為指定簇鏈增加一個(gè)簇、刪除指定簇鏈。這些函數可以放心大膽地使用,不需要修改。
2.5 文件目錄表管理(FDT)的移植
文件Fdt.c是關(guān)于FAT文件系統的文件分配表基本操作程序。主要包括:將指定簇所有數據清零,讀取FDT信息,寫(xiě)FDT信息,獲取根目錄指定文件(目錄)信息,獲取指定目錄指定文件(目錄)信息,設置根目錄指定文件(目錄)信息,設置指定目錄指定文件(目錄)信息,在指定目錄查找指定文件(目錄),在指定目錄處增加指定文件(目錄),在指定目錄刪除指定文件(目錄),改變指定目錄指定文件(目錄)的屬性,判斷目錄是否為空,在指定目錄查看指定文件(目錄)是否存在。除了對最后兩個(gè)函數作了很小的改動(dòng)外,其他函數都沒(méi)用動(dòng)。


上一頁(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>