dm642_PCI_INTA

时间:2020-10-03 09:12:07
【文件属性】:
文件名称:dm642_PCI_INTA
文件大小:11.79MB
文件格式:RAR
更新时间:2020-10-03 09:12:07
DM642 DM642中断 DM642 PCI 中断 DM642 PCI中断管脚G4管脚PINTA,板子上连在PCI的J1 A3管脚INTA#上 首先需要看一下DM642的HSR寄存器 其中INTAM位代表是否使能PINTA管脚,写入1标识不是能,写入0标识使能,该位为只写位,读返回0,另外需要注意该寄存器只能从PCI Host侧写操作,即只能通过驱动从PC机操作。 INTVAL表示中断是否产生,即中断标识位,可以用来判断是否是DM642的中断 接下来是中断产生控制寄存器RSTSRC 其中INTREQ位为PINTA中断触发位,向该位写1即触发一次PCI中断 INTRST位为中断清除位,产生中断后使用该位来清中断 配置流程: 1. 首先在API的OpenDevice()函数中增加PCI中断配置,即配置HSR寄存器 然后需要创建一个win32事件,并把这个事件的句柄传递到驱动层,其中函数lPciIntEventSet()函数即向驱动层传递句柄。 2. 驱动sys工程需要配置的地方, 在DeviceControl例程中增加句柄接收IO项 当然首先要声明以下: 然后是中断例程ISR,进入后首先判断HSR寄存器的INTVAL位是否为1,即判断是否这次的中断为DM642产生的,不是的话返回FALSE,如果是,则清除中断,然后调用中断回调例程DpcFor_Irq,在该回调例程中设置API传递过来的事件句柄,触发事件 3. 在应用程序中,可以使用WaitForSingleObject()函数来等待该事件,当然需要把API的OpenDevice函数中创建的事件句柄传递过来

网友评论