TI中文支持网
TI专业的中文技术问题搜集分享网站

关于中断服务函数如何响应?

在CCS6.2的帮助中,发现如下中断配置例程:

An example of using CpIntc during runtime to plug the ISR handler for System interrupt 15 mapped to Host interrupt 8 on Hwi 7.
  Int eventId;Hwi_Params params;Error_Block eb;// Initialize the error blockError_init(&eb);// Map system interrupt 15 to host interrupt 8 on Intc 0CpIntc_mapSysIntToHostInt(0, 15, 8);// Plug the function and argument for System interrupt 15 then enable itCpIntc_dispatchPlug(15, &myEvent15Fxn, 15, TRUE);// Enable Host interrupt 8 on Intc 0CpIntc_enableHostInt(0, 8);// Get the eventId associated with Host interrupt 8eventId = CpIntc_getEventId(8);// Initialize the Hwi parametersHwi_Params_init(&params);// Set the eventId associated with the Host Interruptparams.eventId = eventId;// The arg must be set to the Host interruptparams.arg = 8;// Enable the interrupt vectorparams.enableInt = TRUE;// Create the Hwi on interrupt 7 then specify 'CpIntc_dispatch'// as the function.Hwi_create(7, &CpIntc_dispatch, &params, &eb);

这里 myEvent15Fxn 为自定义函数,CpIntc_dispatch 为内部函数,当系统中断事件发生时,应该会执行myEvent15Fxn,
那么将 Host interrupt 再关连到硬件中断7的作用是什么,如果不关连就是不会执行 myEvent15Fxn吗?
既然已经指定中断服务函数 myEvent15Fxn,CpIntc_dispatch作用是什么?
Shine:

host interrupt再关联到硬件中断7是CPU interrupt,请看一下面的图示。

Interrupt Topology High-Level Block Diagram.png

http://processors.wiki.ti.com/index.php/Configuring_Interrupts_on_Keystone_Devices#HWI

Yongshan Cui:

回复 Shine:

谢谢您的回答,还是不太明白 

CpIntc_dispatch作用是什么?

Yongshan Cui:

回复 Shine:

谢谢您的回答!

不好意思,那个链接看得不够细致。

函数 CpIntc_dispatch 执行硬件中断发生时的必要操作,清除系统中断事件,响应中断服务函数。

在读到该例程时没明白函数 CpIntc_dispatch 的作用,是因为以前在配置硬件中断时并没有关联 CpIntc_dispatch ,而是直接关联中断服务函数,也能正常响应,但在自己的服务函数中需要进行事件清除操作。

现在明白了,再次感谢!

赞(0)
未经允许不得转载:TI中文支持网 » 关于中断服务函数如何响应?
分享到: 更多 (0)