主题 : 关于K9GAG08U0F的SpareBlcoks的寻址疑惑 复制链接 | 浏览器收藏 | 打印
新手上路
级别: 侠客
UID: 69243
精华: 0
发帖: 80
金钱: 400 两
威望: 80 点
综合积分: 160 分
注册时间: 2012-05-03
最后登录: 2016-03-19
楼主  发表于: 2014-08-13 23:37

 关于K9GAG08U0F的SpareBlcoks的寻址疑惑

图片:
由于最近uboot想做ECC检测。(平台是tiny210V2, nand芯片是K9GAG08U0F,2G MLC)
ECC只是初步了解,所以想在裸机程序上先尝试运行起来。
仿造http://www.aiothome.net/read.php?tid-80271.html这篇技术贴在写函数,这时候遇到要读取26byte的ECC校验码
所以我去翻看芯片手册,发现有个蹊跷。
如附件图:
嬀愀琀琀愀挀栀洀攀渀琀=6250]

芯片手册P9页提到了这个SpaceBlocks寻址的方式。貌似ECC校验码区是放在Nand的尾部28Blocks。
但是从结构上来算:
该芯片共有2048Blocks做为MainBlocks,而每个块是由(1M+64K)Bytes组成,也就是64K是做为SpaceBlocks存在。
那么 (2048 * 64K)的空间大小再去除以每个块的大小(1M+64)Bytes,岂不是需要128Blocks 才足够放全部的SpaceBlocks。这不是跟手册上面的28Block有出入了。
或者从1 Page = (8K + 512)Bytes, 理解数据区跟校验区的空间比例应该是8K:512 = 16:1,
但是到各自占的Blocks时却是 2048: 28 = 73: 1.
不知道是我对nand的寻址理解错了还是芯片手册错了??
望高人给点意见,谢谢
新手上路
级别: 侠客
UID: 69243
精华: 0
发帖: 80
金钱: 400 两
威望: 80 点
综合积分: 160 分
注册时间: 2012-05-03
最后登录: 2016-03-19
1楼  发表于: 2014-08-16 09:21
没人搭理一声的。。、