我按照mini2240的eboot先进行分区。。前面25个block是NBOOT.eboot.TOc,后面就是分区MBR,我将根据NK的大小分出那么大的BINFS的分区,后面的都是分成FAT的分区。从打印的信息来看我的分区是正确的,但是我没有去读分区表的信息来确认。下面我给出我的debug的打印信息
Windows CE Firmware Init
INFO: Initializing system interrupts...
INFO: Initializing system clock(s)...
INFO: Initializing driver globals area...
SDMMC config set rGPGCON: 82a982
OEMInit Done...
Booting Windows CE version 5.00 for (ARM)
&pTOC = 8c20a25c, pTOC = 8dedd5ac, pTOC->ulRamFree = 8e029000, MemForPT = 00000000
Old or invalid version stamp in kernel structures - starting clean!
Configuring: Primary pages: 7892, Secondary pages: 0, Filesystem pages = 1973
Booting kernel with clean memory configuration:
Memory Sections:
[0] : start: 8e02a000, extension: 00002000, length: 01ed4000
Sp=ffffc7cc
ARMInit done.
Windows CE KernelInit
Updated eptr->e32_vsize to = 000c8000
Scheduling the first thread.
0x8feff024: KernelInit2: pCurThread=8feff024 hCurThread=0feff266 hCurProc=0feff002, KernelInit = 8c24921c
0x8feff024: Detecting VFP...0x8feff024: VFP Not Found!
0x8feff024: first = 01cc0000, last = 02000000, SharedDllBase = 02510000
0x8fee5000: CertMod.dll not found, using old OEM Trust Model
0x8fee5000: FileSystem Starting - starting with clean file system
0x8fee5000: FS: initializing ROM/RAM file system
0x8fee5000: SC_CreateAPIHandle: pvData == NULL
0x8fee5000: FS: Registering file system ROM, index 2, flags 0x00000031
0x8fee5000: FS: Mount complete (ROM, index 2, flags 0x00000031)
0x8fee5000: FSVOL: Opening existing volume
0x8fee5000: FSVOL: Volume heap already initialized
0x8fee5000: FSREG: Mounted ROM portion of boot registry
0x8fee5000: FSVOL: Creating clean virtual volume
0x8fee5000: FSVOL: Initializing volume heap
0x8fee5000: FSREG: Mounted RAM portion of boot registry
0x8fee5000: FS: Creating signal event SYSTEM/DevMgrApiSetReady
0x8fee5000: FS: Creating signal event SYSTEM/PowerManagerReady
0x8fee5000: FS: Creating signal event SYSTEM/GweApiSetReady
0x8fee5000: FSREG: Unable to read value "Start DevMgr" under HKEY_LOCAL_MACHINE\init\BootVars
0x8fee5000: FILESYS: Starting storage manager.
0x8fee5000: FS: Registering file system StoreMgr, index 3, flags 0x00000001
0x8fee5000: NandFlash FMD_Init
0x8fee5000: NandFlash FMD_Init Done
0x8fee5000: FLASHDRV.DLL:BuildupMappingInfo() - Enter.
0x8fee5000: The 0th Block is BAD, data=0x0
0x8fee5000: The 1th Block is BAD, data=0x0
0x8fee5000: The 2th Block is BAD, data=0x0
0x8fee5000: The 3th Block is BAD, data=0x0
0x8fee5000: The 4th Block is BAD, data=0x0
0x8fee5000: The 5th Block is BAD, data=0x0
0x8fee5000: The 6th Block is BAD, data=0x0
0x8fee5000: The 7th Block is BAD, data=0x0
0x8fee5000: The 8th Block is BAD, data=0x0
0x8fee5000: The 9th Block is BAD, data=0x0
0x8fee5000: The 10th Block is BAD, data=0x0
0x8fee5000: The 11th Block is BAD, data=0x0
0x8fee5000: The 12th Block is BAD, data=0x0
0x8fee5000: The 13th Block is BAD, data=0x0
0x8fee5000: The 14th Block is BAD, data=0x0
0x8fee5000: The 15th Block is BAD, data=0x0
0x8fee5000: The 16th Block is BAD, data=0x0
0x8fee5000: The 17th Block is BAD, data=0x0
0x8fee5000: The 18th Block is BAD, data=0x0
0x8fee5000: The 19th Block is BAD, data=0x0
0x8fee5000: The 20th Block is BAD, data=0x0
0x8fee5000: The 21th Block is BAD, data=0x0
0x8fee5000: The 22th Block is BAD, data=0x0
0x8fee5000: The 23th Block is BAD, data=0x0
0x8fee5000: The 24th Block is BAD, data=0x0
0x8fee5000: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x0!!!
0x8fee5000: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x340!!!
0x8fee5000: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x400!!!
0x8fee5000: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x600!!!
0x8fee5000: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x800!!!
0x8fee5000: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x5400!!!
。。。。。。。。。。。。。。。。
FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x8600!!!
0x8fee5000: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x8800!!!
。。。。。。。。。。。。。。。。。。。。。。
0x8fee5000: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0xea00!!!
0x8fee5000: FMD::FMD_OEMIoControl = 0x71c24
0x8fee5000: Loading partition driver mspart.dll hModule=8FE83288
0x8fee5000: Driver mspart.dll loaded
0x8fee5000: FLASHDRV.DLL:ReadFromMedia() - Unable to determine physical sector address for logical sector 0x0000ea40
0x8fee5000: Opened the store hStore=000EEF60
0x8fee5000: NumSec=129952 BytesPerSec=512 FreeSec=0 BiggestCreatable=0
0x8fee5000: Partition Part00 NumSectors=59136
0x8fee5000: MSPART!PD_OpenPartition: dwStoreId=000EEF60, PartName=Part00
0x8fee5000: Partition Part01 NumSectors=69984
0x8fee5000: MSPART!PD_OpenPartition: dwStoreId=000EEF60, PartName=Part01
0x8fee5000: FSD_MountDisk: mounting volumes for hDsk=00134160
0x8fee5000: FLASHDRV.DLL:ReadFromMedia() - Unable to determine physical sector address for logical sector 0x0000ea40
0x8fee5000: FATFS!OpenVolume: access time updates disabled
0x8fee5000: FATFS!OpenVolume: event logging enabled
0x8fee5000: FATFS!OpenVolume: automatic scanning disabled
0x8fee5000: FATFS!OpenVolume: write verify disabled
0x8fee5000: FATFS!OpenVolume: extra FAT on format disabled
0x8fee5000: FATFS!OpenVolume: force write through enabled
0x8fee5000: FATFS!OpenVolume: Codepage = 1
0x8fee5000: FATFS!OpenVolume: Number of path cache entries = 50
0x8fee5000: FATFS!InitVolume: sector 0 byte 0 suspicious (0x0)
0x8fee5000: FATFS!InitVolume: invalid BPB, volume deemed invalid
0x8fee5000: FATFS!InitVolume: FAT version: 12
0x8fee5000: FATFS!InitVolume: Cluster Size (Sectors): 0
0x8fee5000: FATFS!InitVolume: TFAT enabled: FALSE
0x8fee5000: FATFS!UnmountDisk: unmounting all volumes on disk 00
0x8fee5000: FATFS!FATDetach complete (0 sectors written in 0 requests)
0x8fee5000: InitSharedHeap: 44200000 10000 c
0x8fee5000: InitSharedHeap: return 44200060
0x8fee5000: FILESYS: Restarting storage manager.
0x8fee5000: FILESYS: Starting device and waiting for boot file system.
0x8fe722e8: InitSharedHeap: 44200000 0 c
0x8fe722e8: InitSharedHeap: return 44200060
0x8fe722e8: *** DLL_PROCESS_ATTACH - Current Process: 0x42, ID: 0x8fe7254e ***
0x8fe722e8: +InitDeviceFileSystems
0x8fe722e8: FS: Registering file system $device, index 4, flags 0x00000001
0x8fe722e8: FS: Registering file system $bus, index 5, flags 0x00000001
0x8fe722e8: -InitDeviceFileSystems: status is 1
0x8fe722e8: Ceddk!CalibrateStallCounter: Enter
0x8fe722e8: Ceddk!CalibrateStallCounter: Could not find stall counter
0x8fe722e8: Ceddk!BeginCalibration: min(501) max(556)
0x8fe722e8: Ceddk!BeginCalibration: Elapsed is 548
0x8fe722e8: Ceddk!BeginCalibration: Delay is 19
0x8fee5000: FS: Waiting for device to signal BootPhase1 completion
0x8fe722e8: DEVICE!DevloadInit
0x8fe722e8: DEVICE!InitDevices: Root Key is Drivers\BuiltIn.
0x8fe722e8: DEVICE!RegReadActivationValues RegQueryValueEx(Drivers\BuiltIn\Prefix) returned 2
0x8fe722e8: DEVICE!RegReadActivationValues RegQueryValueEx(Drivers\BuiltIn\BusPrefix) returned 2
0x8fee5000: FILESYS: Starting device and waiting for boot file system.
从打印信息上看这几句话似乎很给了我信息
0x8fee5000: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector
1.这句话说Secondary table是什么意思?
0x8fee5000: FLASHDRV.DLL:ReadFromMedia() - Unable to determine physical sector address for logical sector 0x0000ea40
2.ReadFromMedia这个函数是FAL里面的函数吧,CE5里面看不到,这句话说不能把logic sector转换成真实的物理地址。难道是我的分区表中的逻辑起始地址不正确???但是从分区打印信息上看是正确的啊。。。分明在加载完分区驱动后能很好的读出两个part中的信息。还是正确的。
3.从我从这句话猜测0x8fee5000: FATFS!InitVolume: Cluster Size (Sectors): 0肯定是BINFS没有mount上去的原因。