免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: pxebxp
打印 上一主题 下一主题

[应用] 不理解nand erase 命令 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-07-26 14:43 |只看该作者
只要够写就行,不一定全部写满的


嗯,是这样的

论坛徽章:
0
12 [报告]
发表于 2010-08-04 12:39 |只看该作者
nand erase 0x200000 0xDF0000 //不理解,本句的意思是把kernel分区和rootfs分区擦除,0xDF0000 = 13.9375M, 而内核和文件系统共2M+24M=26M,为什么不是#nand erase 0x200000 0x1A00000 (26M).


既然你的rootfs分区,给了24M,加上kernel的2M,那么这里最好的做法就是你说的:
#nand erase 0x200000 0x1A00000 (26M)

nand erase 0x200000 0xDF0000
之所以可以正常工作,那是因为写这行代码的人,已经自己去计算好了对应的那个rootfs的文件的大小了,而该rootfs文件大小,很可能是
0xBE0000 < rootfs size <= 0xBF0000,比如是0xBE3400,那么取上限,所以此处才会出现0xBF0000,加上2M=0x200000,才有 0xDF0000
而对于rootfs那剩下的空间,既然暂时用不到,就可以不去操作,保留原先的即可,而如果之前没有写过数据,那默认的也就都全部是0xFF,也不需要erase了。

nand write 0x82000000 0x400000 0xBF0000 //不理解,写文件系统到NAND FLASH, 意思是从内存地址 0x82000000 读取大小为 0xBF0000(11.9375M)的数据,写入nand flash,写入的起始地址为0x400000。为什么只写0xBF0000(11.9375M)的数据,我的文件系统分区24M啊,实际的文件系统也22M左右,why?

同上,此处因为目的是将rootfs的数据写入,剩下的那段nand flash,保留原先的数据也不影响具体的使用。

总结:
对于erase清空原先的kernel和rootfs的数据,最好全部擦除:
nand erase 0x200000 0x1A00000
对于将kernel和rootfs写入nand flash,那最好按照实际大小,进行写入,其余数据部分,保留默认的,已经擦除的,全部是0xFF的,即可:
nand write 0x82000000 0x400000 0xBF0000
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP