用KernelIoControl获取逻辑中断号失败

andyhere 2009-10-20 12:43:42
我想使用EINTT4作按键中断输入.定义如下:

UINT32 g_EINTIrq = IRQ_EINT4;
UINT32 g_EINTSysIntr = SYSINTR_UNDEFINED;
PUBLIC DWORD CPK_Init(DWORD dwContext)
{

//在虚拟内存中申请一段虚拟内存,返回申请到的虚拟内存起始地址
v_pIOPRegs = (volatile IOPreg*)VirtualAlloc(0, sizeof(IOPreg), MEM_RESERVE, PAGE_NOACCESS);
b_IOREG=VirtualCopy((PVOID)v_pIOPRegs,(PVOID)IOP_BASE, sizeof(IOPreg),PAGE_PHYSICAL|PAGE_READWRITE|PAGE_NOCACHE);
// 使能 EINT4 引脚为中断引脚, 并为下降沿触发
EINT_ConfigInterruptPin(4);
///从OAL申请一个SYSINTR值
if (!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR,
&g_EINTIrq, sizeof(DWORD),
&g_EINTSysIntr, sizeof(DWORD), NULL))
{
RETAILMSG(1, (TEXT("ERROR: CPKey: Failed to request sysintr value for EINT interrupt.\r\n")));
return(0);
}

// 返回不为0的数
return (1)
}
可是输出"ERROR: CPKey: Failed to request sysintr value for EINT interrupt.", 获取逻辑中断号失败.
我改变了几个IO口,如:EINT11,EINT17,EINT19.都是一样的错误!
请各位大侠不吝指点迷津!
...全文
109 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
嘿喽 2010-08-27
  • 打赏
  • 举报
回复
我有同样的问题,不知楼主解决了没有?
sunrain_hjb 2009-10-23
  • 打赏
  • 举报
回复
那就在你能申请成功的代码处,将中断号改为IRQ_EINT4试试看呢?
andyhere 2009-10-23
  • 打赏
  • 举报
回复
我用的是wince 5.0.
我用的BSP中有一个KEYBD的驱动,它也用了
///从OAL申请一个SYSINTR值
if (!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR,
&g_EINTIrq, sizeof(DWORD),
&g_EINTSysIntr, sizeof(DWORD), NULL))
这样的方式申请中断号的,但它能成功!

gooogleman 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sunrain_hjb 的回复:]
楼主用的什么操作系统,WinCE5.0还是6.0?
[/Quote]

两个都一样的,获取失败是否是OAL没有处理好呢
sunrain_hjb 2009-10-21
  • 打赏
  • 举报
回复
楼主用的什么操作系统,WinCE5.0还是6.0?
Ei 2009-10-20
  • 打赏
  • 举报
回复
首先看看你的BSP 支不支持 动态映射逻辑中断
xqhrs232 2009-10-20
  • 打赏
  • 举报
回复
看看错误码是多少?

&g_EINTIrq, sizeof(DWORD), ----字节个数计算是对的吗?
guopeixin 2009-10-20
  • 打赏
  • 举报
回复
ce默认支持最大64个irq和SYSINTR的映射,而一般情况下硬件上的中断也不会超过64个,不大可能是超过了最大限制的失败。
你错误的时候,oal里面有打印出来什么错误的log信息么?
在其他的地方有没有建立过静态映射?
wliaoc 2009-10-20
  • 打赏
  • 举报
回复
http://blog.csdn.net/yearafteryear/archive/2009/10/19/4699254.aspx
看看这里,做的是6*6的按键,源文件,注册表操作都很详细,好好看看。

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