mtd-utils工具(linux下flash工具).docx_第1页
mtd-utils工具(linux下flash工具).docx_第2页
mtd-utils工具(linux下flash工具).docx_第3页
mtd-utils工具(linux下flash工具).docx_第4页
mtd-utils工具(linux下flash工具).docx_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、下载源码包并解压wget /pub/mtd-utils/mtd-utils-1.5.1.tar.bz2wget /zlib-1.2.8.tar.gzwget /opensource/lzo/download/lzo-2.03.tar.gzwget /pub/linux/utils/util-linux/v2.21/util-linux-2.21.1.tar.gztar zxvf zlib-1.2.8.tar.gztar zxvf lzo-2.03.tar.gztar jxvf mtd-utils-1.5.1.tar.bz2tar zxvf util-linux-2.21.1.tar.gz二、编译安装zlib1)cd zlib-1.2.8CC=arm-none-linux-gnueabi-gcc ./configure -prefix= /usr/local/arm-2007q1/arm-none-linux-gnueabi -shared(注意:这里的/usr/local/arm-2007q1/arm-none-linux-gnueabi是交叉编译工具默认目录。)2)makemake installcd .3)安装完成后会在/usr/local/arm-2007q1/arm-none-linux-gnueabi /目录下生成三个目录:include、lib、share。安装完后检查一下目录/usr/local/arm-2007q1/zlib/假如 include 中没有 zlib.h 之类的头文件,lib 中没有 libz.so.1.2.3 ,那就自己手动拷到这些目录下去,记着拷的时候把所有的 *.h 都需要拷过去,在拷库的时候用 cp -Ca libz.* /./lib 就行,要用上 -Ca 选项。三、编译安装lzo1)cd lzo-2.03/CC=arm-none-linux-gnueabi-gcc ./configure -host=arm-none-linux-gnueabi -prefix=/usr/local/arm-2007q1/arm-none-linux-gnueabi2)makemake installcd .3)同上四、编译安装uuid1)cd util-linux-2.21.1/./configure -prefix=/usr/local/arm-2007q1/arm-none-linux-gnueabi -host=arm-none-linux-gnueabi -disable-mount -disable-makeinstall-setuid -disable-makeinstall-chown -disable-use-tty-group -disable-chsh-only-listed -disable-schedutils -disable-wall -disable-kill -disable-pivot_root -disable-switch_root -disable-cramfs -disable-agetty -disable-unshare -disable-fallocate -disable-mountpoint -disable-uuidd -disable-partx -disable-fsck -disable-losetup -disable-mount -disable-libmount -disable-tls -without-ncurses2)makemake installcd .3)同上五、交叉编译mtd-utils1)cd mtd-utils-1.5.1/2)make CROSS=arm-none-linux-gnueabi- WITHOUT_XATTR=1查看下mtd-utils-1.0.0目录下是否生成了咱们所需要大工具(flashcp,nandwrite.等)。有工具生成了,OK,交叉编译成功。4)将生成大工具拷贝到文件系统开发板的根文件系统,放在/bin 或/sbin 都行。再编译内核就OK拉。五、补充如果交叉编译器为 4.3.x以上 ,编译不通过,请参考/ptxdistpengutronix.de/msg01067.html/patch/12689/打补丁六、mtd-utils工具命令的使用1)使用命令前用cat /proc/mtd 查看一下mtdchar字符设备;或者用ls -l /dev/mtd*#cat /proc/mtddev: size erasesize namemtd0: 00c00000 00020000 ROOTFSmtd1: 00200000 00020000 BOOTLOADERmtd2: 00200000 00020000 KERNELmtd3: 03200000 00020000 NAND ROOTFS partitionmtd4: 04b00000 00020000 NAND DATAFS partition为了更详细了解分区信息用mtd_debug命令#mtd_debug info /dev/mtdX (不能使用mtdblockX, mtdblockX 只是提供用來 mount 而已)mtd.type = MTD_NORFLASHmtd.flags =mtd.size = 12582912 (12M)mtd.erasesize = 131072 (128K)mtd.oobblock = 1mtd.oobsize = 0mtd.ecctype = (unknown ECC type - new MTD API maybe?)regions = 02)命令:flash_erase作用:擦出指定范围内flash的内容,如果不指定,默认擦出起始位置的第一块,使相应flash变为全1用法:flash_erase MTD-device start cnt (# erase blocks) lockMTDdevice:待擦出的分区,如/dev/mtd0start:起始位置设置,这里必须设置为0x20000(128K)的整数倍cnt: 从start开始计算,要擦出的块数lock: 写保护eg: ./flash_erase /dev/mtd0 0x40000 5 /擦出mtd0分区上从0x40000开始的5块数据 ,128K/块命令:flash_eraseall作用:擦出整个分区的数据,同时也会作坏块检测用法:flash_eraseall OPTION MTD_DEVICE-q, -quiet 不显示打印信息-j, -jffs2 一jffs2 格式化分区eg: ./flash_eraseall -j /dev/mtd0命令:flashcp作用:copy数据到 flash 中用法:usage: flashcp -v | -verbose flashcp -h | -helpfilename:待写入的数据device: 写入的分区,如/dev/mtd0eg:filename制作:mkfs.jffs2 -e 0x20000 -d cq8401 -o cq8401.img -n /这里的-e 0x20000 必须更你芯片的erasesize 相等./flashcp cq8401.img /dev/mtd0 / copy cq8401.img文件系统到 /dev/mtd0分区中当然这个命令的功能跟 dd if=/tmp/fs.img of=/dev/mtd0差不多命令:nandwrite作用:向nand flash中写数据用法:nandwrite OPTION MTD_DEVICE INPUTFILE -a, -autoplace Use auto oob layout -j, -jffs2 force jffs2 oob layout (legacy support) -y, -yaffs force yaffs oob layout (legacy support) -f, -forcelegacy force legacy support on autoplacement enabled mtd device -n, -noecc write without ecc -o, -oob image contains oob data -s addr, -start=addr set start address (default is 0) -p, -pad pad to page size -b, -blockalign=1|2|4 set multiple of eraseblocks to align to -q, -quiet dont display progress messages -help display this help and exit -version output version information and exiteg: ./nandwrite -p /dev/mtd0 /tmp/rootfs.jffs2命令:nanddump作用:dump出nand flash一些信息,如:block size,erasesize,oobblock 大小,oob data ,page data等;同时也会作坏块检测用法:nanddump OPTIONS MTD-device -help display this help and exit -version output version information and exit-f file -file=file dump to file-i -ignoreerrors ignore errors-l length -length=length length-o -omitoob omit oob data-b -omitbad omit bad blocks from the dump-p -prettyprint print nice (hexdump)-s addr -startaddress=addr start addresseg:./nanddump -p -f nandinfo.txt /dev/mtd0 /dump出nand flash /dev/mtd0数据并保存到 nandinfo.txt命令:mtd_debug作用: 对mtd 调试作用用法:usage: mtd_debug info mtd_debug read mtd_debug write mtd_debug erase eg:#./mtd_debug info /dev/mtd0 / 输出/dev/mtd0上的一些信息,这里必须用mtdx#./mtd_debug erase /dev/mtd0 0x0 0x40000 / 擦出/dev/mtd0 分区上 从0x0开始的 , 128K2 大小的数据#./mtd_debug write /dev/mtdblock0 ox0 0x360810 cq8401.img /向mtdblock0分区,写入 3.6M 大小的文件系统cq8401.img,这里最好用mtdblockx#./mtd_debug read /dev/mtdblock0 ox0 0x360810 read.img /从mtdblock0中读出 3.6M 数据保存到read.img# cmp -l cq8401.img read.img / 验证write to flash 和 read from flash 中的数据是否一致;也可以使用diff命令来比较另外针对nand flash,mtd_debug这个工具来测试mtd驱动也不是很好,用nandwrite和nanddump这两个工具或许更好点。然后可以用cmp这个命令来比较一下nanddump出来的数据和nandwrite写入的数据是否一致。命令:ftl_format解释:In order to use one of conventional file systems (Ext2, ext3, XFS, JFS, FAT) over an MTD device, you need a software layer which emulates a block de

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论