Chinaunix首页 | 论坛 | 博客
  • 博客访问: 607662
  • 博文数量: 166
  • 博客积分: 970
  • 博客等级: 准尉
  • 技术积分: 547
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-06 15:16
个人简介

Believe youself!

文章分类

全部博文(166)

文章存档

2017年(1)

2016年(5)

2015年(117)

2014年(14)

2013年(11)

2012年(5)

2010年(4)

2009年(1)

2008年(8)

我的朋友

分类: LINUX

2015-05-25 10:45:48


[From]http://blog.sina.com.cn/s/blog_413d250e0101j408.html

例一:如何测试nor flash 驱动
step1:
#./mtd_debug info /dev/mtd0 //
输出/dev/mtd0上的一些信息,这里必须用mtdx
step2:
#./mtd_debug erase /dev/mtd0 0x0
0x40000 // 擦出/dev/mtd0 分区上 从0x0开始的 , 128K*2
大小的数据
step3:

#./mtd_debug write /dev/mtdblock0 ox0 0x360810 cq8401.img
//向mtdblock0分区,写入 3.6M
大小的文件系统cq8401.img,这里最好用mtdblockx

step4:
#./mtd_debug read
/dev/mtdblock0 ox0 0x360810 read.img //从mtdblock0中读出 3.6M
数据保存到read.img,当然这里的长度应该相等

step5:
# cmp -l cq8401.img read.img //
验证write to flash 和 read from flash
中的数据是否一致;也可以使用diff命令来比较




例二:如何测试nand flash 驱动

其实nand
flash
驱动同样可以用例一的方法测试,但既然有nandwrite,nanddump命令,为何不用呢!


step1:
#./flash_eraseall
-j /dev/mtd1
//用jffs2格式化该分区

step2:
#./nanddump -p /dev/mtd1 //dump出nand
flash /dev/mtd1数据,可以看到现在的数据全是ff

step3:
#./nandwrite -p
/dev/mtd1 cq8401.img //
将cq8401.img文件系统写入mtd0分区

step4:
#./nanddump -p /dev/mtd1
//dump出nand flash /dev/mtd1数据,可以看到现在的数据不再是全ff



例三:如何用mtd-util
工具向nand flash写入文件系统jffs2.img,并修改启动参数,使文件系统从nand flash 启动;假设已分好区,mtd0为文件系统分区

方式一:
step1:
NFS起文件系统
#./flash_eraseall
-j /dev/mtd0
//用jffs2格式化该分区

#./nandwrite -j -f -p -q /dev/mtd0 jffs2.img //
将jffs2.img文件系统写入mtd0分区

step2:
然后再看看我们新写入的JFFS2文件系统能不能mount上.

#mount
-t jffs2 /dev/mtdblock0 /mnt
#ls /mnt

setp3:
重启开发板,在U-BOOT里
设置启动参数
#setenv bootargs 'mem=64M console=ttyS0,115200n8
ip=192.168.4.201:::::eth0:off root=/dev/mtdblock0 rootfstype=jffs2
rw'
#reset


方式二:




NAND
起内核,NAND起文件系统
1. 网起文件系统
nerase 0 55 && nprog 0 192.168.4.200
n-boot.bin.hg && nprog 128 192.168.4.200 zImage-6pci &&
reset
2.进入网起的文件系统
cat /proc/mtd

3. 制作JIFFS的文件系统
mkfs.jffs2
-e 0x20000 -d root-vw -o dvr20000.img -n

4.
cp dvr20000.img
/dev/mtdblock1

5.修改NAND BOOT启动参数 include/cq8401_board.h
修改NAND
BOOT
setenv bootargs 'mem=64M console=ttyS0,115200n8
ip=192.168.4.201:::::eth0:off root=/dev/mtdblock1 rootfstype=jffs2
rw'

6. 从新烧写
nerase 0 55 && nprog 0 192.168.4.200
n-boot.bin.local && nprog 128 192.168.4.200 zImage-6pci &&
reset



例四:
如何将一个
.tar.gz文件系统 写到 nor 或者 nand flash中
target$ mkdir
/mnt/flash  
target$ mount -t jffs2
/dev/mtdblock0 /mnt/flash (mtdblockx只是用来挂载的)
target$ cd
/mnt/flash
target$ tar zxvf rootfs.tar.gz

阅读(4363) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~