資料介紹
在嵌入式Linux的開發(fā)工作中,常用的存儲(chǔ)設(shè)備有NorFlash和NandFlash,其中價(jià)格低廉并適用于高密度和大容量存儲(chǔ)的NandFlash運(yùn)用更為廣泛[1]。YAFFS(Yet Another Flash File System)文件系統(tǒng)是專門針對(duì)NandFlash的特殊構(gòu)造設(shè)計(jì)的,是一種日志結(jié)構(gòu)的文件系統(tǒng),性能超越了原有的JFFS系列文件系統(tǒng)。但隨著嵌入式技術(shù)的發(fā)展,在NandFlash介質(zhì)上的嵌入式Linux中構(gòu)造YAFFS時(shí),YAFFS存在掛載時(shí)間過(guò)長(zhǎng)和損耗均衡性不足兩方面的缺點(diǎn),需要進(jìn)一步改進(jìn)和優(yōu)化。
1 YAFFS文件系統(tǒng)
在嵌入式所用的NandFlash中,基本的讀寫單位是頁(yè)(page),YAFFS的存儲(chǔ)位也是頁(yè)(一般稱為Chunk),分為附加區(qū)(OOB)和數(shù)據(jù)區(qū)。32頁(yè)組成塊(block)是基本的擦除單位[2]。由于YAFFS的文件偏移地址和閃存的物理地址不一致而建立了一張文件與物理頁(yè)的映射表。閃存的頁(yè)序號(hào)作為表內(nèi)容,以每頁(yè)描述的文件偏移量作為表索引,再把這張大的映射表分為若干小表,組織成樹結(jié)構(gòu),以提高文件數(shù)據(jù)塊的查找速度。這種在內(nèi)存中建立的層次索引目錄稱之為節(jié)點(diǎn)樹(TnodeTree),是YAFFS的核心模型,如圖1所示。在節(jié)點(diǎn)樹中按照邏輯索引(Logical chunk index)找到物理地址索引(Physical chunk index)。當(dāng)文件變大時(shí),所需的葉子節(jié)點(diǎn)也會(huì)增加,此時(shí)節(jié)點(diǎn)樹就會(huì)“拔高”和“增肥”。當(dāng)文件進(jìn)行刪除操作時(shí),用遞歸的方法從葉節(jié)點(diǎn)向上收縮,釋放已被刪除節(jié)點(diǎn)對(duì)應(yīng)的物理頁(yè)。

2 構(gòu)建YAFFS文件系統(tǒng)
2.1 實(shí)驗(yàn)平臺(tái)
開發(fā)過(guò)程中運(yùn)用的是目標(biāo)板與宿主機(jī)的交叉編譯模式。宿主機(jī)即PC機(jī),采用的是虛擬機(jī)+Linux RedHat9.0系統(tǒng);目標(biāo)板的硬件是ARM板,采用的是一塊S3C2440的ARM9微處理器,帶有一塊256 MB的NandFlash、64 MB的SDRAM內(nèi)存。目標(biāo)板采用的開發(fā)軟件是嵌入式Linux2.6.28+交叉編譯工具arm-Linux-gcc4.3.1。YAFFS文件系統(tǒng)的開發(fā)流程如圖2所示,引導(dǎo)程序Boot-Loader一般是固定在開板的Flash中(這里不做詳解)。

