cwl417
驱动牛犊
驱动牛犊
  • 注册日期2007-07-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望7点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
20楼#
发布于:2007-07-17 19:01
to zhuxiaofeng :
你挂载不上可以试试是不是分区格式不对造成的,在BP_OpenPartition中,分区一定要分成fat32的形式,我以前试过分成fat的格式,就挂不上,郁闷了好长一段时间!
你试一下,说不定是这个问题!
zhuxiaofeng
驱动小牛
驱动小牛
  • 注册日期2007-04-06
  • 最后登录2010-04-15
  • 粉丝0
  • 关注0
  • 积分1013分
  • 威望243点
  • 贡献值0点
  • 好评度202点
  • 原创分0分
  • 专家分0分
21楼#
发布于:2007-07-17 20:21
谢谢,
BP_OpenPartition不是在Bootloader里面做?
我现在是想纯粹把nand flash当作一个文件系统来做,
只要出现盘符就行,
如果仅仅这样的话,该怎么做??
谢谢
做一个出色的程序员!
cwl417
驱动牛犊
驱动牛犊
  • 注册日期2007-07-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望7点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
22楼#
发布于:2007-07-18 11:14
我知道你的意思,一般情况下是在eboot中做的,nand.c中会有,然后你按照上面他们给你改的注册表应该就能自动挂上出现盘符,5.0是盘符,4.2是文件夹。
或者你按照我给的分区代码和注册表设置分一个fat32分区是完全没有问题的, 你试一下吧!
ddnewbie
驱动牛犊
驱动牛犊
  • 注册日期2003-07-25
  • 最后登录2009-04-13
  • 粉丝0
  • 关注0
  • 积分201分
  • 威望21点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
23楼#
发布于:2007-07-19 14:43
to all
现在nand能挂上,但是挂上之前花了很长时间在fmd_erase,fmd_readsector 和fmd_writesector
尤其是erase一个block后,会对block的每个sector进行read and writer,并且会对每个block erase2次
请问这种情况如何分析
[img]D:gs.jpg[/img]
ddnewbie
驱动牛犊
驱动牛犊
  • 注册日期2003-07-25
  • 最后登录2009-04-13
  • 粉丝0
  • 关注0
  • 积分201分
  • 威望21点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
24楼#
发布于:2007-07-19 14:46
by the way ,it is 2k nand
而且如果new folder,会去把所有block erase一遍
然后报错无法create folder

是否erase block后需要write cis
请各位大虾帮帮忙看看
[img]D:gs.jpg[/img]
jasonshi
驱动小牛
驱动小牛
  • 注册日期2004-10-11
  • 最后登录2011-07-01
  • 粉丝2
  • 关注0
  • 积分23分
  • 威望446点
  • 贡献值3点
  • 好评度256点
  • 原创分0分
  • 专家分0分
25楼#
发布于:2007-07-19 15:02
只有第一次才会这样,是低级格式话,以后启动不会了。
ddnewbie
驱动牛犊
驱动牛犊
  • 注册日期2003-07-25
  • 最后登录2009-04-13
  • 粉丝0
  • 关注0
  • 积分201分
  • 威望21点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
26楼#
发布于:2007-07-19 15:49
楼上的意思是否 我所描述的现象正常?
但是创建一个文件夹,会把所有block erase一遍
这个应该不正常吧?
[img]D:gs.jpg[/img]
jasonshi
驱动小牛
驱动小牛
  • 注册日期2004-10-11
  • 最后登录2011-07-01
  • 粉丝2
  • 关注0
  • 积分23分
  • 威望446点
  • 贡献值3点
  • 好评度256点
  • 原创分0分
  • 专家分0分
27楼#
发布于:2007-07-20 08:49
这个我估计是你的erase函数有问题,你可以跟一下,是不是每次都返回false?
ddnewbie
驱动牛犊
驱动牛犊
  • 注册日期2003-07-25
  • 最后登录2009-04-13
  • 粉丝0
  • 关注0
  • 积分201分
  • 威望21点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
28楼#
发布于:2007-07-20 12:26
每次load driver后都有
0x8dfc88c8: Loading partition driver mspart.dll hModule=8DF9CE58
0x8dfc88c8: Driver mspart.dll loaded
0x8dfc88c8: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x0!!!
0x8dfc88c8: FLASHDRV.DLL:ReadFromMedia() - Unable to determine physical sector address for logical sector 0x00000000
0x8dfc88c8: Opened the store hStore=000B26D0
0x8dfc88c8: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x0!!!
0x8dfc88c8: FLASHDRV.DLL:ReadFromMedia() - Unable to determine physical sector address for logical sector 0x00000000
0x8dfc88c8: NumSec=65344 BytesPerSec=2048 FreeSec=0 BiggestCreatable=0

然后开始erase block, 而且每个block erase 2次,问题1 ,这正确否?
erase完后,可以看到nand的盘符

但是会出现如下
0x8db45670: FLASHDRV.DLL:FMD_ReadSector() failed!
0x8db45670: FLASHDRV.DLL:ReadFromMedia() failed.
0x8db45670: Read/Write Sector failed (30) on Sector 17
0x8db45670: FATFS!FindNext: unexpected error (30)
0x8db45670: FATFS!FAT_FindFirstFileW(0x00000000,\*.*) returned 0xffffffff "" (30)
0x8db45670: SWP:FrameChanged sent to window 0x7C014340 which is not visible

问题2:

请多多指教
[img]D:gs.jpg[/img]
zhuxiaofeng
驱动小牛
驱动小牛
  • 注册日期2007-04-06
  • 最后登录2010-04-15
  • 粉丝0
  • 关注0
  • 积分1013分
  • 威望243点
  • 贡献值0点
  • 好评度202点
  • 原创分0分
  • 专家分0分
