使UBOOT支持烧录yaffs文件系统

本文介绍了如何使UBOOT支持烧录YAFFS文件系统,作者通过实践,详细讲述了从下载YAFFS到实现烧录功能的过程,并分享了自己的理解和经验。
摘要由CSDN通过智能技术生成

之前一直使用临时的linux下载并烧录yaffs文件系统,最近闲来无事研究一下uboot直接烧录yaffs的功能。当然参考了网上很多人的经验,自己只是对应实践一下,并附上自己的一些理解。


下载Yaffs:

http://www.yaffs.net/using-git  点击use this URL:http://aleph1.co.uk/gitweb?p=yaffs2.git;a=snapshot;h=HEAD;
还可以使用linux命令git clone git://www.aleph1.co.uk/yaffs2 获取


首先必须清楚工作原理。
mkyaffsimage工具的ecc
uboot的ecc
linux的ecc
如果想让uboot烧录的yaffs文件系统可以被linux识别,那么ecc/oob一定要正确,这就要求我们必须要使mkyaffsimage的ecc算法以及oob布局与linux的完全一致,uboot的ecc和oob跟我们这个yaffs可以说完全无关,它的算法也跟另外二者差异很大,默认情况下,uboot会自动计算ecc然后填写oob区域,但是yaffs跟其他的image是有很大差别,它的image文件本身就包含了oob区域,所以说它会是512+16字节对齐的,所以uboot在烧写yaffs的时候,不需要计算ecc,而是直接将每页数据后面的16字节oob数据直接写进nand的oob区域即可。


1.修改uboot
uboot本身是不支持yaffs的烧录的,所以我们需要自己来追加命令实现之,需要修改一下几个文件:
common/cmd_nand.c
U_BOOT_CMD()宏中
"nand read[.yaffs]     - addr off|partition size\n"
"nand write[.yaffs]    - addr off|partition size - read/write `size' bytes starting\n"

在do_nand()中,实现yaffs烧录配置
else if(s != NULL && (!strcmp(s, ".yaffs") ))
{
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值