Windows CE Kernel for ARM (Thumb Enabled) Built on Jun 24 2004 at 18:21:58
ProcessorType=0920 Revision=0
sp_abt=ffff5000 sp_irq=ffff2800 sp_undef=ffffc800 OEMAddressTable = 80216e18
DCache: 8 sets, 64 ways, 32 line size, 16384 size
ICache: 8 sets, 64 ways, 32 line size, 16384 size
InitDisplay:480*272
Error Reporting Memory Reserved, dump size = 00020000
Booting Windows CE version 5.00 for (ARM)
&pTOC = 80209c1c, pTOC = 81b20cbc, pTOC->ulRamFree = 82029000, MemForPT = 00000000
Old or invalid version stamp in kernel structures - starting clean!
Configuring: Primary pages: 7604, Secondary pages: 0, Filesystem pages = 3802
Booting kernel with clean memory configuration:
Memory Sections:
[0] : start: 8202a000, extension: 00002000, length: 01db4000
Sp=ffffc7cc
ARMInit done.
Windows CE KernelInit
Updated eptr->e32_vsize to = 000a6000
Scheduling the first thread.
0x83ddf024: KernelInit2: pCurThread=83ddf024 hCurThread=03ddf266 hCurProc=03ddf002, KernelInit = 80225118
0x83ddf024: Detecting VFP...0x83ddf024: VFP Not Found!
0x83ddf024: first = 01eb0000, last = 02000000, SharedDllBase = 02500000
0x83ddf024: OEMIoControl: Unsupported Code 0x10100b4 - device 0x0101 func 45
0x83dc5000: CertMod.dll not found, using old OEM Trust Model
0x83dc5000: FileSystem Starting - starting with clean file system
0x83dc5000: ERROR: OEMSetRealTime: RTC cannot support a year greater than 2079 or less than 1980 (value 56)
0x83dc5000: FS: initializing ROM/RAM file system
0x83dc5000: SC_CreateAPIHandle: pvData == NULL
0x83dc5000: FS: Registering file system ROM, index 2, flags 0x00000031
0x83dc5000: FS: Mount complete (ROM, index 2, flags 0x00000031)
0x83dc5000: OEMIoControl: Unsupported Code 0x101008c - device 0x0101 func 35
0x83dc5000: FSVOL: Opening existing volume
0x83dc5000: FSVOL: Volume heap already initialized
0x83dc5000: FSREG: Mounted ROM portion of boot registry
0x83dc5000: FSVOL: Creating clean virtual volume
0x83dc5000: FSVOL: Initializing volume heap
0x83dc5000: FSREG: Mounted RAM portion of boot registry
0x83dc5000: FS: Creating signal event SYSTEM/DevMgrApiSetReady
0x83dc5000: FS: Creating signal event SYSTEM/PowerManagerReady
0x83dc5000: FS: Creating signal event SYSTEM/GweApiSetReady
0x83dc5000: FS: Creating signal event SYSTEM/BatteryAPIsReady
0x83dc5000: FS: Creating signal event SYSTEM/NLedAPIsReady
0x83dc5000: FILESYS: Starting storage manager.
0x83dc5000: FS: Registering file system StoreMgr, index 3, flags 0x00000001
0x83dc5000: InitSharedHeap: 44200000 10000 c
0x83dc5000: InitSharedHeap: return 44200060
0x83dc5000: FILESYS: Restarting storage manager.
0x83dc5000: FMD_Init Done, FlashID = 0xecf1
0x83dc5000: PageSize:0x800, NumBlocks:0x4, SectorsPerBlock:0x40,BytesPerBlock:0x20000
0x83dc5000: FLASHDRV.DLL:BuildupMappingInfo() - Enter.
0x83dc5000: SetBlockStatus: Block:0x0 Status:0x0
0x83dc5000: SetBlockStatus: Block:0x1 Status:0x0]
0x83dc5000: SetBlockStatus: Block:0x2 Status:0x0
0x83dc5000: SetBlockStatus: Block:0x3 Status:0x0
0x83dc5000: Loading partition driver mspart.dll hModule=83D94C7C
0x83dc5000: Driver mspart.dll loaded
0x83dc5000: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x0!!!
0x83dc5000: FLASHDRV.DLL:ReadFromMedia() - Unable to determine physical sector address for logical sector 0x00000000
0x83dc5000: Opened the store hStore=000C3740
0x83dc5000: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x0!!!
0x83dc5000: FLASHDRV.DLL:ReadFromMedia() - Unable to determine physical sector address for logical sector 0x00000000
0x83dc5000: NumSec=128 BytesPerSec=2048 FreeSec=0 BiggestCreatable=0
0x83dc5000: SetBlockStatus: Block:0x0 Status:0x0
0x83dc5000: EraseBlocks: erase didn't set all bits high (marking block 0x0 bad).
0x83dc5000: SetBlockStatus:blockID 0x0 Status 0x2
0x83dc5000: SetBlockStatus:Mark 0x0 as Bad Block Succeed
0x83dc5000: SetBlockStatus: Block:0x1 Status:0x0
0x83dc5000: EraseBlocks: erase didn't set all bits high (marking block 0x1 bad).
0x83dc5000: SetBlockStatus:blockID 0x1 Status 0x2
0x83dc5000: SetBlockStatus:Mark 0x1 as Bad Block Succeed
0x83dc5000: SetBlockStatus: Block:0x2 Status:0x0
0x83dc5000: EraseBlocks: erase didn't set all bits high (marking block 0x2 bad).
0x83dc5000: SetBlockStatus:blockID 0x2 Status 0x2
0x83dc5000: SetBlockStatus:Mark 0x2 as Bad Block Succeed
0x83dc5000: SetBlockStatus: Block:0x3 Status:0x0
0x83dc5000: EraseBlocks: erase didn't set all bits high (marking block 0x3 bad).
0x83dc5000: SetBlockStatus:blockID 0x3 Status 0x2[/b]
0x83dc5000: SetBlockStatus:Mark 0x3 as Bad Block Succeed
0x83dc5000: FLASHDRV.DLL:CP_StartCompactor() - There aren't any DIRTY sectors left; the compactor can't be started
0x83dc5000: FLASHDRV.DLL:SM_GetNextFreeSector() - Unable to start compactor in critical situation!!!
0x83dc5000: FLASHDRV.DLL:SM_GetNextFreeSector() - Unable to reclaim any free sectors in a critical compaction stage. Media must be full.
0x83dc5000: FLASHDRV.DLL:WriteToMedia() - Unable to get next free physical sector address for writing! The media is full...
0x83dc5000: FLASHDRV.DLL:WriteToMedia() failed.
0x83dc5000: FLASHDRV.DLL:L2P_GetPhysicalSectorAddr() - Secondary table doesn't exist for logical sector 0x0!!!
0x83dc5000: FLASHDRV.DLL:ReadFromMedia() - Unable to determine physical sector address for logical sector 0x00000000
0x83dc5000: FILESYS: Starting device and waiting for boot file system.
0x83d8a1f8: InitSharedHeap: 44200000 0 c
0x83d8a1f8: InitSharedHeap: return 44200060
0x83d8a1f8: *** DLL_PROCESS_ATTACH - Current Process: 0x42, ID: 0x3d8a45e ***
0x83d8a1f8: +InitDeviceFileSystems
0x83d8a1f8: FS: Registering file system $device, index 4, flags 0x00000001
0x83d8a1f8: FS: Registering file system $bus, index 5, flags 0x00000001
0x83d8a1f8: -InitDeviceFileSystems: status is 1
0x83d8a1f8: Ceddk!CalibrateStallCounter: Enter
0x83d8a1f8: Ceddk!CalibrateStallCounter: Could not find stall counter
0x83d8a1f8: Ceddk!BeginCalibration: min(251) max(278)
0x83d8a1f8: Ceddk!BeginCalibration: Elapsed is 276
0x83d8a1f8: Ceddk!BeginCalibration: Delay is 20
0x83dc5000: FS: Waiting for device to signal BootPhase1 completion
0x83d8a1f8: DEVICE!DevloadInit
0x83d8a1f8: DEVICE!InitDevices: Root Key is Drivers\BuiltIn.
0x83d8a1f8: DEVICE!RegReadActivationValues RegQueryValueEx(Drivers\BuiltIn\Prefix) returned 2
0x83d8a1f8: DEVICE!RegReadActivationValues RegQueryValueEx(Drivers\BuiltIn\BusPrefix) returned 2
0x83dc5000: FILESYS: Starting device and waiting for boot file system.
启动到这里挂了!
=====================================================================================================
EraseBlocks: erase didn't set all bits high (marking block 0x0 bad).
因为无法将所有的bit都擦除成0xFF,所以该block被标志成Bad Block。这是nand的坏块判断标准。
而你提供的DBG信息也显示了,0-3,4个block都无法完整擦除,都被标记成坏块了。
出现这个错误:erase didn't set all bits high (marking block 0x0 bad)
应该是在bootpart.cpp中低级格式化时 调用FMD_ReadSecotr判断 整个PAGE+SectorInfo(2048+8)是否是0xFF,CE默认使用memcmp对比两个数据结构是否一致,但这里会涉及“指针对齐”问题,你可以打印出sizeof(SectorInfo)的大小。