7029|24

61

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

wince中断流驱动的问题 [复制链接]

我参照教程上编写的流驱动,采用外部中断,显示挂载成功,但是XXX_int()好像没有执行,我在该函数入口处输出了打印信息,结果没有显示,另外我感觉
DWORD PBT_IntrThread(PVOID pArg)
{
          DWORD ret;
         
        gPwrButtonIntrEvent = CreateEvent(NULL, FALSE, FALSE, NULL);

  

        if (!(InterruptInitialize(g_PwrButtonSysIntr, gPwrButtonIntrEvent, 0, 0)))
        {
                RETAILMSG(1, (TEXT("ERROR: PwrButton: Interrupt initialize failed.\r\n")));
                CloseHandle(gPwrButtonIntrEvent);
                return 0;
        }
         
       
        while (1)
        {
                 ret = WaitForSingleObject(gPwrButtonIntrEvent, INFINITE);
               
                 if((ret==WAIT_OBJECT_0)&&(g_bKillIST))
                   {
                              if(PBT_IsPushed())
                             {
                                 Sleep(20);
                                 if(PBT_IsPushed())
                                    {
                                            SetEvent(gReadKeyEvent[0]);
                                           
                                           
                                    }
                              }
           
                    }
                    else {
           
                              CloseHandle(gPwrButtonIntrEvent);
                              return 0;
           
                    }
                    InterruptDone(g_PwrButtonIrq);
          }
   
    return 1;
}
函数执行是不是有问题呢?中断服务线程应该是一只执行啊,if((ret==WAIT_OBJECT_0)&&(g_bKillIST))此条件不满足以后线程不就退出了???中断触发或者线程关闭,大家看看是不是有问题??
有一点我不明白的就是为什么我的XXX_INT也没有执行呢?挂载已经成功了,此函数不是在驱动加载的时候就执行的吗???请各位大侠解惑一下啊

最新回复

或者是两个中断关联到同一个事件,就是怕这一点不行才这样弄的,我试下看看可以不,谢谢先  , 呵呵  详情 回复 发表于 2010-1-22 17:02
点赞 关注

回复
举报

72

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
把你的DEF文件,注册表中关于这个驱动的内容,以及XXX_Init都帖出来看一下。

如果XXX_Init都没执行,后边的中断当然都不行了
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
中断线程应该是在XXX_Init初始化的吧,如果XXX_Init没执行后边肯定都没用,所以先要让XXX_Init执行成功。
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

4
 
在应用程序里用createfile打开总是失败,DllEntry有信息输出  注册表里也有,但是XXX_INIT里的打印信息却没有输出,入口第一条语句就是…………
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

5
 
注册表中要有"Prefix"="XXX"的内容,def文件中要有XXX_Init导出声明,驱动源文件中要有XXX_Init函数,且这三个地方的XXX要保持一致,要三个字符。
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

6
 
/**********************************/
PUBLIC DWORD  DSK_Init(DWORD dwContext)
{
        //PDISK           pDisk;
        DWORD    IDThread;
  //HMODULE  hmCore;
  
  RETAILMSG(1,(TEXT("INFO: PwrButton: lth modify!~~~01")));
  //while(1);  //LTH modify
  if(PBT_InitializeAddresses()==FALSE )
          return 0;
          RETAILMSG(1,(TEXT("INFO: PwrButton: lth modify!~~~02")));
  PBT_EnableInterrupt();
  RETAILMSG(1,(TEXT("INFO: PwrButton: lth modify!~~~03")));
  //从OAL请求一个SYSINTR值
  if (!KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &g_PwrButtonIrq, sizeof(UINT32), &g_PwrButtonSysIntr, sizeof(UINT32), NULL))
    {
        RETAILMSG(1, (TEXT("ERROR: PwrButton: Failed to request sysintr value for sw_reset button interrupt.\r\n")));
        return(0);
    }
    RETAILMSG(1,(TEXT("INFO: PwrButton: Mapped Irq 0x%x to SysIntr 0x%x.\r\n"), g_PwrButtonIrq, g_PwrButtonSysIntr));
  

  //RETAILMSG(1,(TEXT("PwrButton Initialize ...")));
  
         
                gPwrButtonIntrThread = CreateThread(0, 0, (LPTHREAD_START_ROUTINE) PBT_IntrThread, 0, 0, &IDThread);

                RETAILMSG(1, (TEXT(":::PwrButton  PBT_IntrThread ID = %x\r\n"), IDThread));

                if (gPwrButtonIntrThread == NULL)
                {
                        RETAILMSG(1, (TEXT(":::PwrButton  CreateThread() Fail\r\n")));
                        KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR,&g_PwrButtonSysIntr,sizeof(UINT32),NULL,0,NULL);
                        return 0;
                }
                gReadKeyEvent[0] = CreateEvent(NULL,FALSE,FALSE,NULL);
          gReadKeyEvent[1] = CreateEvent(NULL,FALSE,FALSE,NULL);
          RETAILMSG(1,(TEXT(":::pwrButton Initialize OK!!!!! ...")));
        return TRUE;
}
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

