阅读:3796回复:18
K9G8G08NANDFLASH驱动问题,请高手指教
很久没来了,先报个到
(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有什么除了读写地址外还有什么地方有奇怪的东东 |
|
|
沙发#
发布于:2008-06-27 13:00
有人说WINCE不支持MLC,真的还是假的,搞过的说一声
|
|
|
板凳#
发布于:2008-06-27 17:23
2440不支持MLC的FLASH
|
|
地板#
发布于:2008-06-27 17:39
可是下午一个QQ群里一个朋友说他们用2440+WINCE50+K9G8G08在做产品,这又是怎么回事,难道说可以
|
|
|
地下室#
发布于:2008-06-28 09:36
2440不支持MLC是说BOOT时不能从MLC中起来,MLC的ECC不行...,如果启动你用NOR,起来后你想用什么就用什么,只要愿意去做驱动.
|
|
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) |
|
|
6楼#
发布于:2008-06-30 16:44
从结果看,是不是你的spare区域写操作失败了,sector info没有写成功,所以每次启动的时候都找不到MBR sector,找不到分区表,所以又重新格式化了。
|
|
7楼#
发布于:2008-07-01 12:55
sector info的问题,至少我当时是这个问题。spare区域代码要调整~
|
|
8楼#
发布于:2008-07-05 17:11
我之前也调试过该型号的NAND FLASH,最后没有成功,不能做批量生产。因为2440硬件上不支持MLC的ECC,导致读写出错的概率很大,很容易出现楼主所描述的现象,有时候是可以识别到保存在里面的文件数据(但我是把容量设置到很小的时候)。
建议: 1、通过软件ECC去解决,但比较复杂,效率也不高。 2、用SLC或MDOC |
|
9楼#
发布于:2008-07-07 09:32
MLC的问题很多。光ECC就够你弄得。
|
|
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 中就有. |
|
11楼#
发布于:2008-07-11 10:06
谢谢各位的热心,我很早就放弃了在2440上搞MLC,不过大家还是可以讨论一下MLC的
|
|
|
12楼#
发布于:2008-07-11 14:44
只能说2440不支持4BIT/2K的硬件ECC纠错,楼主的这个问题跟这个没关系,不支持硬件纠错可以软件做阿,主要是wince提供的FAL层不支持MLC,所以这个问题的解决之道还是从新写FAL层,至于4BIT/2K的ECC这是个可靠性问题了,加上了就更可靠了,不加也不会出现楼主的问题,只不过不是一个可靠的产品。我们就是自己从写FAL层,软件做4BIT/2K的ECC实现了MLC。
|
|
13楼#
发布于:2008-07-24 18:21
楼上说得有道理,但是一个问题是,boot的时候是2440自己load 代码,怎么保证boot的代码是正确的呢。
|
|
14楼#
发布于:2008-08-12 11:53
请教一下,我在使用K9F1G08时,只要在nandflash上进行文件操作,如拷文件,就会产生碎片文件(.chk)。
哪位高手知道这是什么原因? |
|
15楼#
发布于:2008-08-19 17:42
楼主能发一份K9G8G08的数据手册给我吗,谢谢,jfjarm@163.com
|
|
16楼#
发布于:2008-08-24 13:32
主要的问题还是CE自己的FTL不支持这种NAND,所以在CE最好找个别的FTL做.
|
|
|
17楼#
发布于:2008-09-24 16:15
用6.0 R2版本支持MLC, 基于MDD+PDD架构。我的已经实现,但是没有看到支持多分区,不知道咋搞的。
|
|
18楼#
发布于:2008-09-28 08:47
哦,这是个好信息
|
|
|