Chinaunix首页 | 论坛 | 博客
  • 博客访问: 173409
  • 博文数量: 37
  • 博客积分: 2055
  • 博客等级: 大尉
  • 技术积分: 420
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-02 12:34
文章分类
文章存档

2011年(4)

2010年(15)

2009年(18)

我的朋友

分类:

2009-04-18 00:30:21

最近好长时间没有来更新博客了,是因为最近公司要做TD的上网卡,参考项目NANDFLASH为1Gb+512Mb,需要在这个基础上修改为512Mb+128Mb,本人以前是做上层开发的,是头一次调整驱动,有什么说的不对的地方,就请大家多包涵了,下面就言归正传了。
 
首先我们说一下1Gb的NANDFLASH跟512Mb的区别,在这个项目开始评估的时候,我认为修改一下NANDFLASH的BLOCK数就可以了,后来在实际的开发过程中才发现并不这么简单。
 
大家在网在搜一下关于NANDFLASH的结构就会知道,NANDFLASH是以页为单位写,以块为单位来擦除,那么它们的区别就在这个上面:
1Gb   为大页   page=2048Kb    BLOCK=128K
512Mb 为小页   page=512byte   BLOCK=16K
还有个区别就是ECC的验证,这个我就不说了,网上一查有很多,我只是告诉大家:
ECC是每256个字节生产一个24位的值。
NANDFLASH在写的时候会生成一个原始的ECC值保存在页的SPARE区,当要读页时也会生产一个ECC值,会跟SPARE的值进行异或比较,看结果是否为0,所有在大页换小页的时候,一定要修改这个算法,相反也是
大页需要8对ECC 小页只需要2对ECC。
下面就是代码区跟文件系统的分割了。这个因为跟实际的项目和平台有关,我就不多说了,我使用的的T3G7210平台,如果大家需要探讨什么的话,可以给我发邮件apcwowo@hotmail.com 
阅读(2128) | 评论(0) | 转发(0) |
0

上一篇:又惹老婆生气了

下一篇:ELF文件调试利器

给主人留下些什么吧!~~