hanny
2009-11-19 16:04
楼主
先贴出一段我的debug模式下的打印信息
4294767296 PID:3829682 TID:382965a 0x83829470: FS: initializing ROM/RAM file system
4294767296 PID:3829682 TID:382965a 0x83829470: SC_CreateAPIHandle: pvData == NULL
4294767296 PID:3829682 TID:382965a 0x83829470: FS: Registering file system ROM, index 2, flags 0x00000031
4294767296 PID:3829682 TID:382965a 0x83829470: FS: Mount complete (ROM, index 2, flags 0x00000031)
4294767296 PID:3829682 TID:382965a 0x83829470: FSVOL: Opening existing volume
4294767296 PID:3829682 TID:382965a 0x83829470: FSVOL: Volume heap already initialized
4294767296 PID:3829682 TID:382965a 0x83829470: FSREG: Mounted ROM portion of boot registry
4294767296 PID:3829682 TID:382965a 0x83829470: FSVOL: Creating clean virtual volume
4294767296 PID:3829682 TID:382965a 0x83829470: FSVOL: Initializing volume heap
4294767296 PID:3829682 TID:382965a 0x83829470: FSREG: Mounted RAM portion of boot registry
4294767296 PID:3829682 TID:382965a 0x83829470: FS: Creating signal event SYSTEM/DevMgrApiSetReady
4294767296 PID:3829682 TID:382965a 0x83829470: FS: Creating signal event SYSTEM/PowerManagerReady
4294767296 PID:3829682 TID:382965a 0x83829470: FS: Creating signal event SYSTEM/GweApiSetReady
4294767296 PID:3829682 TID:382965a 0x83829470: FSREG: Unable to read value "Start DevMgr" under HKEY_LOCAL_MACHINE\init\BootVars
4294767296 PID:3829682 TID:382965a 0x83829470: FILESYS: Starting storage manager.
4294767296 PID:3829682 TID:382965a 0x83829470: >>> Loading module fsdmgr.dll at address 0x03C20000-0x03C52000 (RW data at 0x01FDA000-0x01FDA7F8)
Loaded symbols for 'G:\WINCE500\PBWORKSPACES\INGENICDEBUG\RELDIR\INGENIC_MIPSII_DEBUG\FSDMGR.DLL'
4294767296 PID:3829682 TID:382965a 0x83829470: FS: Registering file system StoreMgr, index 3, flags 0x00000001
4294767296 PID:3829682 TID:382965a 0x83829470: >>> Loading module ceddk.dll at address 0x03B80000-0x03B8A000 (RW data at 0x01FD2000-0x01FD20F8)
Loaded symbols for 'G:\WINCE500\PBWORKSPACES\INGENICDEBUG\RELDIR\INGENIC_MIPSII_DEBUG\CEDDK.DLL'
4294767296 PID:3829682 TID:382965a 0x83829470: >>> Loading module smflash.dll at address 0x021D0000-0x021EC000 (RW data at 0x01ECE000-0x01ECEDC0)
Loaded symbols for 'G:\WINCE500\PBWORKSPACES\INGENICDEBUG\RELDIR\INGENIC_MIPSII_DEBUG\SMFLASH.DLL'
4294767296 PID:3829682 TID:382965a 0x83829470: +FMD_Init
4294767296 PID:3829682 TID:382965a 0x83829470: NAND Flash: 0xECDC is found,Index=2
4294767296 PID:3829682 TID:382965a 0x83829470: IMAGE_RSV_LENTH = 400000
4294767296 PID:3829682 TID:382965a 0x83829470: -FMD_Init
4294767296 PID:3829682 TID:382965a 0x83829470: FLASHDRV.DLL:BuildupMappingInfo() - Enter.
4294767296 PID:3829682 TID:382965a 0x83829470: FLASHDRV.DLL2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x0!!!
4294767296 PID:3829682 TID:382965a 0x83829470: FLASHDRV.DLL2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x3f8!!!
4294767296 PID:3829682 TID:382965a 0x83829470: FLASHDRV.DLL2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x7f0!!!
4294767296 PID:3829682 TID:382965a 0x83829470: FLASHDRV.DLL2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0xbe8!!!
4294767296 PID:3829682 TID:382965a 0x83829470: FLASHDRV.DLL2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0xfe0!!!
4294767296 PID:3829682 TID:382965a 0x83829470: FLASHDRV.DLL2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x13d8!!!
4294767296 PID:3829682 TID:382965a 0x83829470: FLASHDRV.DLL2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x17d0!!!
4294767296 PID:3829682 TID:382965a 0x83829470: FLASHDRV.DLL2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x1bc8!!!
4294767296 PID:3829682 TID:382965a 0x83829470: FLASHDRV.DLL2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x1fc0!!!
4294767296 PID:3829682 TID:382965a 0x83829470: FLASHDRV.DLL2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x23b8!!!
4294767296 PID:3829682 TID:382965a 0x83829470: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x27b0!!!
4294767296 PID:3829682 TID:382965a 0x83829470: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x2ba8!!!
4294767296 PID:3829682 TID:382965a 0x83829470: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x2fa0!!!
4294767296 PID:3829682 TID:382965a 0x83829470: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x3398!!!
4294767296 PID:3829682 TID:382965a 0x83829470: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x3790!!!
4294767296 PID:3829682 TID:382965a 0x83829470: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x3b88!!!
4294767296 PID:3829682 TID:382965a 0x83829470: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x3f80!!!
4294767296 PID:3829682 TID:382965a 0x83829470: The 2173th Block is BAD, data=0x0
4294767296 PID:3829682 TID:382965a 0x83829470: >>> Loading module mspart.dll at address 0x03C10000-0x03C1D000 (RW data at 0x01FD8000-0x01FD84A8)
Loaded symbols for 'G:\WINCE500\PBWORKSPACES\INGENICDEBUG\RELDIR\INGENIC_MIPSII_DEBUG\MSPART.DLL'
4294767296 PID:3829682 TID:382965a 0x83829470: Loading partition driver mspart.dll hModule=837E3850
4294767296 PID:3829682 TID:382965a 0x83829470: Driver mspart.dll loaded
4294767296 PID:3829682 TID:382965a 0x83829470: FLASHDRV.DLL:ReadFromMedia() - Unable to determine physical sector address for logical sector 0x00004040
4294767296 PID:3829682 TID:382965a 0x83829470: Opened the store hStore=000D1C30
4294767296 PID:3829682 TID:382965a 0x83829470: NumSec=259392 BytesPerSec=2048 FreeSec=0 BiggestCreatable=0
4294767296 PID:3829682 TID:382965a 0x83829470: Partition Part00 NumSectors=16384
4294767296 PID:3829682 TID:382965a 0x83829470: MSPART!PD_OpenPartition: dwStoreId=000D1C30, PartName=Part00
4294767296 PID:3829682 TID:382965a 0x83829470: >>> Loading module binfs.dll at address 0x03C60000-0x03C6D000 (RW data at 0x01FDC000-0x01FDD540)
Loaded symbols for 'G:\WINCE500\PBWORKSPACES\INGENICDEBUG\RELDIR\INGENIC_MIPSII_DEBUG\BINFS.DLL'
4294767296 PID:3829682 TID:382965a 0x83829470: OEMIoControl: Unsupported Code 0x1010104 - device 0x0101 func 65
4294767296 PID:3829682 TID:382965a 0x83829470: <<< Unloading module binfs.dll at address 0x03C60000-0x03C6D000 (RW data at 0x01FDC000-0x01FDD540)
Unloaded symbols for 'G:\WINCE500\PBWORKSPACES\INGENICDEBUG\RELDIR\INGENIC_MIPSII_DEBUG\BINFS.DLL'
4294767296 PID:3829682 TID:382965a 0x83829470: Partition Part01 NumSectors=242944
4294767296 PID:3829682 TID:382965a 0x83829470: MSPART!PD_OpenPartition: dwStoreId=000D1C30, PartName=Part01
4294767296 PID:3829682 TID:382965a 0x83829470: >>> Loading module fatfsd.dll at address 0x03E30000-0x03E5F000 (RW data at 0x01FF2000-0x01FF263C)
Loaded symbols for 'G:\WINCE500\PBWORKSPACES\INGENICDEBUG\RELDIR\INGENIC_MIPSII_DEBUG\FATFSD.DLL'
4294767296 PID:3829682 TID:382965a 0x83829470: FSD_MountDisk: mounting volumes for hDsk=000D3790
4294767296 PID:3829682 TID:382965a 0x83829470: FLASHDRV.DLL:ReadFromMedia() - Unable to determine physical sector address for logical sector 0x00004040
4294767296 PID:3829682 TID:382965a 0x83829470: FATFS!OpenVolume: access time updates disabled
4294767296 PID:3829682 TID:382965a 0x83829470: FATFS!OpenVolume: event logging enabled
4294767296 PID:3829682 TID:382965a 0x83829470: FATFS!OpenVolume: automatic scanning disabled
4294767296 PID:3829682 TID:382965a 0x83829470: FATFS!OpenVolume: write verify disabled
4294767296 PID:3829682 TID:382965a 0x83829470: FATFS!OpenVolume: extra FAT on format disabled
4294767296 PID:3829682 TID:382965a 0x83829470: FATFS!OpenVolume: force write through enabled
4294767296 PID:3829682 TID:382965a 0x83829470: FATFS!OpenVolume: Codepage = 1
4294767296 PID:3829682 TID:382965a 0x83829470: FATFS!OpenVolume: Number of path cache entries = 50
4294767296 PID:3829682 TID:382965a 0x83829470: FATFS!InitVolume: sector 0 byte 0 suspicious (0x0)
4294767296 PID:3829682 TID:382965a 0x83829470: FATFS!InitVolume: invalid BPB, volume deemed invalid
4294767296 PID:3829682 TID:382965a 0x83829470: FATFS!InitVolume: FAT version: 12
4294767296 PID:3829682 TID:382965a 0x83829470: FATFS!InitVolume: Cluster Size (Sectors): 0
4294767296 PID:3829682 TID:382965a 0x83829470: FATFS!UnmountDisk: unmounting all volumes on disk 000
我用红色标记了我认为的一些关键打印信息。我的分区表信息
第一个16字节 0x3 0x1 0x1 0x0 0x21 0x0 0x0 0x0 0x40 0x0 0x0 0x0 0x0 0x40 0x0 0x0
第二个16字节 0x1 0x1 0x1 0x0 0xb 0xd4 0x0 0x0 0x40 0x40 0x0 0x0 0x0 0xb5 0x3 0x0
我认真排查了分区表,但是每个项都是正确的。我找不出分区的任何原因。BuildupMappingInfo() 这个函数是对于整个nand来建立Logic--phy的映射的吧,ReadFromMedia() 这个函数也只是说是FAT文件系统才会调用的。。而ReadFromMedia() - Unable to determine physical sector address for logical sector 0x00004040。0x00004040这个地址正好就是FAT区的逻辑首地址。他的意思是0x00004040这个逻辑地址找不到对应的物理地址,如果说是这样的话应该在前面建立逻辑--物理映射表时要给出信息啊。。。
loading module binfs.dll
Unloading module binfs.dll BINFS的加载跟FAT分区就是 0x00004040没有什么关系啊。。为什么在碰到这个信息时我的BINFS会自动的卸载掉,也或是不是因为这个原因。
上次walle大侠说我的spare 区间没有写对。但是我现在也仔细的检查了。在对BINFS这个制度分区写LOGICNUM的时候是完全正确的。。。
希望大家能讨论一下,。。以前就是这个问题。。现在时工作,这个问题一定得解决
我刚才看了一下,给楼主两天意见
你是使用stepstone+eboot的吧
binfs是针对nand 的,所以你必须烧写进 nand才有用的,并且烧写之前要格式化FAT和binfs分区,否则是不会出现盘符的。
我对binfs研究的不够深,以前我在立宇泰 的开发板碰见这种情况,
因为NK的大小会变的,所以MBR的位置会变,所以你必须写入nand 才能得到合法的MBR
我一直不敢用binfs和eboot,我用ADS bootloader就是这个原因,调试太麻烦了。!
现在内存都是128M以上,甚至是256M,所以也不想做节省内存的binfs+XIP了。
还有现在的nand 有些型号,读写30M只要两秒了,没有必要再做XIP来提高速度了,呵呵。
烧写太麻烦了。
引用: 引用 10 楼 vichard 的回复:
从FLSHDRV中打印出的信息看还是驱动有问题,先查一下FLASHDRV为什么打印了那些错误信息吧
]
这些都是FAL层打印的信息
看起来是fal里面的地址映射出了问题
建议lz先抛弃binfs,并把image做成ramimage的形式,然后直接把image烧录到flash上,启动过程中使用eboot直接把整个nb0一次性load到内存中,这样把问题简化后再寻找root cause
binfs我已经实现了。
现在就剩下一个问题:将nand flash的fat区在mass storage模式下做为pc的一个盘。如果你有想法,可以指教我一下。
呵呵。。很高兴与你能讨论下。。。。。你的bootpart里面是这样做的吗?我现在已经真是没有办法了。。。。先试试。。你的QQ是多少啊。。我加你
有更多的逻辑页找不到无力页。。。。?
关键是现在又个问题是load了binfs之后马上就unload了。。
说得专业一点的啊。
我最新在做binfs。
依我看,是不是需要把nand flash剩余的block的地址映射也要做啊。
你是用bootpart函数吧?在createpartition函数中,将所有的块都writelogicalnumbers。试试看。
11楼
莎莎傻姑 该用户已被删除
从FLSHDRV中打印出的信息看还是驱动有问题,先查一下FLASHDRV为什么打印了那些错误信息吧