20楼#
发布于:2005-01-20 10:09
(1)你的中断是2号,#define SYSINTR_EXT2 (SYSINTR_FIRMWARE+4)这么定义会不会有问题啊?我觉得应该定义成
#define SYSINTR_EXT2 (SYSINTR_FIRMWARE+2) =============================================== 不解。 我的理解是在定义逻辑中断时,它是和硬件中断号是没有什么联系的;只需要将逻辑中断和相应的硬件中断挂起来就行。 不知道我的理解有没有不对的地方,请指正 |
|
21楼#
发布于:2005-01-20 10:24
你说的是有道理:))
但我的理解是: 理论上讲,逻辑中断是可以“任意定义”。但你可以看看oal里的定义,(SYSINTR_FIRMWARE+4)已经分配给其他中断了,也就是说可能有其他的ist(就叫它ist1吧)与这个逻辑中断相关联。试想想,当你返回这个逻辑中断的时候,那个ist1也应该被激活,这样就乱了。我是这么觉得的。如果不对,还请各位高手指教! |
|
|
22楼#
发布于:2005-01-20 10:35
老大,你的说法我理解,也确实是这样的
但是我定义前是 #define SYSINTR_PCMCIA_LEVEL (SYSINTR_FIRMWARE+4) 而我的系统里是不支持PCMCIA的 PB帮助的“Creating an Interrupt Identifier”也看了的 郁闷中 |
|
23楼#
发布于:2005-01-20 10:44
我的原来的OALINTR.H的定义是这样的
// These are the 'standard' interrupts #define SYSINTR_KEYBOARD (SYSINTR_FIRMWARE+0) .... #define SYSINTR_DMA9 (SYSINTR_FIRMWARE+24) #define SYSINTR_TOUCH_CHANGED (SYSINTR_FIRMWARE+25) 如果真是那样的话,难道我不能再定义我的新中断了吗? |
|
24楼#
发布于:2005-01-20 10:44
(1)如果是这样的话,应该也可以。
(2)现在能捕捉到中断吗? |
|
|
25楼#
发布于:2005-01-20 11:34
一调用 WaitForSingleObject 程序就自己跑出来了 :(
|
|
26楼#
发布于:2005-01-20 11:42
一调用 WaitForSingleObject 程序就自己跑出来了 :( 你是说中断产生后,WaitForSingleObject被释放,然后就从ist里面出来了吗? WaitForSingleObject函数应该在while“死循环”里面啊 |
|
|
27楼#
发布于:2005-01-20 11:57
还没产生中断呢
在IST里一调用WaitForSingleObject,程序就跳出IST了,应该是调用WaitForSingleObject不成功。 [编辑 - 1/20/05 by jinhualee] |
|
28楼#
发布于:2005-01-20 12:15
还没产生中断呢 (1)“tWaitForSingleObject successful!”没有显示出来,应该是因为wait函数阻塞在那里了吧。 (2)你怎么知道KeyIST停止执行,并跳出KeyIST了?你可以在while循环的后面加一个打印输出,看看是不是从while循环里跳出来了。 (3)hevInterrupt是全局变量是吗? |
|
|
29楼#
发布于:2005-01-20 12:30
1)不明白你说的意思,请详细给我讲讲,谢谢。
2)下面是代码: 3)是全局变量。 [编辑 - 1/21/05 by jinhualee] |
|
30楼#
发布于:2005-01-20 12:44
1)不明白你说的意思,请详细给我讲讲,谢谢。 (1)当你返回逻辑中断时,wai函数被释放,否则会一直阻塞在那里。 对了,在wai之前,判断一下hevInterrupt是否有效? (2)如果从ist里面出来了,下面这句应该执行, printf("tThe KeyIST Thread finish.n"); 你看到输出“The KeyIST Thread finish.”了吗? (3)你的ist是在你自己写的程序里实现的是吧? |
|
|
31楼#
发布于:2005-01-20 14:13
ist是对了
但是捕捉不到中断信号 我看看不是不使能寄存器没设置好 郁闷中哦 |
|
32楼#
发布于:2005-01-20 14:20
ist是对了 你确定有中断产生吗? |
|
|
33楼#
发布于:2005-01-20 15:57
这样才能确定中断产生呢?郁闷.....
|
|
34楼#
发布于:2005-01-20 16:17
(1)可以用示波器查看;
(2)不知道你的oeminterrupthandler里面是怎么处理这个中断的?你直接返回逻辑中断试试?如果有中断产生的话,ist至少能被激活一次。方便的话,把oeminterrupthandler中的代码贴出来,让大家帮分析一下。 |
|
|
35楼#
发布于:2005-01-20 16:32
告诉我你的邮件 我发给你吧
[编辑 - 1/21/05 by jinhualee] |
|
36楼#
发布于:2005-01-20 16:38
1) 我的是按键,中断脉冲当然是有的了。不知道你说用示波器看是什么意思?
|
|
37楼#
发布于:2005-01-21 08:27
1) 我的是按键,中断脉冲当然是有的了。不知道你说用示波器看是什么意思? 我的意思是: 你先用示波器看看按键后对应的中断线上是否有中断产生?如果中断有了,就好办了。 另外,我在msn中加你了。 |
|
|
上一页
下一页