OAL层中的OEMIoControl问题

kuandeng   2009-4-28 12:49 楼主
我的内核编译出来下载运行,停在了这里
OEMIoControl: Unsupported Code 0x10100b4 - device 0x0101 func 45
OEMIoControl: Unsupported Code 0x101008c - device 0x0101 func 35
Initialize NAND Flash Controller.
Initialize NAND Flash Controller Successfully.
ZLGFFS: ReadFlashID result is(0xec765a3f).
ZLG_FFS: Initialize Successfully!

我查看所有驱动程序中调用KernelIoControl的地方,code在PUBLIC\COMMON\OAK\INC\pkfuncs.h都找得到定义,不知道是哪个硬件发出的中断申请了。如何根据这个Unsupported Code 0x10100b4去找出调用的硬件?

编译了Debug版本的内核下载运行,想得到更多的信息,我看不出什么来,请能看出问题的朋友指点一下。

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 = 8c21a6b8
DCache: 8 sets, 64 ways, 32 line size, 16384 size
ICache: 8 sets, 64 ways, 32 line size, 16384 size
KITL: *** Device Name SMDK241065535 ***
BVBridge:: built on [Nov 26 2008] time [11:19:37]

t()...TX = [16384] bytes -- Rx = [16384] bytes

fer [0xAE6AEAA0] to [0xAE6B2AA0].

0xAE6B2AC0] to [0xAE6B6AC0].

Port: 4469
KeyIndex 0 = -1
KeyIndex 1 = -1
KeyIndex 2 = -1
KeyIndex 3 = -1
KeyIndex 4 = -1
KeyIndex 5 = -1
KeyIndex 6 = -1
KeyIndex 7 = -1
+KITLRegisterDfltClient, service:0
+KITLRegisterDfltClient, service:1
KITLGlobalState == 0x61
Waiting for service 'DBGMSG' to connect..., fUseSysCalls = 0
ProcessAdminMsg: Receive Config message for service DBGMSG
ProcessAdminMsg: Receive Config message for service PPSH
ProcessAdminMsg: Receive Config message for service DBGMSG
ProcessAdminMsg: Receive Config message for service DBGMSG
ProcessAdminMsg: Receive Config message for service PPSH
ARMInit done.
+KITLRegisterDfltClient, service:2
Waiting for service 'KDBG' to connect..., fUseSysCalls = 0

回复评论 (6)

还有个疑问,看见网上有的朋友的编译信息中也打印出类似的
OEMIoControl: Unsupported Code 信息,但有的winCE可以启动起来,
我的内核出现这个错误到底是不是影响到winCE不能正常启动的关键因素?
点赞  2009-4-28 12:55
我的可以起来的。
点赞  2009-4-28 13:33
有点复杂
点赞  2009-4-28 13:35
KernelIoControl调用要看注册表。注册表里面可以设置自动运行KernelIoControl的某个case,具体的你查一下
点赞  2009-4-28 14:00
引用: 引用 4 楼 yashi 的回复:
KernelIoControl调用要看注册表。注册表里面可以设置自动运行KernelIoControl的某个case,具体的你查一下


PCI 总线驱动程序通过关联的物理设备使用或生成的值

Irq  DWORD 或 MULTI_SZ  可选。逻辑 IRQ 号

我查了注册表里Irq的值,

出错的是OEMIoControl: Unsupported Code 0x10100b4
找不到像"Irq"=dword:180 这样的值

我这样查法对吗?是不是我理解错你的意思了
点赞  2009-4-28 14:24
KernelIoControl不一定是中断申请的,还有别的用途的。
点赞  2009-4-29 07:19
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复