现在的位置: 首页 > 综合 > 正文

关于支持多个片选的大容量NANDFLASH简记

2013年03月05日 ⁄ 综合 ⁄ 共 4990字 ⁄ 字号 评论关闭

      又到了周末,今天是2010年7月31日,很纠结。。。。。。因为串口接收大数据包丢失问题,还没有清晰的办法。

      暂且放下它,还是把以前做过的比较有意思的东西重新整理下:

      很多处理器,都支持大容量的NAND,拿三星6410处理器来讲,从资料上看,支持大容量8G NANDFLASH,也说明了需要加片选来控制,这次做的是2GNAND的支持,需要2个片选。OK ~~~~~~~硬件上,NANDFLASH上增加一路片选信号,增加一路R/B控制。

我这个是由2个8G08构成的2GNAND

      软件上调整:

      1, 让系统判断出NAND的容量大小:在初始化NAND的时候,读2个片选对应的NANDID,读出两个NAND的相关信息,然后把这些信息告诉系统

   

    

NF_nFCE_L1()为增加的那个片选的控制。

 

2, 把第1步中得到的2GNAND的信息,重新赋给全局变量,即告诉系统新的NAND信息。

在NAND初始化函数中 添加对第2快NAND的初始化

 

 

3,增加读写操作中的地址转换:

例如现在第1NAND的大小是8192BLOCK,那么当我们想去读/写第16000BLOCK进行操作的时候,我们要做个判断,让系统去操作第2  NAND的第(16000-8192)BLOCK

接下来就是细心的完全驱动相关函数的修改;

由于NAND的驱动相关函数很多,我这个就不全贴出,思路是一样的,注意这个地址转换就可以了(加个判断就OK了),仅列举读NAND函数

这样编译后,重启,擦出/低格/高格信息:

这样就可以了,做的时间久了 ,可以有些细节会忘记了,但是思路就是这样,很简单。其他4G/8G如果需要片选,则也可以用这个思路做,只不过驱动可能代码又长了很多~呵呵

 

 

抱歉!评论已关闭.