色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > cramfs+yaffs嵌入式平臺(tái)的實(shí)現(xiàn)

          cramfs+yaffs嵌入式平臺(tái)的實(shí)現(xiàn)

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

          首先我們要將我們的某個(gè)分區(qū)格式化成格式。

          本文引用地址:http://cafeforensic.com/article/148583.htm

          制作格式化工具過(guò)程如下:

          mtd-utils編譯

          1、編譯libz:

          首先安裝 zlib 庫(kù),這個(gè)是后面的庫(kù)的編譯基礎(chǔ)。

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

          解壓

          tar zxf zlib-1.2.3.tar.gz

          由于 zlib 庫(kù)的cONfigure 腳本不支持交叉編譯選項(xiàng),可以采用以下方法來(lái)解決:

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

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

          千萬(wàn)不要裝錯(cuò)目錄了,不然后面會(huì)找不到這個(gè)庫(kù)的。

          2)make

          3)make inSTall

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

          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

          可知:交叉編譯成功。

          因?yàn)楦袷交痜lash分區(qū)是在板子上運(yùn)行的,所以要交叉編譯,這個(gè)概念一定要分清楚。

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

          flash_eraseall /dev/mtd/x

          擦除干凈后再

          mount -t /dev/mtdblock/x /mnt

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

          /dev/mtd/x 是字符設(shè)備 mtd設(shè)備的主設(shè)備號(hào)為90,至于次設(shè)備號(hào):?jiǎn)螖?shù)為只讀,雙數(shù)為讀寫?!稑?gòu)建LINUX系統(tǒng)》一書(shū)有介紹,可以參考一下

          /dev/mtdblock/x 是塊設(shè)備

          最后在linuxrc下添加一句話就可以分區(qū)的自動(dòng)掛載了

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

          部署文件系統(tǒng)到開(kāi)發(fā)板上

          我的分區(qū)信息

          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燒寫命令和分區(qū)設(shè)置要和內(nèi)核設(shè)置是一樣的

          燒寫內(nèi)核

          tftp 30008000 zImage

          nand erase 100000 400000

          nand write 30008000 100000 400000

          燒寫文件系統(tǒng)

          tftp 30008000 rootfs.

          nand erase 500000 2000000

          nand write 30008000 500000 2000000

          啟動(dòng)參數(shù)設(shè)置

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

          setenv bootcmd nand read 30008000 100000 400000 ; go 30008000

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


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