20楼#
发布于:2007-03-25 22:03
好!谢谢!
|
|
21楼#
发布于:2007-03-27 23:51
谢谢
同时有个问题请教一下 我用的是K9F1G16,使用的2440,用WINCE4.2,在驱动中没有使用你的代码,但是我在FMD_INIT中,分几次人为增加了,读写和擦除操作,通过U-BOOT来验证,发现操作是正常的,但是在CE下,不能对其进行格式化,也无法识别,请问问题应该怎样解决 |
|
22楼#
发布于:2007-03-29 12:20
请问一下搂主,大页NAND在格式化成binfs时,MBR怎么写?
还有,大页NAND一般坏块标志是OOB的前两个字节,可是FLASHINFO定义的坏块标志是在第6个字节。这个怎么办? |
|
23楼#
发布于:2007-03-29 17:33
to jasonshi:
BAD 标志位置请看源码,已经根据大页的做了相应的改动。 MBR和512的一样,bootpart.cpp,bootpart.h都不改动,逻辑上还是512/sector.这个问题前面已经讨论过。 to chunpengkai: 请确认一下spare区的读写,sectorinfo的读写是否OK,因为创建分区的时候会把sectorinfo写到spare区域,如果所有读写都没有问题,保证FMD_GetInfo()提供的是你FLASH信息。应该没有什么问题了。 |
|
24楼#
发布于:2007-04-02 16:22
请问一下,我直接调整了fmd.h中PSectorInfo结构体的顺序,把BAD标志放在第一个位置,这样有问题吗?
|
|
25楼#
发布于:2007-04-11 22:51
木有用
要调整读写的顺序 |
|
|
26楼#
发布于:2007-04-17 10:11
正准备换NANDFLASH,学习学习
|
|
27楼#
发布于:2007-04-19 18:38
#define CMD_READ2 0x50 // Read2
楼主,代码里你用到这个命令码,在你测试过的K9F1G08芯片手册里可根本没有这个命令码可以用的.这个是那种32M的老芯片里的.你是怎么理解的? |
|
28楼#
发布于:2007-04-28 10:42
no no
|
|
29楼#
发布于:2007-05-06 15:03
thank you! it's so kind of you!
|
|
30楼#
发布于:2007-05-17 23:05
好人啊
|
|
|
31楼#
发布于:2007-05-23 15:46
引用第3楼zhengshijie于2007-01-16 13:21发表的 : 高手看看 #ifndef SECTOR_SIZE #define SECTOR_SIZE 512 #endif #ifndef PAGES_PER_BLOCK #define PAGES_PER_BLOCK 32 #endif #ifndef BADBLOCKMARK #define BADBLOCKMARK 0x00 #endif #ifndef SECTOR_TO_BLOCK #define SECTOR_TO_BLOCK(sector) ((sector) >> 5 ) #endif #ifndef BLOCK_TO_SECTOR #define BLOCK_TO_SECTOR(block) ((block) << 5 ) #endif 是不是也要做相应的修改呀 #ifndef SECTOR_SIZE #define SECTOR_SIZE 2048 #endif #ifndef PAGES_PER_BLOCK #define PAGES_PER_BLOCK 64 #endif #ifndef BADBLOCKMARK #define BADBLOCKMARK 0x00 #endif #ifndef SECTOR_TO_BLOCK #define SECTOR_TO_BLOCK(sector) ((sector) >> 6 ) #endif #ifndef BLOCK_TO_SECTOR #define BLOCK_TO_SECTOR(block) ((block) << 6 ) #endif |
|
32楼#
发布于:2007-05-28 17:35
#ifndef SECTOR_SIZE
#define SECTOR_SIZE (GetBytesPerSector()) #endif #ifndef PAGES_PER_BLOCK #define PAGES_PER_BLOCK (GetSectorsPerBlock()) #endif #ifndef SECTOR_TO_BLOCK #ifndef LOG_2_PAGES_PER_BLOCK #define LOG_2_PAGES_PER_BLOCK (GetLog2PagesPerBlock(NAND_PAGE_CNT)) #endif #define SECTOR_TO_BLOCK(sector) ((sector) >> LOG_2_PAGES_PER_BLOCK ) #endif #ifndef BLOCK_TO_SECTOR #ifndef LOG_2_PAGES_PER_BLOCK #define LOG_2_PAGES_PER_BLOCK (GetLog2PagesPerBlock(NAND_PAGE_CNT)) #endif #define BLOCK_TO_SECTOR(block) ((block) << LOG_2_PAGES_PER_BLOCK ) #endif #ifndef BADBLOCKMARK #define BADBLOCKMARK 0x00 #endif |
|
33楼#
发布于:2007-05-28 17:41
我没有在4.2上面测试过,从网友的反馈得知4.2上不能直接用2048做SECTOR_SIZE,那就需要模拟成小页,512bytes/page,256pages/block.做成这样的话就肯定在什么版本上都能运行了。模拟成小页的我一开始也是这么做的,系统也已经运行了,后来觉得效率可能差一些,所以就改成现在这个样子的。
|
|
34楼#
发布于:2007-06-26 17:35
作为个人学习还可以,但是作为产品级代码还有待改进,其实,改动的地方不是太多,建议按照分层次的方式来写,不要所有的FLASH支持都放到一个FMD.CPP中,当fmd.cpp写好以后,以后就不需要再改动这个文件,而只需要添加相应的k9f1208,c , k9f1g08.c等等这样的文件,这样的话可扩展性比较好。
纯属个人建议:) |
|
35楼#
发布于:2007-06-30 16:12
请问zhengshijie大侠,改用了2K page的nandflash后系统的注册表需要修改吗?就是与文件系统相关的一些注册表需要修改吗?
|
|
36楼#
发布于:2007-07-12 16:29
请问楼主,wince5 支持MLC的nand吗?
|
|
37楼#
发布于:2007-07-20 16:52
可以和文件系统挂上,但是每次LOAD都会低格,这是怎么回事呢
|
|
|
38楼#
发布于:2007-08-17 16:04
兄弟 我刚好要搞这个啊
|
|
39楼#
发布于:2007-08-18 10:22
好帖,顶
|
|