博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
中断和异常
阅读量:5322 次
发布时间:2019-06-14

本文共 1000 字,大约阅读时间需要 3 分钟。

中断和异常相似,都是暂停正在执行的程序去执行其他的,以后还要再转回来。这里要解决两个问题,一个是如何来设置响应的事件类型,另一个是响应某个事件来干什么。

中断有两种,一种是内部中断,有int 调用。另一种是外部中断。

外部中断分为可屏蔽中断和不可屏蔽中断。

不可屏蔽中断要于IF(interrupt flag)无关,直接由cpu来接收。对应的向量号为2.

可屏蔽中断由8259A可编程中断处理器接受然后转给cpu。可根据优先级选择响应某个中断,可设置打开关闭某个中断。

8259A有两片,每片有8根中断信号线。两片是级联连接的。也就是一个连在另一个上,所以共有15个中断信号线。

好,如何来响应事件类型,就好似解决将某个中断信号线和某个中断向量对应起来,通过设置8259A就可以。

如何设置呢?下面是初始化的过程步骤不能颠倒。

1.往端口20h(主片)或A0h(从片)写入ICW1.(011h)

2.往端口21h(主片)或A1h(从片)写入ICW2.

3.往端口21h(主片)或A1h(从片)写入ICW3.(端口21h:004h端口A1h:002h)

4.往端口21h(主片)或A1h(从片)写入ICW4.(001h)

可看到主片对应了20h和21h两个端口,从片对应了A0h和A1h两个端口。

至于ICW(initralization command word)来做一些设置,我没这里只关注ICW2,它来设置对应关系。

ICW2

 7 6 5 4 3 2 1 0

低三位来表示是那个中断地址线,高5位来表示中断向量号。这样就对应了起来。如ICW2=020h,则表示0-7号中断地址线对应20h-27h中断向量(这边不是太理解)。

另外还需注意ICW3,这里来选择是哪一个中断地址线链接下级,八位对应八个端口,哪个端口置1哪个端口链接下一级。

接下来是OCW(operation contral word),三个。用来控制打开或关闭中断或通知中断结束。

如何操作关闭中断呢?,屏蔽哪个中断只需往21h或A1h写入OCW1就可以了,对应位置1.

通知中断结束呢?只需往21h或A1h写入OCW2就可以了。(设为21h就行)

??非常不明白,各种ICW,各种OCW怎么区分。

 

 

 

 

转载于:https://www.cnblogs.com/Jinux/archive/2012/04/10/2440989.html

你可能感兴趣的文章
ASP.NET 4.5 Web Forms and Visual Studio vs2013年入门1
查看>>
SDK目录结构
查看>>
malloc() & free()
查看>>
HDU 2063 过山车
查看>>
高精度1--加法
查看>>
String比较
查看>>
Django之Models
查看>>
CSS 透明度级别 及 背景透明
查看>>
Linux 的 date 日期的使用
查看>>
PHP zip压缩文件及解压
查看>>
SOAP web service用AFNetWorking实现请求
查看>>
Java变量类型,实例变量 与局部变量 静态变量
查看>>
mysql操作命令梳理(4)-中文乱码问题
查看>>
Python环境搭建(安装、验证与卸载)
查看>>
一个.NET通用JSON解析/构建类的实现(c#)
查看>>
Windows Phone开发(5):室内装修 转:http://blog.csdn.net/tcjiaan/article/details/7269014
查看>>
详谈js面向对象 javascript oop,持续更新
查看>>
关于这次软件以及pda终端的培训
查看>>
jQuery上传插件Uploadify 3.2在.NET下的详细例子
查看>>
如何辨别一个程序员的水平高低?是靠发量吗?
查看>>