2.2 內(nèi)核移植
?。?)修改交叉編譯環(huán)境,使其適用于本實(shí)驗(yàn)平臺(tái)。修改頂級(jí)Makefile中定義的ARM編譯器,使之與所采用的平臺(tái)處理器相對(duì)應(yīng)。修改如下:
ARCH = arm
CROSS_COMPILE = /usr/local/3.4.1/arm-linux-
同時(shí),為了支持實(shí)驗(yàn)平臺(tái)處理器12 MHz的晶振頻率,修改Linux提供的輸入時(shí)鐘,在文件arch/arm/mach-
s3c2440/mach-smdk2440.c中定義s3c24xx_init_clocks
(12 000 000);并且在該文件中將Linux支持的machine名稱改為MACHINE_START(S3C2440,“Study-S3C2440”);最后,修改Linux中默認(rèn)的機(jī)器號(hào),使之與BootLoarder傳遞的機(jī)器參數(shù)782一致。在arch/arm/tools/math-types中,機(jī)器型號(hào)語(yǔ)句修改為:
S3C2440 ARCH_S3C2440 S3C2440 782
1 YAFFS文件系統(tǒng)
在嵌入式所用的NandFlash中,基本的讀寫單位是頁(yè)(page),YAFFS的存儲(chǔ)位也是頁(yè)(一般稱為Chunk),分為附加區(qū)(OOB)和數(shù)據(jù)區(qū)。32頁(yè)組成塊(block)是基本的擦除單位[2]。由于YAFFS的文件偏移地址和閃存的物理地址不一致而建立了一張文件與物理頁(yè)的映射表。閃存的頁(yè)序號(hào)作為表內(nèi)容,以每頁(yè)描述的文件偏移量作為表索引,再把這張大的映射表分為若干小表,組織成樹結(jié)構(gòu),以提高文件數(shù)據(jù)塊的查找速度。這種在內(nèi)存中建立的層次索引目錄稱之為節(jié)點(diǎn)樹(TnodeTree),是YAFFS的核心模型,如圖1所示。在節(jié)點(diǎn)樹中按照邏輯索引(Logical chunk index)找到物理地址索引(Physical chunk index)。當(dāng)文件變大時(shí),所需的葉子節(jié)點(diǎn)也會(huì)增加,此時(shí)節(jié)點(diǎn)樹就會(huì)“拔高”和“增肥”。當(dāng)文件進(jìn)行刪除操作時(shí),用遞歸的方法從葉節(jié)點(diǎn)向上收縮,釋放已被刪除節(jié)點(diǎn)對(duì)應(yīng)的物理頁(yè)。

2 構(gòu)建YAFFS文件系統(tǒng)
2.1 實(shí)驗(yàn)平臺(tái)
開發(fā)過(guò)程中運(yùn)用的是目標(biāo)板與宿主機(jī)的交叉編譯模式。宿主機(jī)即PC機(jī),采用的是虛擬機(jī)+Linux RedHat9.0系統(tǒng);目標(biāo)板的硬件是ARM板,采用的是一塊S3C2440的ARM9微處理器,帶有一塊256 MB的NandFlash、64 MB的SDRAM內(nèi)存。目標(biāo)板采用的開發(fā)軟件是嵌入式Linux2.6.28+交叉編譯工具arm-Linux-gcc4.3.1。YAFFS文件系統(tǒng)的開發(fā)流程如圖2所示,引導(dǎo)程序Boot-Loader一般是固定在開板的Flash中(這里不做詳解)。

