ztg0021
驱动小牛
驱动小牛
  • 注册日期2007-02-09
  • 最后登录2016-02-18
  • 粉丝1
  • 关注0
  • 积分141分
  • 威望223点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
阅读:3796回复:18

K9G8G08NANDFLASH驱动问题,请高手指教

楼主#
更多 发布于:2008-06-27 10:14
很久没来了,先报个到
(UB00T+2440+WINCE5.0)从K9F1208升到K9F1G08与K9G8G08碰到的问题如下
K9F1G08(1块=64页=128K ),在128M的FLASH(SLC)上均正常
K9G8G08(1块=128页=256K),在1G的MLC NAND上启动正常、进入WINCE后NANDFLASH的容量显示970M也正常,不知何故不能保存文件,每次重启都重新格式化NAND,所有的东东,包括MBR都重新写了一篇。
难道8G08与1G08有什么除了读写地址外还有什么地方有奇怪的东东
WINCE/EVC/VS2005群:18219722
ztg0021
驱动小牛
驱动小牛
  • 注册日期2007-02-09
  • 最后登录2016-02-18
  • 粉丝1
  • 关注0
  • 积分141分
  • 威望223点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-06-27 13:00
有人说WINCE不支持MLC,真的还是假的,搞过的说一声
WINCE/EVC/VS2005群:18219722
wince_lover
驱动中牛
驱动中牛
  • 注册日期2007-01-10
  • 最后登录2010-12-20
  • 粉丝0
  • 关注0
  • 积分1103分
  • 威望735点
  • 贡献值2点
  • 好评度279点
  • 原创分1分
  • 专家分0分
板凳#
发布于:2008-06-27 17:23
2440不支持MLC的FLASH
ztg0021
驱动小牛
驱动小牛
  • 注册日期2007-02-09
  • 最后登录2016-02-18
  • 粉丝1
  • 关注0
  • 积分141分
  • 威望223点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-06-27 17:39
可是下午一个QQ群里一个朋友说他们用2440+WINCE50+K9G8G08在做产品,这又是怎么回事,难道说可以
WINCE/EVC/VS2005群:18219722
qinlei_sz
驱动小牛
驱动小牛
  • 注册日期2007-03-24
  • 最后登录2012-12-18
  • 粉丝0
  • 关注0
  • 积分1090分
  • 威望510点
  • 贡献值0点
  • 好评度145点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-06-28 09:36
2440不支持MLC是说BOOT时不能从MLC中起来,MLC的ECC不行...,如果启动你用NOR,起来后你想用什么就用什么,只要愿意去做驱动.
ztg0021
驱动小牛
驱动小牛
  • 注册日期2007-02-09
  • 最后登录2016-02-18
  • 粉丝1
  • 关注0
  • 积分141分
  • 威望223点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2008-06-28 10:01
K9G8G08(1块=128页=256K),在1G的MLC NAND上启动正常、进入WINCE后NANDFLASH的容量显示970M也正常,不知何故不能保存文件,每次重启都重新格式化NAND,所有的东东,包括MBR都重新写了一篇。
那请问我这个现象是为什么,是驱动问题吗?
是这样的,我用UBOOT启动,然后下载NK.BIN,再用UBOOT把NK烧到FLASH里。在K9F1G08(SLC)烧NK时会写ECC,可以正常启动。而在K9G8G08烧NK时确不能加入写ECC这段,如果加了就不能启动。并且我跟踪了一下,一段数据写入第3、4、5块,也就是从0XC0000开始写128×3页(256K×3),当我把数据写进去后,我再读出来发现两个现象:
1、加了写ECC功能时,读出来的只有第4块正常,而第3、5块会被ECC写乱掉,并且程序运行不正常。
2、去掉写ECC功能时读出来的均正常,并且程序运也正常。
现在我用第二种方法,也就是去掉写ECC(UBOOT不影响NK、WINCE的数据,也不与WINCE共享数据)正常启动后,出现上面的情况(除了不能存储数据外,其他一切正常),加上听一些人说MLC不能用,一些人又说可以用,所以我也没有去搞他了。
看了两位的发言,好像又有点希望,所以请真正做过的顶一下贴给点建议(NAND启动K9G8G08(或其他MLCNAND)+2440+WINCE50)
WINCE/EVC/VS2005群:18219722
zhengshijie
驱动小牛
驱动小牛
  • 注册日期2003-07-11
  • 最后登录2009-03-18
  • 粉丝1
  • 关注0
  • 积分8分
  • 威望217点
  • 贡献值0点
  • 好评度199点
  • 原创分3分
  • 专家分0分
