3023|4

68

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请问一个中断问题 [复制链接]


我在oal层OEMInterruptHandler函数中定义
else if(ulVic2Irq & INT2_GPIO)
        {
        gpioAIntrState=*GPIO_INTSTATUSA;
       if(gpioAIntrState & 0x40)
           {
              *GPIO_AEOI=0x40;//CANINTTER_GPIO;            
              RETAILMSG(1,(TEXT("*---*startsysintr CANhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\r\n")));

           }
      *VIC2_INTCLEAR = INT2_GPIO;
          retval=SYSINTR_CAN;
        }
而且我产生中断的时候也执行了RETAILMSG(1,(TEXT("*---*startsysintr CANhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\r\n")));

说明isr已经返回了系统中断号SYSINTR_CAN;
我在驱动中定义
pCanInfo->hInterEvent=CreateEvent(0,FALSE,FALSE,NULL);
        if(!pCanInfo->hInterEvent)
        {
        RETAILMSG(1,(TEXT("CAN:CreateEvent_Faileaaaaaaaaaaaaaaaaaaaa")));
        }

        if(!InterruptInitialize(SYSINTR_CAN,pCanInfo->hInterEvent,NULL,0))
        {
                RETAILMSG(1,(TEXT("InterruptInitialize Failed!!hhhhhhhhhhhhhhhhhhhhhhhhhh\n")));
        }
   
       pCanInfo->hInterThread=CreateThread(NULL,
                               0,
                                               CanIST,
                                                   pCanInfo,
                                                   CREATE_SUSPENDED,
                                                   0);
   if(!pCanInfo->hInterThread)
        {
            RETAILMSG(1,(TEXT("CANTHREAT:CREATETHREAD_FALSEhhhhhhhhhhhhhhhhhhhhhhhhhh\n")));
            return 0;
        }

        dwISTPriority=100;//250;

        if(!CeSetThreadPriority(pCanInfo->hInterThread,dwISTPriority))
        {
                RETAILMSG(1,(TEXT("CeSetThreadPriority Failed!!hhhhhhhhhhhhhhhhhhhhhhhhhh\n")));
        }
我在ist中WaitForSingleObject(pCanInfoIST->hInterEvent,INFINITE);
产生中断后驱动中却没有反应,请问这是为什么啊?
我觉得这些设置的没错啊,请兄弟们帮忙了。

最新回复

现在发现系统启动之前就给中断信号,加载了我的驱动之后就可以正常响应我的中断ist,系统启动之后就不行了。  详情 回复 发表于 2007-1-17 09:41
点赞 关注

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
不好意思就剩20分了,请大家帮忙了,一定给分
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
自己顶一下吧
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(初级)

4
 
我发现我给了中断信号后返回三条信息

1:61172 PID:e3fd4f66 TID:23f5e63e *---* start sysintr CANhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
2: 61172 PID:e3fd4f66 TID:23f9e002 Prefetch Abort: Thread=83fa3db8 Proc=820290b0 'device.exe'
3: 61173 PID:e3fd4f66 TID:23f9e002 AKY=00000005 PC=01ea1338 RA=01ea1338 BVA=01ea1338 FSR=00000005
第一条是我在OEMInterruptHandler中添加的 表示响应了中断,后两句好像是预取异常的提示,我不知道该怎么解决了。
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

5
 
现在发现系统启动之前就给中断信号,加载了我的驱动之后就可以正常响应我的中断ist,系统启动之后就不行了。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表