2.2 內(nèi)核移植
?。?)修改交叉編譯環(huán)境,使其適用于本實(shí)驗(yàn)平臺(tái)。修改頂級(jí)Makefile中定義的ARM編譯器,使之與所采用的平臺(tái)處理器相對(duì)應(yīng)。修改如下:
ARCH = arm
CROSS_COMPILE = /usr/local/3.4.1/arm-linux-
同時(shí),為了支持實(shí)驗(yàn)平臺(tái)處理器12 MHz的晶振頻率,修改Linux提供的輸入時(shí)鐘,在文件arch/arm/mach-
s3c2440/mach-smdk2440.c中定義s3c24xx_init_clocks
(12 000 000);并且在該文件中將Linux支持的machine名稱改為MACHINE_START(S3C2440,“Study-S3C2440”);最后,修改Linux中默認(rèn)的機(jī)器號(hào),使之與BootLoarder傳遞的機(jī)器參數(shù)782一致。在arch/arm/tools/math-types中,機(jī)器型號(hào)語(yǔ)句修改為:
S3C2440 ARCH_S3C2440 S3C2440 782
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 嵌入式Linux系統(tǒng)移植-(Linux文件系統(tǒng))
- 嵌入式linux系統(tǒng)中常用的文件系統(tǒng)
- 如何實(shí)現(xiàn)Linux內(nèi)核移植和yaffs2根文件系統(tǒng)制作 9次下載
- Linux日志文件系統(tǒng)解析 0次下載
- YAFFS文件系統(tǒng)在C51系統(tǒng)上的實(shí)現(xiàn)過(guò)程解析 0次下載
- 《Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解》第5章、Linux文件系統(tǒng)與設(shè)備文件系統(tǒng) 0次下載
- 超大容量NANDFlash文件系統(tǒng)-YAFFS2在Linux下的實(shí)現(xiàn) 11次下載
- 細(xì)數(shù)那些流行的 Linux 文件系統(tǒng) 0次下載
- 基于閃存YAFFS文件系統(tǒng)的索引機(jī)制的改進(jìn)_李紀(jì)扣 0次下載
- Linux源碼分析系列之文件系統(tǒng) 51次下載
- Linux虛擬文件系統(tǒng)實(shí)現(xiàn)技術(shù)探討 32次下載
- YAFFS嵌入式文件系統(tǒng)應(yīng)用研究
- 構(gòu)造嵌入式Linux的文件系統(tǒng)
- Linux文件系統(tǒng)課程 0次下載
- 基于VxWorks的TrueFFS文件系統(tǒng)的構(gòu)建與設(shè)計(jì)
- 如何更改Linux文件系統(tǒng)終端顯示顏色 642次閱讀
- 如何修改buildroot和debian文件系統(tǒng) 524次閱讀
- Linux系統(tǒng)如何擴(kuò)展文件系統(tǒng) 864次閱讀
- Linux 文件系統(tǒng)層的主要結(jié)構(gòu) 1034次閱讀
- 深入剖析Linux文件系統(tǒng)的架構(gòu) 1068次閱讀
- 深入剖析Linux內(nèi)核虛擬文件系統(tǒng) 3108次閱讀
- 嵌入式Linux啟動(dòng)時(shí)間優(yōu)化的秘密之二文件系統(tǒng) 5196次閱讀
- 基于Buildroot的Linux系統(tǒng)構(gòu)建之根文件系統(tǒng) 2620次閱讀
- 如何區(qū)別Linux文件系統(tǒng)呢? 3720次閱讀
- 了解Linux默認(rèn)文件系統(tǒng)的發(fā)展歷史 6507次閱讀
- 快速了解Linux文件系統(tǒng) 3702次閱讀
- 文件系統(tǒng)是什么?淺談EXT文件系統(tǒng)歷史 5723次閱讀
- 玩轉(zhuǎn)Linux,先把文件系統(tǒng)搞懂 2083次閱讀
- 制作ZedBoard上linux根文件系統(tǒng)(ramdisk) 1603次閱讀
- 基于zynq的Linux根文件系統(tǒng)生成 5841次閱讀
下載排行
本周
- 1PC3103 低功耗電流模式PWM控制器技術(shù)手冊(cè)
- 1.23 MB | 3次下載 | 免費(fèi)
- 2L7805CV TO-220三端穩(wěn)壓IC規(guī)格書
- 0.71 MB | 1次下載 | 免費(fèi)
- 3LoRa2021 全頻段無(wú)線通訊模塊規(guī)格書
- 814.22 KB | 1次下載 | 免費(fèi)
- 4L7812CV TO-220三端穩(wěn)壓IC規(guī)格書
- 1.35 MB | 次下載 | 免費(fèi)
- 5L7815CV TO-220三端穩(wěn)壓IC規(guī)格書
- 1.48 MB | 次下載 | 免費(fèi)
- 6N-12電子傾斜儀指南
- 0.24 MB | 次下載 | 10 積分
- 7基于CP500S掃描測(cè)頭的三坐標(biāo)測(cè)量系統(tǒng):復(fù)雜曲面零件解決方案
- 0.35 MB | 次下載 | 免費(fèi)
- 8STM32H747xI/G 英文數(shù)據(jù)手冊(cè)
- 5.09 MB | 次下載 | 免費(fèi)
本月
- 1PFC電路與BOOST電路設(shè)計(jì)實(shí)例分享
- 1.83 MB | 18次下載 | 4 積分
- 2電源測(cè)試報(bào)告-基于 國(guó)民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
- 6.47 MB | 17次下載 | 免費(fèi)
- 3世平基于靈動(dòng)微 SPIN560C 的低壓無(wú)刷電機(jī)應(yīng)用方案
- 10.93 MB | 11次下載 | 免費(fèi)
- 4900MHz全雙工無(wú)線發(fā)射器參考設(shè)計(jì)原理圖資料
- 0.40 MB | 6次下載 | 免費(fèi)
- 5PWM控制器的控制方法
- 0.39 MB | 3次下載 | 4 積分
- 6900MHz全雙工無(wú)線發(fā)射器參考設(shè)計(jì)
- 0.15 MB | 3次下載 | 1 積分
- 7美的電磁爐TM-S1-20B PN8124F+CHK S009資料圖
- 0.28 MB | 3次下載 | 10 積分
- 8FS313B USB 的 PD和QC 快充協(xié)議電壓誘騙控制器規(guī)格書
- 2.61 MB | 3次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935134次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191424次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183352次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73819次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App






創(chuàng)作
發(fā)文章
發(fā)帖
提問(wèn)
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論