阅读:3944回复:24
在系统中关于2k page nand的问题
我这段时间在ce5下做了个支持2k page 的nand flash driver 现在在bootloader中已经可以在2k nand中划分的binfs区域中烧人image并启动,但在系统起来后,我却无法在控制面板里找到我的nand flash (注:我已经将剩下的空间 低格为FAT文件系统),在nand 的驱动中,我也只是对它的 driver 进行了更改,希望有做过nand 的dx能帮我解决一下,谢谢!
|
|
沙发#
发布于:2007-03-29 17:15
你的注册表设置是否正确?
FAT分区是否创建成功? |
|
|
板凳#
发布于:2007-03-29 17:19
顺便请问下
楼主是直接做的2K page的驱动,还是把2K page模拟成了512page的来做呢? 在CE 4.2下 我直接用2K page的做,似乎创建分区老是不成功,或者就是NK无法启动 偶的驱动是没有问题的,置顶的帖子里面有位朋友说 4.2的文件系统跟2K page的flash兼容性有问题,不知是否真的 |
|
|
地板#
发布于:2007-03-30 11:25
注册表我没有动过,FAT 在bootloader中是显示分区成功,我也将分区表数据输出过,的确有分区,但进入系统后无法识别,让我很头疼,还有 我用的是直接2k page 读写,你的问题我碰到过,不知道你用的是什么cpu ,我用的是i.mx21,2knand 是K9F1G08,我估计你是地址的第11位有问题,你可以把你的代码给我看一下
|
|
地下室#
发布于:2007-03-30 19:22
无法在控制面板里找到我的nand flash ????????
是在我的电脑里没有出现 还是在存储管理器里看不到flash? |
|
|
5楼#
发布于:2007-03-30 19:26
我用的s3c2440 + k9f2g08
代码我不能提供,因为是公司的 看你的情况,能进系统,应该是在我的电脑里面没有出现你建立了分区的那块flash区域 可能是因为你没有mount,你可以在注册表里讲他设置为自动挂载 automount = dword:1 |
|
|
6楼#
发布于:2007-03-30 19:31
地址的11位?
NF_ADDR((PhyAddr >> 8 ) & 0x0f); 第二个周期的时候要把高四位清零,你所说的是不是这个地方? |
|
|
7楼#
发布于:2007-03-31 10:18
楼主能不能加个qq交流交流
偶的qq:31906073 请注明 驱动开发网哈 thanks |
|
|
8楼#
发布于:2007-04-01 13:52
是的 只是在这句中把NF_ADDR((PhyAddr >> 8 ) & 0x0f);
改成 NF_ADDR((PhyAddr >> 8 ) & 0x07); 就可以了 我在这个问题上挂了一个月啊,哈哈!你改了就成了 因为A11是为从2048~2112所设置的,原来我是与上0x0f, 但在read write的时候A11会出现1,你可以自己算一下,单数*2048时,A11就为1了, 所以错了,改一下就ok了,当然你必须确保你前面是对的! |
|
9楼#
发布于:2007-04-02 10:04
偶又检查了下偶的驱动
发现问题应该不是出在这里,偶贴部分代码上来 在read和write 页的时候,偶的地址是这样传送的 startSectorAddr 是要读写的页号,LastAddrCycleBitCnt是最后一个地址周期需要多少位 // Set up address NF_ADDR(0x00); NF_ADDR(0x00); NF_ADDR(startSectorAddr & 0xff); NF_ADDR((startSectorAddr>>8) & 0xff); if(NEED_EXT_ADDR) NF_ADDR((startSectorAddr>>16) & (~(0xff << LastAddrCycleBitCnt))); ------------------------------------------------------------------- 而在读写spare区域时,地址是这样传送的,byteAddr = 2048 // Write the address NF_ADDR(byteAddr); NF_ADDR((byteAddr>>8)&0x0f); NF_ADDR(sectorAddr & 0xff); NF_ADDR((sectorAddr>>8) & 0xff); if(NEED_EXT_ADDR) NF_ADDR((sectorAddr>>16) & (~(0xff << LastAddrCycleBitCnt))); 这样就刚好避开了xuedongyi大哥上面说的问题 |
|
|
10楼#
发布于:2007-04-03 10:56
现在我使用2knand 在binfs区域是正确的,image 可以装载,系统一可以起来,但系统起来后看不到nand(我分了fat32区域)在控制面板里可以看到nand但属性容量为8tb,我现在到底出了什么问题,有人能回答吗?
|
|
11楼#
发布于:2007-04-03 11:27
你说的“FAT 在bootloader中是显示分区成功”你用什么哪个函数作的FAT分区?
如果分区成功,必须改注册表才可以挂载。我也正在做挂载NAND,现在一挂载就不能2次启动了。 |
|
12楼#
发布于:2007-04-03 11:55
检查FMD_GetInfo函数
很有可能是因为你没有挂载 你看看存储管理器里能看到你的那个FAT32分区不 |
|
|
13楼#
发布于:2007-04-03 12:17
我是挂载上了,但是把前面的binfs分区也格式化了,我看了存储管理器里里的FAT32分区,大小就是整个nand的大小。所以怀疑fat分区没有分成功,想问一下你用那个函数建的fat分区.
|
|
14楼#
发布于:2007-04-03 12:19
我用的是wince5.0,在使用512b/page nand时,不需要做任何的更改,只要给fat分了区就可以看到nand并且使用,但现在我用2k/page nand时,程序有过更改,但现只能在控制面板的storage里看到nand,但容量是8tb,这显然是不对的,我现在问题到底是分区表错误,还是没有挂载啊?
|
|
15楼#
发布于:2007-04-03 15:21
在存储管理器里面看看 分区名后面有“*”号就是挂载了的分区
|
|
|
16楼#
发布于:2007-04-05 15:44
在任务管理器里看不到 nand还是只能在存储管理器里看到 这是为什么啊
|
|
17楼#
发布于:2007-04-05 19:15
任务管理器?存储管理器?
|
|
|
18楼#
发布于:2007-04-06 07:01
说错了 是资源管理器里看不到,在存储管理器里能看到!
|
|
19楼#
发布于:2007-04-06 11:24
在存储管理器里面看看 分区名后面是否有“*”
没有的话,就是没有挂载,在资源管理器里面当然看不见,改改注册表,加载后应该就能看到了 当然,前提是要有正确的分区 |
|
|
上一页
下一页