資料介紹
在嵌入式Linux的開發工作中,常用的存儲設備有NorFlash和NandFlash,其中價格低廉并適用于高密度和大容量存儲的NandFlash運用更為廣泛[1]。YAFFS(Yet Another Flash File System)文件系統是專門針對NandFlash的特殊構造設計的,是一種日志結構的文件系統,性能超越了原有的JFFS系列文件系統。但隨著嵌入式技術的發展,在NandFlash介質上的嵌入式Linux中構造YAFFS時,YAFFS存在掛載時間過長和損耗均衡性不足兩方面的缺點,需要進一步改進和優化。
1 YAFFS文件系統
在嵌入式所用的NandFlash中,基本的讀寫單位是頁(page),YAFFS的存儲位也是頁(一般稱為Chunk),分為附加區(OOB)和數據區。32頁組成塊(block)是基本的擦除單位[2]。由于YAFFS的文件偏移地址和閃存的物理地址不一致而建立了一張文件與物理頁的映射表。閃存的頁序號作為表內容,以每頁描述的文件偏移量作為表索引,再把這張大的映射表分為若干小表,組織成樹結構,以提高文件數據塊的查找速度。這種在內存中建立的層次索引目錄稱之為節點樹(TnodeTree),是YAFFS的核心模型,如圖1所示。在節點樹中按照邏輯索引(Logical chunk index)找到物理地址索引(Physical chunk index)。當文件變大時,所需的葉子節點也會增加,此時節點樹就會“拔高”和“增肥”。當文件進行刪除操作時,用遞歸的方法從葉節點向上收縮,釋放已被刪除節點對應的物理頁。
2 構建YAFFS文件系統
2.1 實驗平臺
開發過程中運用的是目標板與宿主機的交叉編譯模式。宿主機即PC機,采用的是虛擬機+Linux RedHat9.0系統;目標板的硬件是ARM板,采用的是一塊S3C2440的ARM9微處理器,帶有一塊256 MB的NandFlash、64 MB的SDRAM內存。目標板采用的開發軟件是嵌入式Linux2.6.28+交叉編譯工具arm-Linux-gcc4.3.1。YAFFS文件系統的開發流程如圖2所示,引導程序Boot-Loader一般是固定在開板的Flash中(這里不做詳解)。
2.2 內核移植
(1)修改交叉編譯環境,使其適用于本實驗平臺。修改頂級Makefile中定義的ARM編譯器,使之與所采用的平臺處理器相對應。修改如下:
ARCH = arm
CROSS_COMPILE = /usr/local/3.4.1/arm-linux-
同時,為了支持實驗平臺處理器12 MHz的晶振頻率,修改Linux提供的輸入時鐘,在文件arch/arm/mach-
s3c2440/mach-smdk2440.c中定義s3c24xx_init_clocks
(12 000 000);并且在該文件中將Linux支持的machine名稱改為MACHINE_START(S3C2440,“Study-S3C2440”);最后,修改Linux中默認的機器號,使之與BootLoarder傳遞的機器參數782一致。在arch/arm/tools/math-types中,機器型號語句修改為:
S3C2440 ARCH_S3C2440 S3C2440 782
1 YAFFS文件系統
在嵌入式所用的NandFlash中,基本的讀寫單位是頁(page),YAFFS的存儲位也是頁(一般稱為Chunk),分為附加區(OOB)和數據區。32頁組成塊(block)是基本的擦除單位[2]。由于YAFFS的文件偏移地址和閃存的物理地址不一致而建立了一張文件與物理頁的映射表。閃存的頁序號作為表內容,以每頁描述的文件偏移量作為表索引,再把這張大的映射表分為若干小表,組織成樹結構,以提高文件數據塊的查找速度。這種在內存中建立的層次索引目錄稱之為節點樹(TnodeTree),是YAFFS的核心模型,如圖1所示。在節點樹中按照邏輯索引(Logical chunk index)找到物理地址索引(Physical chunk index)。當文件變大時,所需的葉子節點也會增加,此時節點樹就會“拔高”和“增肥”。當文件進行刪除操作時,用遞歸的方法從葉節點向上收縮,釋放已被刪除節點對應的物理頁。
2 構建YAFFS文件系統
2.1 實驗平臺
開發過程中運用的是目標板與宿主機的交叉編譯模式。宿主機即PC機,采用的是虛擬機+Linux RedHat9.0系統;目標板的硬件是ARM板,采用的是一塊S3C2440的ARM9微處理器,帶有一塊256 MB的NandFlash、64 MB的SDRAM內存。目標板采用的開發軟件是嵌入式Linux2.6.28+交叉編譯工具arm-Linux-gcc4.3.1。YAFFS文件系統的開發流程如圖2所示,引導程序Boot-Loader一般是固定在開板的Flash中(這里不做詳解)。
2.2 內核移植
(1)修改交叉編譯環境,使其適用于本實驗平臺。修改頂級Makefile中定義的ARM編譯器,使之與所采用的平臺處理器相對應。修改如下:
ARCH = arm
CROSS_COMPILE = /usr/local/3.4.1/arm-linux-
同時,為了支持實驗平臺處理器12 MHz的晶振頻率,修改Linux提供的輸入時鐘,在文件arch/arm/mach-
s3c2440/mach-smdk2440.c中定義s3c24xx_init_clocks
(12 000 000);并且在該文件中將Linux支持的machine名稱改為MACHINE_START(S3C2440,“Study-S3C2440”);最后,修改Linux中默認的機器號,使之與BootLoarder傳遞的機器參數782一致。在arch/arm/tools/math-types中,機器型號語句修改為:
S3C2440 ARCH_S3C2440 S3C2440 782
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 嵌入式Linux系統移植-(Linux文件系統)
- 嵌入式linux系統中常用的文件系統
- 如何實現Linux內核移植和yaffs2根文件系統制作 9次下載
- Linux日志文件系統解析 0次下載
- YAFFS文件系統在C51系統上的實現過程解析 0次下載
- 《Linux設備驅動開發詳解》第5章、Linux文件系統與設備文件系統 0次下載
- 超大容量NANDFlash文件系統-YAFFS2在Linux下的實現 11次下載
- 細數那些流行的 Linux 文件系統 0次下載
- 基于閃存YAFFS文件系統的索引機制的改進_李紀扣 0次下載
- Linux源碼分析系列之文件系統 51次下載
- Linux虛擬文件系統實現技術探討 32次下載
- YAFFS嵌入式文件系統應用研究
- 構造嵌入式Linux的文件系統
- Linux文件系統課程 0次下載
- 基于VxWorks的TrueFFS文件系統的構建與設計
- 如何更改Linux文件系統終端顯示顏色 642次閱讀
- 如何修改buildroot和debian文件系統 524次閱讀
- Linux系統如何擴展文件系統 864次閱讀
- Linux 文件系統層的主要結構 1034次閱讀
- 深入剖析Linux文件系統的架構 1068次閱讀
- 深入剖析Linux內核虛擬文件系統 3108次閱讀
- 嵌入式Linux啟動時間優化的秘密之二文件系統 5196次閱讀
- 基于Buildroot的Linux系統構建之根文件系統 2620次閱讀
- 如何區別Linux文件系統呢? 3720次閱讀
- 了解Linux默認文件系統的發展歷史 6507次閱讀
- 快速了解Linux文件系統 3702次閱讀
- 文件系統是什么?淺談EXT文件系統歷史 5723次閱讀
- 玩轉Linux,先把文件系統搞懂 2083次閱讀
- 制作ZedBoard上linux根文件系統(ramdisk) 1603次閱讀
- 基于zynq的Linux根文件系統生成 5841次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多