• 35 操作系统-中断代理-8295A


     

    参考

    https://blog.51cto.com/13475106/category6.html及狄泰软件相关课程

    Q:不同外设如何下个处理器发送中断信号?当多个外设同时产生中断时,如何进行处理?
    已知可以通过引脚与外设相连,但是实际上外设过多,同时产生中断,会产生错误,同时高速的CPU与低速的外设相连也是不符合实际的。这时需要一个中间代理来处理中断-8259A(两者之间的交互变简单)
    操作系统-中断代理-8295A

    一.8259A-可编程中断控制器

    1.可通过编程对8259A进行功能设置
    2.屏蔽外设中断,对中断进行优先级判决
    3.向处理器通过中断向量
    操作系统-中断代理-8295A
    过程为:当一个外设与8259A相接时,首先会通过中断屏蔽寄存器(8个字节),在这里进行配置屏蔽(为0时放行,1时屏蔽),剩下的中断会进入中断请求寄存器,接下来通过INT引脚通知处理器,处理器进行应答,接下来会会通过PR优先判别,最后通过ISP对其寄存器进行处理(置1),最后处理器通过中断服务程序对外设进行处理,结束之后会在ISP将其置0.
    操作系统-中断代理-8295A操作系统-中断代理-8295A
    8259A工作方式

    a.中断触发方式

    1.边沿触发-中断引脚电平变化的一瞬间认为中断申请到来(上升沿触发)
    2.电平触发-中断引脚上的信号保持稳点电平一定时间后认为中断申请到来

    b.数据连接方式

    1.非缓存方式-将8259A直接与数据总线相连
    2.缓冲方式-将8259A通过总线驱动器和数据总线相连

    c.中断优先方式

    1.固定优先级方式-优先级由高到低(这样会使得最低位的中断永远不会实现)
    2.自动循环方式-某一中断请求被响应后,该中断源优先级自动为最低
    3.特殊循环方式-通过编程指点其中断源优先级称为最低,其他中断源优先级自动改变

    d.中断嵌套方式

    1.完全嵌套方式(默认)-执行中断服务程序期间,不响应本级中断和较低级中断
    2.特殊完全嵌套方式-执行中断服务程序期间,可响应本级中断,不想要较低级中断

    e.中断屏蔽方式

    1.普通屏蔽方式-将IMR中的某一位置为1,屏蔽掉相应级别的中断请求
    2.特殊屏蔽方式-未被屏蔽的中断源均可在某个中断服务程序中相应,即低优先级中断可以打断正在服务的高优先级中断

    f.中断结束方式

    1.自动结束方式(适用于非多重中断的情况)-8259A自动清除ISR中已制位的优先级最高的位
    2.手动结束方式-在中断服务程序的最后,向8259A发中断结束命令,将ISR中相应的位清除,表明中断服务程序已完成

  • 相关阅读:
    windows下 python2 和python3 共存
    利用xshell远程连接centos安装oracle11g时在图形界面登录
    本地导入/导出远程oracle数据库
    centos7安装桌面环境
    普通用户修改.bash_profile 权限问题
    centos7 安装oracle11g
    Unable to fetch some archives ,maybe run apt-get update or try with --fix-missing?
    spring mvc 使用ehcache
    leaflet创建简单地图
    【BZOJ 3958】 3958: [WF2011]Mummy Madness (二分+扫描线、线段树)
  • 原文地址:https://www.cnblogs.com/lh03061238/p/14503601.html
Copyright © 2020-2023  润新知