- 论坛徽章:
- 7
|
本帖最后由 smalloc 于 2010-08-16 02:27 编辑
8259A上面的一段话:
当在2次INTA之间发生一个高优先级别的中断,则在第2次INTA时非使能INTR线.然后过一个不确定时间重新使能INTR线,这个不确定时间估计就是等待EOI结束.
整个过程看来就是仅仅是高优先级别的中断请求能被预先准备好而已.这个和屏蔽低优先级别的中断没什么关系.
而从处理器是内核角度看.执行的写EOI后内核的中断函数并没有执行完,
只要EFLAG的位不屏蔽.就能发生中断嵌套执行
从PIC硬件的的角度再说下边缘触发和水平触发的区别.
首先.PIC的 IRR寄存器才是真正存储中断请求的地方,而不是几个中断线管脚
也就是在一个PIC中断处理结束(即写EOI完成)后或空闲时间,PIC发现IRR有位置1就开始向处理器发请求
边缘模式和水平模式的区别是:
触发器不同而已
边缘模式是中断线上升边缘导致IRR相应位变成1
而水平模式是在一个时钟边缘如果中断线高电平则置相应IRR位为1
那么可以知道水平触发方式在写EOI后因为外设中断线仍然为高.这个时候会继续触发同一个中断.
所以先在写EOI前将本中断屏蔽掉.smalloc 发表于 2010-08-16 02:26 ![]() |
|