新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > cramfs+yaffs嵌入式平臺的實現

        cramfs+yaffs嵌入式平臺的實現

        作者: 時間:2012-08-16 來源:網絡 收藏

        首先我們要將我們的某個分區格式化成格式。

        本文引用地址:http://www.104case.com/article/148583.htm

        制作格式化工具過程如下:

        mtd-utils編譯

        1、編譯libz:

        首先安裝 zlib 庫,這個是后面的庫的編譯基礎。

        http://www.zlib.net/zlib-1.2.3.tar.gz

        解壓

        tar zxf zlib-1.2.3.tar.gz

        由于 zlib 庫的cONfigure 腳本不支持交叉編譯選項,可以采用以下方法來解決:

        1)CC=ARM-softfloat-Linux-gnu-gcc ./configure --prefix=/*你的安裝目錄*/ --shared

        注意:這里配置指向 --prefix=/*你的安裝目錄*/,會自動安裝在 --prefix=/*你的安裝目錄*/ [include,lib] 目錄下,

        千萬不要裝錯目錄了,不然后面會找不到這個庫的。

        2)make

        3)make inSTall

        安裝完后檢查一下目錄 --prefix=/*你的安裝目錄*/[include,lib] ,假如 include 中沒有 zlib.h 之類的頭文件,lib 中沒有 libz.so.1.2.3 ,那就自己手動拷到這些目錄下去,記著拷的時候把所有的 *.h 都需要拷過去,在拷庫的時候用 cp –a libz.* /…./lib 就行,要用上 –a 選項

        2、編譯mtd-utils:

        下載mtd-utils-1.0.0.tar.gz:

        ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-1.0.0.tar.gz

        解壓目錄為mtd-utils-1.0.0

        #cd mtd-utils-1.0.0

        1) 修改Makefile

        CROSS=arm-softfloat-linux-gnu-

        2) make ( 用file命令查看,如 file mkfs.jffs2 )

        #file mkfs.jffs2

        mkfs.jffs2: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.0.0, dynamically linked (uses shared libs), for GNU/Linux 2.0.0, not stripped

        可知:交叉編譯成功。

        因為格式化flash分區是在板子上運行的,所以要交叉編譯,這個概念一定要分清楚。

        編譯好后將生成的flash_eraseall工具拷貝你的文件系統下的usr/bin下

        flash_eraseall /dev/mtd/x

        擦除干凈后再

        mount -t /dev/mtdblock/x /mnt

        即可掛上了分區,解釋一下什么是/dev/mtd/x和/dev/mtdblock/x

        /dev/mtd/x 是字符設備 mtd設備的主設備號為90,至于次設備號:單數為只讀,雙數為讀寫。《構建LINUX系統》一書有介紹,可以參考一下

        /dev/mtdblock/x 是塊設備

        最后在linuxrc下添加一句話就可以分區的自動掛載了

        /bin/mount -t yaffs /dev/mtdblock2 /mnt/yaffs

        部署文件系統到開發板上

        我的分區信息

        dev: size erasesize name

        mtd0: 00100000 00004000 bootloader //1M

        mtd1: 00400000 00004000 linux-kernel //4M

        mtd2: 02000000 00004000 -partition //32M

        mtd3: 01b00000 00004000 yaffs-partition //27M

        flash燒寫命令和分區設置要和內核設置是一樣的

        燒寫內核

        tftp 30008000 zImage

        nand erase 100000 400000

        nand write 30008000 100000 400000

        燒寫文件系統

        tftp 30008000 rootfs.

        nand erase 500000 2000000

        nand write 30008000 500000 2000000

        啟動參數設置

        setenv bootargs root=1f02 console=ttySAC0,115200 init=/linuxrc devfs=mount display=sam240

        setenv bootcmd nand read 30008000 100000 400000 ; go 30008000

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


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 广宁县| 巴中市| 德江县| 桐庐县| 尼勒克县| 廉江市| 大化| 绍兴市| 来宾市| 中西区| 方正县| 杭州市| 马鞍山市| 郴州市| 盐亭县| 温宿县| 略阳县| 扎囊县| 凌云县| 平度市| 台州市| 丹棱县| 吉木萨尔县| 营口市| 竹北市| 镇巴县| 辉县市| 正镶白旗| 潞西市| 东乡县| 桃园县| 句容市| 日喀则市| 大宁县| 来凤县| 合水县| 云林县| 安徽省| 新乡县| 桃江县| 彭泽县|