6楼#
发布于:2008-06-30 16:44
从结果看,是不是你的spare区域写操作失败了,sector info没有写成功,所以每次启动的时候都找不到MBR sector,找不到分区表,所以又重新格式化了。
songhuiss
驱动牛犊
驱动牛犊
  • 注册日期2005-10-07
  • 最后登录2009-05-08
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望55点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2008-07-01 12:55
sector info的问题,至少我当时是这个问题。spare区域代码要调整~
lzd2006
驱动牛犊
驱动牛犊
  • 注册日期2006-06-16
  • 最后登录2009-04-20
  • 粉丝0
  • 关注0
  • 积分105分
  • 威望49点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2008-07-05 17:11
我之前也调试过该型号的NAND FLASH,最后没有成功,不能做批量生产。因为2440硬件上不支持MLC的ECC,导致读写出错的概率很大,很容易出现楼主所描述的现象,有时候是可以识别到保存在里面的文件数据(但我是把容量设置到很小的时候)。
建议:
1、通过软件ECC去解决,但比较复杂,效率也不高。
2、用SLC或MDOC
king_sundi
驱动牛犊
驱动牛犊
  • 注册日期2006-07-31
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望238点
  • 贡献值1点
  • 好评度54点
  • 原创分0分
  • 专家分5分
9楼#
发布于:2008-07-07 09:32
MLC的问题很多。光ECC就够你弄得。
tonyjou
驱动牛犊
驱动牛犊
  • 注册日期2008-07-10
  • 最后登录2010-03-12
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2008-07-10 23:29
1. 2440 不支援 4bit ECC Correct, 若真要用 MLC, 只能將 MLC 當 SLC 用 (就是 1 個 cell 只用 high, low 個 level, 不要用 MLC 的 Multi Level, K9G 好像是用 4 Level) 也就是容量只有 1G * 2 / 4 = 512, 沒有 NorFlash 時用 MLC Boot 就是這樣稿(Boot Code 將 MLC 當 SLC 用以避免 ECC Error), Boot 之後再 Enable ECC(因為 244x Boot 4k 是 CPU Load, 沒辦法 ECC Correct)

2. 2443 有支援 4 Bit ECC, BSP 中就有.
ztg0021
驱动小牛
驱动小牛
  • 注册日期2007-02-09
  • 最后登录2016-02-18
  • 粉丝1
  • 关注0
  • 积分141分
  • 威望223点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2008-07-11 10:06
谢谢各位的热心,我很早就放弃了在2440上搞MLC,不过大家还是可以讨论一下MLC的
WINCE/EVC/VS2005群:18219722
jasonshi
驱动小牛
驱动小牛
  • 注册日期2004-10-11
  • 最后登录2011-07-01
  • 粉丝2
  • 关注0
  • 积分23分
  • 威望446点
  • 贡献值3点
  • 好评度256点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2008-07-11 14:44
只能说2440不支持4BIT/2K的硬件ECC纠错,楼主的这个问题跟这个没关系,不支持硬件纠错可以软件做阿,主要是wince提供的FAL层不支持MLC,所以这个问题的解决之道还是从新写FAL层,至于4BIT/2K的ECC这是个可靠性问题了,加上了就更可靠了,不加也不会出现楼主的问题,只不过不是一个可靠的产品。我们就是自己从写FAL层,软件做4BIT/2K的ECC实现了MLC。
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2008-07-24 18:21
楼上说得有道理,但是一个问题是,boot的时候是2440自己load 代码,怎么保证boot的代码是正确的呢。
davisy040919
驱动牛犊
驱动牛犊
  • 注册日期2006-06-18
  • 最后登录2009-06-15
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望49点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2008-08-12 11:53
请教一下,我在使用K9F1G08时,只要在nandflash上进行文件操作,如拷文件,就会产生碎片文件(.chk)。
哪位高手知道这是什么原因?
jfjarm
驱动牛犊
驱动牛犊
  • 注册日期2008-01-04
  • 最后登录2009-08-04
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2008-08-19 17:42
楼主能发一份K9G8G08的数据手册给我吗,谢谢,jfjarm@163.com
microsun
论坛版主
论坛版主
  • 注册日期2002-11-11
  • 最后登录2014-07-18
  • 粉丝0
  • 关注0
  • 积分1052分
  • 威望1159点
  • 贡献值0点
  • 好评度848点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2008-08-24 13:32
主要的问题还是CE自己的FTL不支持这种NAND,所以在CE最好找个别的FTL做.
学海无涯
simon5430
驱动牛犊
驱动牛犊
  • 注册日期2007-04-06
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望67点
  • 贡献值0点
  • 好评度29点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2008-09-24 16:15
用6.0 R2版本支持MLC, 基于MDD+PDD架构。我的已经实现,但是没有看到支持多分区,不知道咋搞的。
ztg0021
驱动小牛
驱动小牛
  • 注册日期2007-02-09
  • 最后登录2016-02-18
  • 粉丝1
  • 关注0
  • 积分141分
  • 威望223点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2008-09-28 08:47
哦,这是个好信息
WINCE/EVC/VS2005群:18219722
游客

返回顶部