7
 
闂佸搫琚崕鍐诧耿閸涙潙瀚夋い鎺嗗亾缂佹锕㈠畷妤呭Ω閳轰礁濮ら柣鐘遍檷閸斿繘顢欓幋锔芥櫖鐎光偓閸愭儳娈�闂佽皫鍡╁殭缂傚稄鎷�闂佺懓鐡ㄩ悧鐐哄焵椤掑﹥瀚�濠电偛顦崝宀勫船閿燂拷
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

8
 
闂佸搫琚崕鍐诧耿閸涙潙瀚夋い鎺嗗亾缂佹锕㈠畷妤呭Ω閳轰礁濮ら柣鐘遍檷閸斿繘顢欓幋锔芥櫖鐎光偓閸愭儳娈�闂佽皫鍡╁殭缂傚稄鎷�闂佺懓鐡ㄩ悧鐐哄焵椤掑﹥瀚�濠电偛顦崝宀勫船閿燂拷
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

9
 
闂佸搫琚崕鍐诧耿閸涙潙瀚夋い鎺嗗亾缂佹锕㈠畷妤呭Ω閳轰礁濮ら柣鐘遍檷閸斿繘顢欓幋锔芥櫖鐎光偓閸愭儳娈�闂佽皫鍡╁殭缂傚稄鎷�闂佺懓鐡ㄩ悧鐐哄焵椤掑﹥瀚�濠电偛顦崝宀勫船閿燂拷
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

10
 
闂佸搫琚崕鍐诧耿閸涙潙瀚夋い鎺嗗亾缂佹锕㈠畷妤呭Ω閳轰礁濮ら柣鐘遍檷閸斿繘顢欓幋锔芥櫖鐎光偓閸愭儳娈�闂佽皫鍡╁殭缂傚稄鎷�闂佺懓鐡ㄩ悧鐐哄焵椤掑﹥瀚�濠电偛顦崝宀勫船閿燂拷
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

11
 
闂佸搫琚崕鍐诧耿閸涙潙瀚夋い鎺嗗亾缂佹锕㈠畷妤呭Ω閳轰礁濮ら柣鐘遍檷閸斿繘顢欓幋锔芥櫖鐎光偓閸愭儳娈�闂佽皫鍡╁殭缂傚稄鎷�闂佺懓鐡ㄩ悧鐐哄焵椤掑﹥瀚�濠电偛顦崝宀勫船閿燂拷
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

12
 
闂佸搫琚崕鍐诧耿閸涙潙瀚夋い鎺嗗亾缂佹锕㈠畷妤呭Ω閳轰礁濮ら柣鐘遍檷閸斿繘顢欓幋锔芥櫖鐎光偓閸愭儳娈�闂佽皫鍡╁殭缂傚稄鎷�闂佺懓鐡ㄩ悧鐐哄焵椤掑﹥瀚�濠电偛顦崝宀勫船閿燂拷
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

13
 