29楼#
发布于:2007-07-23 20:31
根据大家的建议,我把注册表修改成saint_bxg给的之后。第一次回低格,以后就不会再低格了,
但是现在我的驱动现在是从debug信息来看是挂上文件系统了,
    因为在Debug信息里面已经出现了,Mount complete (E, index 4, flags 0x00000000)
    但是在打开WinCE的mydevice的时候,会出现好像down掉了似的。
    我debug了一下,他会去读nand的第124个sector,不知道为啥会读这个sector,
    而且这时候 DMA中断产生不了。导致他会DOWN掉。
下面是debug信息,大家帮忙看看,谢谢各位兄弟了,
Loading module smflash.dll at address 0x02830000-0x02844000 (RW data at 0x01EC0000-0x01EC0BA0)
Loaded symbols for 'C:\WINCE500\PBWORKSPACES\WINBOND_NS\RELDIR\WINBOND_ARMV4I_DEBUG\SMFLASH.DLL'
4294769956 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: FMD_init has been Enter!
4294769960 PID:4dfc330e TID:2dfa2996 0x8dfc6400: FMD: NF_TransferIstThread has been Setuped!
4294769969 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: FMD: ReadID (Mfg=0XEC, Dev=0X75)
4294769971 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: FLASHDRV.DLL:BuildupMappingInfo() - Enter.
4294769982 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: Block 0 is Bad!
4294770103 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x0!!!
4294838914 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: >>> Loading module mspart.dll at address 0x03C50000-0x03C5E000 (RW data at 0x01FD7000-0x01FD74AC)
Loaded symbols for 'C:\WINCE500\PBWORKSPACES\WINBOND_NS\RELDIR\WINBOND_ARMV4I_DEBUG\MSPART.DLL'
4294838916 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: Loading partition driver mspart.dll hModule=8DF99288
4294838917 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: Driver mspart.dll loaded
4294838986 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: Opened the store hStore=000B2A50
4294839009 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: NumSec=65344 BytesPerSec=512 FreeSec=0 BiggestCreatable=0
4294839009 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: Partition Part00  NumSectors=65342
4294839010 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: MSPART!PD_OpenPartition: dwStoreId=000B2A50, PartName=Part00
4294839031 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: >>> Loading module fatfsd.dll at address 0x03E40000-0x03E73000 (RW data at 0x01FF0000-0x01FF065C)
Loaded symbols for 'C:\WINCE500\PBWORKSPACES\WINBOND_NS\RELDIR\WINBOND_ARMV4I_DEBUG\FATFSD.DLL'
4294839038 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: FSD_MountDisk: mounting volumes for hDsk=000B4130
4294839064 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: FATFS!OpenVolume: access time updates disabled
4294839064 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: FATFS!OpenVolume: event logging enabled
4294839065 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: FATFS!OpenVolume: automatic scanning disabled
4294839065 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: FATFS!OpenVolume: write verify disabled
4294839066 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: FATFS!OpenVolume: extra FAT on format disabled
4294839066 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: FATFS!OpenVolume: force write through enabled
4294839068 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: FATFS!OpenVolume: Codepage = 1
4294839071 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: FATFS!OpenVolume: Number of path cache entries = 50
4294839103 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: >>> Loading module diskcache.dll at address 0x03E30000-0x03E39000 (RW data at 0x01FEE000-0x01FEE4F4)
Loaded symbols for 'C:\WINCE500\PBWORKSPACES\WINBOND_NS\RELDIR\WINBOND_ARMV4I_DEBUG\DISKCACHE.DLL'
4294839106 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: CreateCache: Successful.  Cache Size: 32 KB, Start: 1, End: 64.
4294839107 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: CreateCache: Successful.  Cache Size: 64 KB, Start: 65, End: 65341.
4294840544 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: FATFS!InitVolume: FAT version: 16
4294840544 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: FATFS!InitVolume: Cluster Size (Sectors): 4
4294840544 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: FATFS!InitVolume: TFAT enabled: FALSE
4294840548 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: FS: Registering file system E, index 4, flags 0x00000000
4294840549 PID:4dfc330e TID:4dfc32ea 0x8dfc30a8: FS: Mount complete (E, index 4, flags 0x00000000)

在这之后如果我去打开winCE的mydevice:
他会去读第124个sector.不知道为啥?而且这时候中断产生不了,
谢谢各位大虾了。。
做一个出色的程序员!
ttjlc
驱动牛犊
驱动牛犊
  • 注册日期2003-07-16
  • 最后登录2008-08-12
  • 粉丝0
  • 关注0
  • 积分182分
  • 威望21点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
30楼#
发布于:2007-08-18 11:18
呵呵~
lzd2006
驱动牛犊
驱动牛犊
  • 注册日期2006-06-16
  • 最后登录2009-04-20
  • 粉丝0
  • 关注0
  • 积分105分
  • 威望49点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
31楼#
发布于:2007-08-20 09:20
to all,
我在移植大页的NAND FLASH遇到一个很怪的问题。
我在存储管理器,可以看到正常的FLASH大小信息,但看不到分区信息。格式化后,可以看到分区信息,也能看到盘符,可以复制文件到这个盘符。但重启后,盘符看不到,里面的文件也看不到了。
当初以为原来看到的盘符和复制到里面的文件都是在内存里面,因为我的内存才64M,再格式化后,我复制了大于64M的文件放到该盘符下,也可以,那说明我复制的文件应该是在NAND FLASH中的。而且里面文件也应该是对的,因为我用来播放该盘符中的视频文件,也可以正常播放。

请大家讨论一下,相互进步。

也可以发邮件,交流一下。
liuzhd21@21cn.com
上一页 下一页
游客

返回顶部