刚到家,把代码修改了一下,下到板子上跑了试试,没问题了.
+ if(mtd->rw_oob==1) {
+ size_t oobsize = mtd->oobsize; //
+ size_t datasize = mtd->writesize;
+ int i = 0;
+ uint8_t oobtemp[16];
+ int datapages = 0;
+ datapages = len/(datasize); //
+ for(i=0;i<(datapages);i++) {
+ memcpy((void *)oobtemp,
+ (void *)(buf+datasize*(i+1)),
+ oobsize);
就改了kasim大侠提到的那一行,
uint8_t oobtemp[16];
改成了:
uint8_t oobtemp[oobsize];就OK了。。。。
至于补丁嘛,由于tekkman对这个u-boot-2009.08后面又出了几个添加了新功能的补丁,我这里就不出了。
另外我也告诉他了,他说很快会出新的补丁来修正的。
等不及的朋友,可以先按我说的手动修改这一处,也很快捷。