阅读:1682回复:7
请教nandflash驱动,ce6下面
最近在ce6下面研究nandflash驱动,我参考了我之前在ce5下面做的nandflash驱动,具体函数之类的都是ce5下面可以使用的,只是参考了ce6下面TI的bsp里面的nandflash驱动修改了一下source文件里面的链接库,其它就没有做什么修改。
但是现在出现的问题是在read_sector的时候每次都是说ECC校验错误,而且前一次次拷贝在nandflash里面的文件之类第二次起来后也没有了。 大家知道是哪边出了问题呢?先谢谢大家了。 |
|
沙发#
发布于:2007-06-22 06:57
会不会是读写时序引起的?
理论上6.0驱动比5.0的速度要快点啊. |
|
|
板凳#
发布于:2007-06-25 12:26
microsun大侠,可能不是时序的问题。
就是我在FMD_Init里面自己调用FMD_WriteSector,然后再调用FMD_ReadSector,比较2个数据Buffer是一样的,也没有ECC校验错误的产生。但是如果是OS调用FMD_ReadSector的话就会出现ECC校验错误,我也把那些数据打印出来,发现跟Write的数据还是有不同的。 这个说明了时序应该没有问题吧?还是其它什么问题造成的? 谢谢了。 |
|
地板#
发布于:2007-06-26 18:13
有一种可能就是CE5和CE6对ECC的存放区不一样,一般来说在小页面(512字节)的FLASH上,ECC是放在512+8后面开始的区域的,所以,你可以重点看下,从FLASH读出的ECC和NAND FLASH控制器中ECC的寄存器的比较那部分的代码,比较一下。
|
|
地下室#
发布于:2007-06-27 08:57
回LS的大侠:
谢谢了。我感觉应该不是ECC存放区的问题,我这个是270,没有那个Nand Flash控制器。 应该这个ECC放在spare区哪边都行,因为硬件底层操作的时候,我写ECC在spare区哪边,读的时候就从存放ECC的那里读出来就可以了。 现在的问题其实不是ECC错误,而是我把OS调用FMD_read,FND_write时候的sector数据打印出来,发现读出来sector数据确实跟之前写进去的sector数据不是完全一样的,所以导致了ECC校验错误。 但是我自己在FMD_Init里面自己调用FMD_WriteSector,FMD_ReadSector的话,读出来的Sector数据就跟写进去的Sector数据是一样的,也没有报ECC校验错误。 所以这个就非常奇怪了。 |
|
5楼#
发布于:2007-07-04 08:16
我们也遇到过类似的问题,看看会不会是写了不至一遍??
|
|
|
6楼#
发布于:2007-07-04 08:57
microsun大侠,你说的写了不止一次是什么意思?同一个sector系统写了2次以上?还是...?
|
|
7楼#
发布于:2007-07-04 21:14
对,我们发现对于同一个SECTOR,ERASE以后,会出现写两次的情况,有的FLASH支持这种动作,但有些FLASH不支持.
|
|
|