历经了2个月,K9F1208UOC在linux2.4.27上移植成功,这个过程让我历经苦难,从最初的底层硬件驱动到jffs2文件系统的移植,我几乎每天都在读程序、改程序,看的我都想吐,但是我**下来了,想把自己的心得给大家分享一下!其实在整个过程中最重要的有两点:1.底层硬件驱动,也就是nandflash的读写时序.2.NANDFLASH的擦除及读写,函数都在mtd/nand/nand.c里面,写操作这一部分花了我将近一个月的时间,遇到最大的一个问题就是校验,数据写进去了就是校验不对,明明是把buf里面的数据写进去了,然后再读出来与buf比较,这岂能有错,但就是过不去,后来分析可能是地址读错了,于是我把程序改了一下 this->cmdfunc(mtd,nand_cmd_read0,col,page); 改为 if(col<256) { this->cmdfunc(mtd,nand_cmd_read0,col,page); } else { this->cmdfunc(mtd,nand_cmd_read1,col-256,page); } 结果OK!原来我的nand.c版本比较低,对于页为256B的支持比较好,我用的K9F1208UOC页为512+16B,校验的时候如果col的值大于256时用read0就会读错! 现在终于可以轻松一下了,哈哈!祝大家好运!希望我们大家没事的时候能够互相交流一下!
|