新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ARM的嵌入式文件系統YAFFS的移植

        基于ARM的嵌入式文件系統YAFFS的移植

        作者: 時間:2012-04-12 來源:網絡 收藏

        6 配置和編譯內核

        1.選中對MTD(memory technology device內存技術設備)的支持.
        Memory Technology Device (MTD)
        support --->
        [~] MTD concatenating support
        • MTD partitioning support
        [~] RedBoot partition table parsing
        [~] Command line partition table parsing
        User Modules And Translation Layers
        • Direct char device access to MTD devices
        • Caching block device access to MTD devices

        MTD 主要是用于訪問memory設備(ROM、flash)的Linux的子.MTD可以使新的memory設備的驅動更加簡單,為此它在硬件和上層之間提供了一個抽象的接口.

        2.選中NAND Device Support
        • NAND Device Support --->
        [~] Verify NAND page writes
        • NAND Flash support for S3C2410/S3C2440 SoC
        • S3C2410 NAND driver debug
        [~] S3C2410 NAND Hardware ECC

        這樣就完成了內核對NAND FLASH的支持.

        3.由于添加了2,所以在內核的配置菜單 [File systems] 中的 [miscellaneous filesystems] 中增加了 [Yaffs2 file systems support] 選項.這個選項就是 2的配置內容.
        File systems ---> Miscellaneous filesystems --->
        2 file system support
        --- 512 byte / page devices
        • Lets Yaffs do its own ECC
        • Use the same ecc byte order as Steven Hill's nand_ecc.c
        --- 2048 byte (or larger) / page devices
        • Autoselect yaffs2 format
        • Disable lazy loading
        • Turn off wide tnodes
        • Turn off debug chunk erase check
        • Cache short names in RAM

        選擇這個選項的全部內容,保存配置,然后退到終端,輸入make zImage,重新編譯內核,這樣就就完成了對YAFFS的定制.

        7 測試掛載的YAFFS系統

        1.用imagewrite命令將YAFFS文件系統的映像文件燒寫到mtdblock3分區.
        2.在ramdisk根文件系統中創建掛載目錄,使用命令mkdir /mnt/yaffs.
        3. 執行mount –t yaffs /dev/mtdblock/3 /mnt/yaffs來掛載YAFFS文件系統.
        4. 由于內核配置了proc文件系統,用cat /proc/mounts 可以查看已經成功掛載了YAFFS文件系統,用ls /mnt/yaffs可以查看YAFFS文件系統的內容.

        8 結束語

        本文為開發者提供了在9平臺上YAFFS文件系統的方法和過程的參考,創新之處是在當前應用中比較新的2.6內核上測試完成的.測試過程中 YAFFS穩定性能比JFFS2文件系統要穩定的多,而且mount分區的時間也比JFFS2文件系統少的多。需要注意一點是,即使NAND FLASH 是512+16B的,不需要使用YAFFS2,也必須將對2kpage的NAND FLASH的支持這一項選上,否則編譯無法通過.由于- S3C2410不支持大容量的NAND FLASH,所以flash是512+16B / page的,即使你選擇的是YAFFS2文件系統,內核也會自動選擇掛載為YAFFS1文件系統,由于實驗系統的局限性,本文只在-S3C2410平臺上實現了YAFFS1文件系統的,在功能更強大ARM 芯片系列中已經加入了對大容量(512M)的NAND FLASH的支持,支持YAFFS2文件系統,方法與YAFFS文件系統移植方法大致相同.

        參考文獻:
        [1] 杜春雷,ARM體系結構與編程[M]。北京:清華大學出版社,2003
        [2] 潘巨龍,黃寧,ARM9系統構建與應用[M]。北京:北京航空航天大學出版社,2006
        [3] 陳 春,ARM9技術及Linux高級實踐教程[M]。北京:北京航空航天大學出版社,2005
        [4] Wookey and Tak—Shing,Porting the Linux Kernel to a New ARM Platform,SOLUTIONS JOURNAL,2002,4:52—57
        [5] 郝淑風等.ARM的uCLinux啟動引導實現的分析[J].微計算機信息,2005,8-2:50—52

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 平远县| 理塘县| 淮阳县| 方城县| 锦屏县| 漳浦县| 乌兰察布市| 山西省| 通许县| 汉中市| 灵石县| 石景山区| 南通市| 交城县| 赤城县| 阿勒泰市| 尼木县| 武邑县| 南木林县| 兴宁市| 尤溪县| 吐鲁番市| 萨迦县| 湖州市| 斗六市| 临沭县| 咸阳市| 宿州市| 镇远县| 齐齐哈尔市| 轮台县| 凤阳县| 巴南区| 佛教| 如东县| 东阿县| 星子县| 登封市| 西充县| 凤庆县| 海南省|