2440的WinCE 6.0 image下载运行出错
我的qq2440 + WinCE 6.0,nk.bin已经可以编译出来了,但是下载后运行出错,错误如下:
Enter your selection: w
Clear the free memory
Please send the Image through USB.
Download Address=0x80200000 Length=0x106c6c0
...................Done.
Low Level Format: Start = 0x0500, Num = 0x1fb00
....................................................Done.
Create Partition: Start = 0x600, Num = 0x8400.
..............................Done.
Create Partition: Start = 0x8a00, Num = 0x16f00.
...Done.
Start Windows CE...;Windows CE Kernel for ARM (Thumb Enabled) Built on Sep 30 2007 at 22:37:06
DCache: 8 sets, 64 ways, 32 line size, 16384 size
ICache: 8 sets, 64 ways, 32 line size, 16384 size
+OALArgsInit()
Arguments area is initialized
-OALArgsInit()
Exception 'Prefetch Abort' (3): Thread-Id=005c0002(pth=83da9264), Proc-Id=00400002(pprc=82008308) 'NK.EXE', VM-active=00400002(pprc=82008308) 'NK.EXE'
PC=00000000(???+0x00000000) RA=c0942990(smflash.dll+0x00002990) SP=d00bec54, BVA=00000000
Exception 'Raised Exception' (-1): Thread-Id=005c0002(pth=83da9264), Proc-Id=00400002(pprc=82008308) 'NK.EXE', VM-active=00400002(pprc=82008308) 'NK.EXE'
PC=c003b68c(k.coredll.dll+0x0001b68c) RA=8023849c(kernel.dll+0x0000649c) SP=d00be4d0, BVA=ffffffff
INFO: CReg2440Uart::CReg2440Uart using processor frequency reported by the OAL (0).
INFO: PwrButton: Mapped Irq 0x0 to SysIntr 0x16.
INFO: RebootButton: Mapped Irq 0x2 to SysIntr 0x17.
INFO: BattFLT: Mapped Irq 0x7 to SysIntr 0x18.
+CS8900:DriverEntry
s3c2440disp: display instance '', num monitors 1
-DisplayInit
gszBaseInstance is valid
-DrvEnableDriver
+GetGPE() called
++S3C2440DISP::S3C2440DISP
LCDPhysicalFrameBase (PHY : 0x30140000) and of size 0xc0000
m_VirtualFrameBuffer is mapped at a0140000(PHY : 30140000) and of size c0000
10
11
12
高手帮我看看是什么错误,谢谢啦!
13
platform.bib中已经把所有dll 都设置 kernel模式了?
意思就是说wince6下驱动要跑在内核态(Kernel),在platform.bib中有关驱动的标志如"SH"要改成"SHK"
哦,多谢,platform.bib里的标志已经都改成“SHK”了
我在猜测一种可能的原因是:
nk.exe调用的某些驱动类dll在bib中没有配置正确,可以简单的找公版上ok的wince6.0的bib对比一下
如果没有更好的办法,或许可以用kitl调试一下,因为但从你的调试信息来看,不确定是挂在了哪个阶段,可能是已经到了加载驱动的阶段,也可能是在系统启动的阶段
LCDPhysicalFrameBase
...
最后的不是 DisplayDriver的吗
但是出错是在-OALArgsInit() 这个地方啊
楼主这6.0的BSP是自己移植的还是已经在别的机子检测通过的,如果是自己移植的话,首先要确定oemaddrtab_cfg映射没出错,OAL的STARTUP.S的代码有无问题,一步步来,可以放些断点,看看系统是跑到那里飞掉的
不好意思,我重新构建了一个OS,去除了一些组件之后,编译成功,下载到QQ2440板子上后没有上述错误了,但是运行下来后,出现如下Log:
--------------------------------------------------------------------------------
Enter your selection: w
Clear the free memory
Please send the Image through USB.
Download Address=0x80200000 Length=0x1d77748
..................Done.
Low Level Format: Start = 0x0500, Num = 0x1fb00
....................................................Done.
Create Partition: Start = 0x600, Num = 0xec00.
.....................................................Done.
Create Partition: Start = 0xf200, Num = 0x10700.
...Done.
Start Windows CE...;Windows CE Kernel for ARM (Thumb Enabled) Built on Sep 30 2007 at 22:35:41
ProcessorType=0920 Revision=0
OEMAddressTable = 8022a980
DCache: 8 sets, 64 ways, 32 line size, 16384 size
ICache: 8 sets, 64 ways, 32 line size, 16384 size
+OALArgsInit()
Arguments area is initialized
-OALArgsInit()
Error Reporting Memory Reserved, dump size = 00020000
Setting up softlog at 0x83ddc000 for 0x800 entries
Booting Windows CE version 6.00 for (ARM)
&pTOC = 8200ac1c, pTOC = 81f759fc, pTOC->ulRamFree = 8200f000, MemForPT = 00001000
Old or invalid version stamp in kernel structures - starting clean!
Configuring: Primary pages: 7623, Secondary pages: 0, Filesystem pages = 3811
Booting kernel with clean memory configuration:
Memory Sections:
[0] : start: 82011000, extension: 00004000, length: 01dc7000
NKStartup done, starting up kernel.
Windows CE KernelInit
Reserve VM for kernel XIP DLls, first = c0010000, last = c12c0000
g_pprcNK == 0x82008aa0
Updated eptr->e32_vsize to = 00037000
Initializing Memory Mapped File Support
Scheduling the first thread.
Detecting VFP... VFP Not Found!
LoaderInit: Initialing loader
Updated eptr->e32_vsize to = 00037000
Updated eptr->e32_vsize to = 000a2000
PGPOOL: Reserved 768 pages for Loader pool
PGPOOL: Reserved 256 pages for File pool
OSAXST0: Platform Name = SMDK2440 Board
OSAXST1: >>> Loading Module 'kd.dll' (0x83DB7744) at address 0xC0010000-0xC0045000 in Process 'NK.EXE' (0x82008AA0)
KD: Starting kernel debugger software probe (KdStub) - KD API version 22
OSAXST1: >>> Loading Module 'NK.EXE' (0x82008AA0) at address 0x80200000-0x80237000 in Process 'NK.EXE' (0x82008AA0)
Message Queue support initialized, g_hMsgQHeap = d0040770
OSAXST1: >>> Loading Module 'filesys.dll' (0x83DB7E88) at address 0xC0200000-0xC029D000 in Process 'NK.EXE' (0x82008AA0)
OSAXST1: >>> Loading Module 'k.fpcrt.dll' (0x83D93574) at address 0xC01E0000-0xC01F8000 in Process 'NK.EXE' (0x82008AA0)
OSAXST1: >>> Loading Module 'fsdmgr.dll' (0x83D936BC) at address 0xC0590000-0xC05D5000 in Process 'NK.EXE' (0x82008AA0)
FSDMGR!DllMain: DLL_PROCESS_ATTACH
CertMod.dll not found, using old OEM Trust Model
FileSystem Starting - starting with clean file system
FSDMGR!STOREMGR_Initialize
FSDMGR!InitializeStoreAPI
FSDMGR!MountTable_t::RegisterVolumeName: Registered "StoreMgr" at index 2FSDMGR!MountTable_t::RegisterVolume: Registered volume at index 2 (Name="StoreMgr", MountFlags=0x1)FSDMGR!InitializeROMFileSystem: File System=ROM
OSAXST1: >>> Loading Module 'romfsd.dll' (0x83D75930) at address 0xC02A0000-0xC02A7000 in Process 'NK.EXE' (0x82008AA0)
FSDMGR!MountTable_t::RegisterVolumeName: Registered "ROM" at index 3FSDMGR!MountTable_t::RegisterVolume: Registered volume at index 3 (Name="ROM", MountFlags=0x71)FSVOL: Opening existing volume
FSVOL: Volume heap already initialized
FSREG: Mounted ROM portion of boot registry
FSVOL: Creating clean virtual volume
FSVOL: Initializing volume heap
FSREG: Mounted RAM portion of boot registry
FS: Creating signal event SYSTEM/DevMgrApiSetReady
FS: Creating signal event SYSTEM/PowerManagerReady
FS: Creating signal event SYSTEM/GweApiSetReady
FS: Creating signal event ReleaseFSD
FS: Creating signal event SYSTEM/BatteryAPIsReady
FS: Creating signal event SYSTEM/NLedAPIsReady
FSREG: Unable to read value "Start DevMgr" under HKEY_LOCAL_MACHINE\init\BootVars
FILESYS: Starting boot phase 0.
FSDMGR!STOREMGR_StartBootPhase BootPhase=0 (PrevBootPhase=-1)
FSDMGR: File security disabled.
FSDMGR!AutoLoadFileSystems: CurrentBootPhase=0, LoadFlags=1
FSDMGR!AutoLoadFileSystem: CurrentBootPhase=0, RootKey=System\StorageManager\AutoLoad, FileSystem_t=ObjectStore
FILESYS: RAM File System FSD_MountDisk registering folder "Object Store"
FSDMGR!MountTable_t::RegisterVolumeName: Registered "Object Store" at index 4FSDMGR!MountTable_t::RegisterVolume: Registered volume at index 4 (Name="", MountFlags=0x46)FSDMGR!AutoLoadFileSystem: CurrentBootPhase=0, RootKey=System\StorageManager\AutoLoad, FileSystem_t=SMFLASH
FSDMGR!AutoLoadBlockDevice: Auto-loF10c0OugiO2mtacFFSRE.FILESYSFSVOLcFFSRFSn
FvFFSREG: Unat
DF=FFnS02OS4eOOEO +euCCeddk!BeginCalibration: Elapsed is 188
CDECRO2DEDO)EODEOHHHcrDiOEDinen2EROiD3Re0O)\OO ECacit:E O[NOOSD0O0DeD[Oiuee[OSAAOS0 [NOTI[[[N[[n[DeviceFolder::LoadDevice(Drivers\BuiltIn\NTLMSSP_SVC) last 958 endmm[6THRDTerminate: Unable to terminate thread 01e80002
DEVICE!LaunchDevice: Init() failed for device 0xd04779b0
DEVICE!I_ActivateDeviceEx: couldn't activate: prefix , index -1, dll pcc_smdk2440.dll, context 0xd03ce67c
OSAXST1: <<< Unloading Module 'pcc_smdk2440.dll' (0x83C7D894) at address 0x(Dt(OtaO[0DlrOtneRO'[NOTOSAtDeviceFolder::LoadDe\O(SDdsO[NOn[OSNDIS: RebindAdaptersOnResume = 0
NDIS: PcmciaNeedsMapToScrOneFIin1D00r7= OO=n soii8dCp[0[rreset CS890d]uC8CEo(S [ O-nSDD dOA[NOE**OiOXDEVeOsT[N[yDaxQ09m+*[[natO[*v6+Bx0De[NO[EuKORRmBD
[rsOaOOl+r8C+m[C tr8Ot0ur=OSe0DeuOd\O[
[+D0D IRlAi0 DobID[[y[0ZmoSSrSIcZ(OIDO
s 9[[[NFT.Dev\[S0FCt0OSAXx-00IINtdKA. A ++Dr0OEao0[-K aPyR
a[w
OrUDecOs-OOe10(e 7C0 id0O4s0EOSAXST1:ItOdDConsoleFIL-OsOS-huOCFuG:+:
0Sm:p-:+p+2l+20+p
:2
:0p-O uO t+2C+l+e::p:eI+DB:O1eE3lO028g5BA[Oc
DOxDevicOii[[[[[t[ipt([Oe[++S3C-0OS'i2.++S3C+
++-+rreSIO0MGrIl
:a
-+-IB
ptC++S+++S-++t
--------------------------------------------------------------------------------
从Log看内核好像已经起来了,因为已经schedule first thread了,看样子是不是后来的驱动出错了?
接上面的Log
00+rS+2CISu::++llC+2C+p00CoeS++S3C2:te
+ra
CS8900SendS3C2440++S3C2440DISme-l0+r+
e+P+rI:rCPl+3Grow++OsOS20B:++S3CCPCi2L-E++S2++S-Si+BC4
+pS4NNmplete
+N+CS8+CS89OSAX0++CerSSrr
+CS89+C+0CSm+uAFIeQS+-+:OO4O8rOSAddTp++++++m+:2eCS899++e-+lB++4l-+4-D+t0ml-7O++
e+++P4:
CBlDlCS8900Send
CS8900Send
[CS8900] Send IP Packet
CS8900Send
+CS8900:CS8900QueryInformation
----> OID_GEN_LINK_SPEED
-CS8900:CS8900QueryInformation
+CS8900:CS8900QueryInformation
-CS8900:CS8900QueryInformation
+CS8900:CS8900QueryInformation
-CS8900:CS8900QueryInformation
+CS8900:CS8900QueryInformation
----> OID_GEN_LINK_SPEED
-CS8900:CS8900QueryInformation
+CS8900:CS8900QueryInformation
----> OID_GEN_XMIT_OK
-CS8900:CS8900QueryInformation
+CS8900:CS8900QueryInformation
----> OID_GEN_RCV_OK
-CS8900:CS8900QueryInformation
+CS8900:CS8900QueryInformation
-CS8900:CS8900QueryInformation
+CS8900:CS8900QueryInformation
-CS8900:CS8900QueryInformation
+CS8900:CS8900QueryInformation
-CS8900:CS8900QSrmCS8900Send
[CS8900] Send IP Packet
CS8900Send
CS8900Send
[CS8900] Send IP Packet
CS8900Send
CS8900Send
[CS8900] Send IP Packet
++S3C2440DISP::BltPrepare
--S3C2440DISP::BltPrepare
++S3C2440DISP::BltComplete
--S3C2440DISP::BltComplete
++S3C2440DISP::BltPrepare
--S3C2440DISP::BltPrepare
++S3C2440DISP::BltComplete
--S3C2440DISP::BltComplete
++S3C2440DISP::BltPrepare
--S3C2440DISP::BltPrepare
++S3C2440DISP::BltComplete
--S3C2440DISP::BltComplete
++S3C2440DISP::BltPrepare
--S3C2440DISP::BltPrepare
++S3C2440DISP::BltComplete
--S3C2440DISP::BltComplete
++DrvEscape
--DrvEscape
CS8900Send
LanaUp: (NB) pLana D0D18010 (1) up Addr 8545FEA9 Mask FFFF Bcast FFFFFEA9
+CS8900:CS8900SetInformation
-CS8900:CS8900SetInformation
+CS8900:CS8900SetInformation
-CS8900:CS8900SetInformation
+CS8900:CS8900SetInformation
-CS8900:CS8900SetInformation
CS8900Send
[CS8900] Send ARP Request Packet
+CS8900:CS8900SetInformation
OID_802_3_MULTICAST_LIST
-CS8900:CS8900SetInformation
+RDR:NetBIOSNotifyFunc: Lana 1, flags: 0x3
+RDR:NetupIndication, lana 1
+RDR:BindToNet: lananum: 1
+RDR:BindToNetbiosTransport
-RDR:BindToNet successful for lana 1
-RDR:NetBIOSNotifyFunc: Lana 1
+RDR:RdrUIThread starting
RdrUIThread: SH_WMGR is ready
DEVICE!RegReadActivationValues RegQueryValueEx(uiproxy\BusPrefix) returned 2
OSAXST1: >>> Loading Module 'coredll.dll' (0x83DDA594) at address 0x40010000-0x40124000 in Process 'udevice.exe' (0x831C2DE0)
OSAXST1: >>> Loading Module 'udevice.exe' (0x831C2DE0) at address 0x00010000-0x00019000 in Process 'udevice.exe' (0x831C2DE0)
udevice.exe $udevice_1004
FSDMGR!MountTable_t::RegisterVolumeName: Registered "$udevice_1004" at index 12APISCreateAPIHandle: pvData == NULL
FSDMGR!MountTable_t::RegisterVolume: Registered volume at index 12 (Name="$udevice_1004", MountFlags=0x101)OSAXST1: >>> Loading Module 'uiproxy.dll' (0x831F809C) at address 0x40540000-0x40545000 in Process 'NK.EXE' (0x82008AA0)
OSAXST1: >>> Loading Module 'uiproxy.dll' (0x831F809C) at address 0x40540002EOO0[cCS8900Send
CS8900Send
[CS8900] Send ARP Request Packet
[NOTIFY] HandleSystemEvent 5 none
+CS8900:CS8900QueryInformation
----> OID_GEN_LINK_SPEED
-CS8900:CS8900QueryInforme+2:p0e+CS8900:CS8900QueryInformation
-+CS[NO+C
+mCnef+CS8900:CS8900QueryInformation
----> OID_GEN_LINK_SPEED+mCCCI+CS+C--+mRCCS8900Send
[CS8900] Send IP PaIpv6Hlp:: GetAddrInfoW for [6toCS8900Send
+CS8900:CS8900QueryInformation
----> OID_GEN_LINK_SPEED
-CS8900:CS8900QueryInformation
+CS8900:CS8900QueryInformation
----> OID_GEN_LINK_SPEED
+
Cm
+C
o-m0++S3C2440DISP::BltPrepare
--S3C2440DISP::BltPrepare
++S3C2440DISP::BltComplete
--S3C2440DISP::BltComplete
++S3C2440DISP::BltPrepare
--S3C2440DISP::BltPrepare
++S3C2440DISP::BltComplete
--S3C2440DISP::BltComplete
++S3C2440DISP::BltPrepare
--S3C2440DISP::BltPrepare
++S3C2440DISP::BltComplete
--S3C2440DISP::BltComplete
++S3C2440DISP::BltPrepare
--S3C2440DISP::BltPrepare
++S3C2440DISP::BltComplete
--S3C2440DISP::BltComplete
++DrvEscape
--DrvEscape
++S3C2440DISP::BltPrepare
--S3C2440DISP::BltPrepare
++S3C2440DISP::BltComplete
--S3C2440DISP::BltComplete
++S3C2440DISP::BltPrepare
--S3C2440DISP::BltPrepare
++S3C2440DISP::BltComplete
--S3C2440DISP::BltComplete
++S3C2440DISP::BltPrepare
--S3C2440DISP::BltPrepare
++S3C2440DISP::BltComplete
--S3C2440DISP::BltComplete
++S3C2440DISP::BltPrepare
--S3C2440DISP::BltPrepare
++S3C2440DISP::BltComplete
--S3C2440DISP::BltComplete
++DrvEscape
--DrvEscape
++S3C2440DISP::BltPrepare
--S3C2440DISP::BltPrepare
++S3C2440DISP::BltComplete
--S3C2440DISP::BltComplete
++S3C2440DISP::BltPrepare
--S3C2440DISP::BltPrepare
++S3C2440DISP::BltComplete
--S3C2440DISP::BltComplete
++S3C2440DISP::BltPrepare
--S3C2440DISP::BltPrepare
++S3C2440DISP::BltComplete
--S3C2440DISP::BltComplete
++S3C2440DISP::BltPrepare
--S3C2440DISP::BltPrepare
++S3C2440DISP::BltComplete
--S3C2440DISP::BltComplete
++DrvEscape
--DrvEscape
系统后来每隔一定时间就重复打印下面的Log:
++S3C2440DISP::BltPrepare
--S3C2440DISP::BltPrepare
++S3C2440DISP::BltComplete
--S3C2440DISP::BltComplete
++S3C2440DISP::BltPrepare
--S3C2440DISP::BltPrepare
++S3C2440DISP::BltComplete
--S3C2440DISP::BltComplete
++S3C2440DISP::BltPrepare
--S3C2440DISP::BltPrepare
++S3C2440DISP::BltComplete
--S3C2440DISP::BltComplete
++S3C2440DISP::BltPrepare
--S3C2440DISP::BltPrepare
++S3C2440DISP::BltComplete
--S3C2440DISP::BltComplete
++DrvEscape
--DrvEscape
楼主为什么一下子加那么多的驱动,建议先把OAL跑通,然后一个一个加驱动
能不能请教一下楼主,你是如何在VS2005里定制一个wince6.0 OS下到QQ2440的,BSP是如何的?
把驱动都去掉看看能不能起来, 然后一个一个加上去~~