闂佸搫琚崕鍐诧耿閸涙潙瀚夋い鎺嗗亾缂佹锕㈠畷妤呭Ω閳轰礁濮ら柣鐘遍檷閸斿繘顢欓幋锔芥櫖鐎光偓閸愭儳娈�闂佽皫鍡╁殭缂傚稄鎷�闂佺懓鐡ㄩ悧鐐哄焵椤掑﹥瀚�濠电偛顦崝宀勫船閿燂拷
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

14
 
闂佸搫琚崕鍐诧耿閸涙潙瀚夋い鎺嗗亾缂佹锕㈠畷妤呭Ω閳轰礁濮ら柣鐘遍檷閸斿繘顢欓幋锔芥櫖鐎光偓閸愭儳娈�闂佽皫鍡╁殭缂傚稄鎷�闂佺懓鐡ㄩ悧鐐哄焵椤掑﹥瀚�濠电偛顦崝宀勫船閿燂拷
 
 
 

回复

91

帖子

0

TA的资源

一粒金砂(初级)

15
 
闂佸搫琚崕鍐诧耿閸涙潙瀚夋い鎺嗗亾缂佹锕㈠畷妤呭Ω閳轰礁濮ら柣鐘遍檷閸斿繘顢欓幋锔芥櫖鐎光偓閸愭儳娈�闂佽皫鍡╁殭缂傚稄鎷�闂佺懓鐡ㄩ悧鐐哄焵椤掑﹥瀚�濠电偛顦崝宀勫船閿燂拷
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

16
 
闂佸搫琚崕鍐诧耿閸涙潙瀚夋い鎺嗗亾缂佹锕㈠畷妤呭Ω閳轰礁濮ら柣鐘遍檷閸斿繘顢欓幋锔芥櫖鐎光偓閸愭儳娈�闂佽皫鍡╁殭缂傚稄鎷�闂佺懓鐡ㄩ悧鐐哄焵椤掑﹥瀚�濠电偛顦崝宀勫船閿燂拷
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

17
 
闂佸搫琚崕鍐诧耿閸涙潙瀚夋い鎺嗗亾缂佹锕㈠畷妤呭Ω閳轰礁濮ら柣鐘遍檷閸斿繘顢欓幋锔芥櫖鐎光偓閸愭儳娈�闂佽皫鍡╁殭缂傚稄鎷�闂佺懓鐡ㄩ悧鐐哄焵椤掑﹥瀚�濠电偛顦崝宀勫船閿燂拷
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

18
 
闂佸搫琚崕鍐诧耿閸涙潙瀚夋い鎺嗗亾缂佹锕㈠畷妤呭Ω閳轰礁濮ら柣鐘遍檷閸斿繘顢欓幋锔芥櫖鐎光偓閸愭儳娈�闂佽皫鍡╁殭缂傚稄鎷�闂佺懓鐡ㄩ悧鐐哄焵椤掑﹥瀚�濠电偛顦崝宀勫船閿燂拷
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

19
 
闂佸搫琚崕鍐诧耿閸涙潙瀚夋い鎺嗗亾缂佹锕㈠畷妤呭Ω閳轰礁濮ら柣鐘遍檷閸斿繘顢欓幋锔芥櫖鐎光偓閸愭儳娈�闂佽皫鍡╁殭缂傚稄鎷�闂佺懓鐡ㄩ悧鐐哄焵椤掑﹥瀚�濠电偛顦崝宀勫船閿燂拷
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

20
 
闂佸搫琚崕鍐诧耿閸涙潙瀚夋い鎺嗗亾缂佹锕㈠畷妤呭Ω閳轰礁濮ら柣鐘遍檷閸斿繘顢欓幋锔芥櫖鐎光偓閸愭儳娈�闂佽皫鍡╁殭缂傚稄鎷�闂佺懓鐡ㄩ悧鐐哄焵椤掑﹥瀚�濠电偛顦崝宀勫船閿燂拷
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
有奖探索 | 和村田一起,深挖 GNSS 开发!
活动时间:即日起-5月11日
活动奖励:智能手环、螺丝刀套装、双肩包

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

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

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

北京市海淀区中关村大街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
快速回复 返回顶部 返回列表