入门求助:2440的EINT中断驱动

cquyyang 2009-09-14 04:29:40
准备实现EINT中断驱动,所以参看了SMDK2440中Userkey驱动。

在Userkey.cpp文件中,有如下函数
BOOL InitInterruptThread()
{
...
KeyEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
if (!KeyEvent)
return FALSE;
bSuccess = InterruptInitialize(SYSINTR_USER_KEY, KeyEvent, NULL, 0);
...
}

请问InterruptInitialize函数中第一个参数SYSINTR_USER_KEY是怎么和硬件中断联系起来的?

...全文
92 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cshu001 2009-09-14
  • 打赏
  • 举报
回复
关于中断的问题 可以参考下这篇文章

http://blog.chinaunix.net/u2/83682/showart_1929359.html

里面分析的很不错.
licsyhzs 2009-09-14
  • 打赏
  • 举报
回复
SYSINTR_USER_KEY是逻辑中断号,是在PLATFORM\SMDK2440\INC\oalintr.h中定义的,在PLATFORM\SMDK2440\KERNEL\HAL\ARM\armint.c中与相应硬件中断关联。
lllchr88 2009-09-14
  • 打赏
  • 举报
回复
1.HC->hDMAREvent = CreateEvent(NULL, FALSE, FALSE, NULL);
定义一个事件

2.获得逻辑中断号 KernelIoControl( IOCTL_HAL_REQUEST_SYSINTR, &dwDMAIrq, sizeof(DWORD), &pHC->dwDMASysIntr, sizeof(DWORD), &dwRetSize )
3.将中断与事件绑定InterruptInitialize(pHC->dwDMASysIntr,pHC->hDMAISTEvent,0,0)
驱动中中断就这三个步骤
dding 2009-09-14
  • 打赏
  • 举报
回复
是一个宏定义,在intoal.h中的吧,具体的文件名忘了,代码很简单,一看就明白

19,520

社区成员

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

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