免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4932 | 回复: 16
打印 上一主题 下一主题

[中断] 关于8259A中的8个引脚和中断号的关系 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-01-30 11:52 |只看该作者 |倒序浏览
8259a中的每个引脚是不是对应一个中断号,两个8259a芯片的话可以对应15个中断号。是不是每种外设就从相应的8259a引脚发送的?

论坛徽章:
59
2015年亚洲杯之约旦
日期:2015-01-27 21:27:392015年亚洲杯之日本
日期:2015-02-06 22:09:41拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015元宵节徽章
日期:2015-03-06 15:50:392015年亚洲杯之阿联酋
日期:2015-03-19 17:39:302015年亚洲杯之中国
日期:2015-03-23 18:52:23巳蛇
日期:2014-12-14 22:44:03双子座
日期:2014-12-10 21:39:16处女座
日期:2014-12-02 08:03:17天蝎座
日期:2014-07-21 19:08:47
2 [报告]
发表于 2013-01-30 12:59 |只看该作者
8259a中的每个引脚是不是对应一个中断号,两个8259a芯片的话可以对应15个中断号。是不是每种外设就从相应的8259a引脚发送的?


>> 8259a中的每个引脚是不是对应一个中断号
<< YES

>> 两个8259a芯片的话可以对应15个中断号
<< YES 8-1+8, typically in x86 0, 1, 2.0~2.7,3~7

>> 是不是每种外设就从相应的8259a引脚发送的?
<< NO, not "发送" but receive. the x86 cpu just has two int input port, NMI X1 & INT X1, 8259a lock the int signal and decide their priority, send the higest priority int to cpu @one time

论坛徽章:
0
3 [报告]
发表于 2013-01-30 13:29 |只看该作者
本帖最后由 cnppk 于 2013-01-30 13:39 编辑
folklore 发表于 2013-01-30 12:59
>> 8259a中的每个引脚是不是对应一个中断号
> 两个8259a芯片的话可以对应15个中断号
> 是不是每种外设 ...



一个8259a的引脚对应多个中断号?

论坛徽章:
0
4 [报告]
发表于 2013-01-30 13:42 |只看该作者
计算机中的外设非常多,如果一个IRQ只对应一种中断的话只有15个IRQ肯定不够呀。

论坛徽章:
0
5 [报告]
发表于 2013-01-30 14:06 |只看该作者
一个针脚不对应一个IRQ  比如主片与从片的INTR链接的那个针脚 就不是。

论坛徽章:
0
6 [报告]
发表于 2013-01-30 15:09 |只看该作者
要有上进心 发表于 2013-01-30 14:06
一个针脚不对应一个IRQ  比如主片与从片的INTR链接的那个针脚 就不是。



应该是一个IRQ引脚是不是对应多个中断号?

论坛徽章:
0
7 [报告]
发表于 2013-01-30 17:47 |只看该作者
本帖最后由 要有上进心 于 2013-01-30 17:52 编辑

可以这么说。

我似乎觉得,你好像认为中断号 是主片传给CPU的。。。。。。

在初始化命令字2中 是设置 8259a 所管理的中断向量的 基址

比如A片 icw2 为 0x20

那么 当irq0脚 电压上升时。就代表irq0脚有中断请求,中断号为 0x20. irq1的话 就是0x21 同时将IRR寄存器里面的相应位设为1

如果A片连接B主片的IRQ2脚。那么A片会通过 INT脚 向B的IRQ2脚发送中断请求。。。 B会通过中断优先级判决后。然后通过int脚向CPU发送中断请求。


然后CPU 发回两个inta应答(因为所有的8259a芯片的inta脚都和CPU的inta脚链接的,所有芯片都接收得到),主片先将 ISR 中的相应位设为1清除IRR中的相应位  然后 判断是否有从片。如果有 然后通过 cas 0 1 2向从片发送信号,信号的内容是 A片接B片上的针脚号。

从片接到cas后和icw3中设置的比对。如果相同 就在数据总线上 发送中断号,并在isr中设置相应位 清除IRR中的相应位。。随后CPU进入中断处理程序。。。。。。。。

在8259a发送中断请求之前 还有一个中断优先级的判决 这个和你问的问题没什么关系。。。

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
8 [报告]
发表于 2013-01-30 18:17 |只看该作者
cnppk 发表于 2013-01-30 13:42
计算机中的外设非常多,如果一个IRQ只对应一种中断的话只有15个IRQ肯定不够呀。


如果是 8259A 而不是 APIC, 那么就只有 15 个  IRQ, 一个引脚对应一个 IRQ, 外设可以超过15 个, 多个外设可以共用一个IRQ.
中断处理程序自己轮训所有共用同一个 IRQ 的设备。

论坛徽章:
0
9 [报告]
发表于 2013-01-30 19:18 |只看该作者
中断复用         

论坛徽章:
0
10 [报告]
发表于 2013-01-31 09:12 |只看该作者
zylthinking 发表于 2013-01-30 18:17
如果是 8259A 而不是 APIC, 那么就只有 15 个  IRQ, 一个引脚对应一个 IRQ, 外设可以超过15 个, 多个外 ...


恩,多个外设对应一个IRQ是轮循查询每个设备的驱动程序。APIC的IRQ好像是加到了24个
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP