阅读:2665回复:17
一个很奇怪的问题,关于samsung flash
samsung 707 k9f1208
samsung 707 k9f1G08 以上两种flash通过我们的烧录器把nboot、eboot、nk烧好后,居然启动不了 最惨的是k9f1g08的,通过jtag烧进去都启动不了 问了几个人,他们说那个707是生产周期,即07年第7周 凡是不是707的,比如546 、701这些经过我们的烧录器一起烧出来,都能启动,很正常 困惑中。。。 |
|
|
沙发#
发布于:2007-07-04 09:53
楼主好像用过很多nand阿,用过K9G的FLASH吗?
|
|
板凳#
发布于:2007-07-05 10:14
K9G的用过没不记得了
用的多的主要是k9f k9k k9w k9l jasonshi 你用k9g的有什么问题吗 |
|
|
地板#
发布于:2007-07-05 10:50
我以前用的是K9K4G,K9K8G两种,本来没什么问题,最近说是K9G便宜,要用K9G8G可以换了后发现wince每次起来都要先格式化一次fat,很头疼阿,一直找不到原因,其实K9G8G和
K9K8G只有一个地方不同,就是一个是128/block ,共4K个block ,另一个是64/block ,共48K个block。不知你知不知道为什么会出现这样的现象? |
|
地下室#
发布于:2007-07-05 10:59
如此说来 K9G跟K9L一样了 2K的page 128page per block
至于硬件特性上有何不同我就不知道了 没看过他的datasheet |
|
|
5楼#
发布于:2007-07-05 11:01
那你的K9L下的FAT成功挂载了?能说说需要注意些什么吗?
|
|
6楼#
发布于:2007-07-05 11:02
你用的wince 4.2 还是 5.0
启动都要格式化fat 那是内核没有找到MBR 你用k9k4g的时候是怎么创建分区的 |
|
|
7楼#
发布于:2007-07-05 11:04
我用的wince 4.2
不支持2Kpage的 我是模拟成512来弄的 没有出现启动格式化fat的情况 |
|
|
8楼#
发布于:2007-07-05 11:07
现在我也这么做了,还是不行。 :(
|
|
9楼#
发布于:2007-07-05 11:09
我加了你qq 晚上继续讨论吧
我现在要忙别的去了 我在问问金刚兄有没有遇到这种情况 |
|
|
10楼#
发布于:2007-07-07 13:14
在此说明一下:
NAND flash有分: SLC small block,也就是512B扇区的,K9K1G08及以下的容量 SLC large block,也就是2048B扇区的,K9F1G08及以上的容量 MLC large block,也就是4096B扇区的,K9G4G,K9L9G,从512MB容量以上 还有一种moviNAND,是属于特殊串行接口的,512MB,1GB容量 |
|
11楼#
发布于:2007-07-07 13:16
补充一点,
SLC是一个存储单元存放1bit,MLC是一个存储单元存放2bit 所以对于MLC的flash,要求能够提供4bit的ECC,否则非常容易出错,而且不支持重复写入,因此写入速度只有SLC的1/4~1/5。 |
|
12楼#
发布于:2007-07-07 13:18
还有一点漏掉了,K9W内部实际上两个K9K的芯片叠加的,因此有两个片选脚!!!
|
|
13楼#
发布于:2007-07-09 09:33
楼上大牛果然厉害
对flash很有研究呀 佩服佩服 |
|
|
14楼#
发布于:2007-07-09 14:35
那里那里,只是用的比较多了!
|
|
15楼#
发布于:2007-08-20 13:20
楼主:问你一个弱弱的问题,我在用89S52读k9f1208的ID是读出来的都是0X00,这个是为什么啊?读写的时序使用端口模拟的!!
|
|
16楼#
发布于:2007-08-21 11:35
时续对不对?
流程对不对? 你只说读出来不对,不好判断 0x00基本上是啥都没读到 |
|
|
17楼#
发布于:2007-08-21 15:51
楼主:一下是我的代码,帮忙看看!!!
CLE = 0; FlashCE = 1; WR = 1; ALE = 0; RD = 1; FlashCE = 0; CLE = 1; WR = 0; P0 = 0x90; WR = 1; CLE = 0; ALE = 1; WR = 0; P0 = 0x00; WR = 1; ALE = 0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); WRITERB; RD = 0; FlashID[0] = P0; RD = 1; _nop_(); RD = 0; FlashID[1] = P0; RD = 1; _nop_(); RD = 0; FlashID[2] = P0; RD = 1; _nop_(); RD = 0; FlashID[3] = P0; RD = 1; |
|