中断

程序运行过程中,系统外部、内部或者程序本身若出现紧急事件,处理机立即中止当前程序的运行,自动转入相应的处理程序(中断服务程序),待处理完后,再返回原来的程序运行,这个过程称为程序中断。

中断又可分为屏蔽中断和非屏蔽中断两类.可由程序控制其屏蔽的中断称为屏蔽中断或可屏蔽中断。屏蔽时处理机将不接受中断。反之,不能由程序控制其屏蔽,处理机一定要立即处理的中断称为非屏蔽中断或不可屏蔽中断。非屏蔽中断主要用于断电、电源故障等必须立即处理的情况。处理机响应中断时,不需执行查询程序。

中断处理过程

按照事件发生的顺序,中断过程包括:
①中断源发出中断请求;
②判断当前处理机是否允许中断和该中断源是否被屏蔽;
③优先权排队;
④处理机立即停止当前程序,保护断点地址和处理机当前状态,转入相应的中断服程序;
⑤执行中断服务程序;
⑥恢复被保护的状态,执行“中断返回”指令回到被中断的程序或转入其他程序。

中断名次解释:中断断点、中断源、中断请求、中断响应、中断服务程序、中断嵌套、中断返回、中断屏蔽、保护现场、回复现场、中断优先级

中断源分类

STM8中断控制器处理2种类型的中断源:
● 不可屏蔽的中断: RESET,TLI 和 TRAP
● 可屏蔽中断: 外部中断或者内嵌的外设中断
不可屏蔽中断源
● TRAP软件中断
当执行TRAP指令时就响应软件中断
● RESET 复位中断
复位中断是STM8的软件和硬件中断的最高优先级,这也就是说在复位程序的开始所有的中断被禁止。(9种复位方法)
● TLI硬件中断
最高级别的硬件中断,在STM8S208MB芯片的PD7引脚上

可屏蔽的中断源
● 外部中断
通常由外部的信号触发,可以是低电平或者边沿触发中断。
● 外设中断
除了CPU内核体系以外的资源。比如AWU、CLK、CAN、SPI、TIM、UART、I2C、ADC、FLASH等等。

中断优先级

当多个外设以中断方式与CPU进行数据交换时,可能遇到两个或两个以上外设中断请求同时有效的情形。在这种情况下,CPU先响应哪一外设的中断请求?这就涉及到中断优先级问题。一般说来,为了能够处理多个中断请求,中断控制系统均提供中断优先级控制。有了中断优先级控制后,就可以解决多个中断请求同时有效时,先响应哪一请求中断问题,以及高优先级中断请求可中断低优先级中断处理进程,实现中断嵌套。
有时为避免某一处理过程被中断,中断控制器给每一个中断源都设置了一个中断请求屏蔽位,用于屏蔽(即禁止)相应中断源的中断请求,当某一中断源的中断请求处于禁止状态时,即使该中断请求有效,CPU也不响应,相当于中断源的中断开关。此外,还设一个总的中断请求屏蔽位,当该位处于禁止状态时,CPU忽略所有中断源的中断请求,相当于中断源总开关。

中断控制器功能

● 硬件中断的管理
─ 所有 I/O 引脚都具有外部中断能力,每一个端口都有独立的中断向量以及独立的标志。
─ 外设中断能力
● 软件中断的管理(TRAP)
● 具有灵活的优先级和中断等级管理,支持可嵌套的或同级中断管理:
– 多达4个软件可编程的嵌套等级
– 最多有32个中断向量,其入口地址由硬件固定
– 2 不可屏蔽的事件: RESET, TRAP
– 1个不可屏蔽的最高优先级的硬件中断 (TLI)

中断屏蔽和处理流程

硬件优先级从低到高按如下顺序给定,即 MAIN, IT4,IT3,IT2,IT1,IT0 和TRAP。
通过设定 ITC_SPRx 寄存器的相应的 I1_x 和 I0_x 位来配置每一个中断向量的软件优先级。

当一个中断请求必须被响应时:

  1. 在当前正在执行指令结束之后,正常的操作被悬起;
  2. PC,X,Y,A和CC寄存器被自动压栈;
  3. 根据ITC_SPRx寄存器中的值对应的中断服务向量,CC寄存器中的位I1和I0被相应设置;
  4. 通过中断向量载入中断服务子程序的入口地址,接着对中断服务子程序的第一条指令取址。
    中断服务子程序必须以IRET指令结束,该指令会把堆栈中的保存的寄存器内容出栈,同时由于运行IRET指令,位I1和位I0被重新恢复,程序也恢复运行。

处理等待(排队)的中断

同一时间可以有几个中断排队等待处理。中断响应是根据如下两步来决定的:

  1. 最高软件优先级的中断被响应;
  2. 如果几个排队的中断具有相同的软件优先级,那么最高硬件优先级的中断先响应。
    当中断请求没有立即得到响应时,该中断请求被锁存;当其软件优先级及硬件优先级均为最高的时候,该中断被处理。
    嵌套模式,软件优先级都是相同的,非嵌套模式,软件优先级不同。


注意:
1 与软件优先级不同,每个中断的硬件优先级是唯一且互不相同的,这样就可保证一个时刻只有一个中断被唯一确定地处理。
2 RESET, TLI 和 TRAP 这个几个中断被认为是拥有最高的软件优先级来处理。
3 一个TLI中断可中断除TRAP及RESET之外的3级中断。

外部中断

STM8S为外部中断事件专门分配了五个中断向量:
● Port A 口的5个引脚:PA[6:2]
● Port B 口的8个引脚:PB[7:0]
● Port C 口的8个引脚:PC[7:0]
● Port D 口的7个引脚:PD[6:0]
● Port E 口的8个引脚:PE[7:0]
PD7 是最高优先级的中断源 (TLI)。

中断指令

CPU CC 寄存器中断位

软件优先级寄存器 x (ITC_SPRx)

x表示1-8,有8个寄存器。

外部中断控制寄存器 1 (EXTI_CR1)

外部中断控制寄存器 1 (EXTI_CR2)

STM8 中断控制器(ITC)相关推荐

  1. 8259A中断控制器详细介绍

    中断的来源除了来自于硬件自身的NMI中断和来自于软件的INT n指令造成的软件中断之外,还有来自于外部硬件设备的中断,这些中断是可屏蔽的.这些中断也都通过PIC(Programmable Interr ...

  2. 初识片选信号和中断控制器

    片选信号 片选存储芯片的片选 小总结: cpu 发出的片选信号,寻找相应的存出控制器,进行数据的存取 存储控制器和外设相连,按照所需要的协议接口进行调用,驱动外设. 1.确定外设和cpu相连的管脚 2 ...

  3. 嵌入式linux 添加中断,《嵌入式linux应用程序开发完全手册》中断控制器操作(外部中断)学习笔记...

    <嵌入式linux应用程序开发完全手册>中断控制器操作(外部中断)学习笔记 一.ARM中断体系 当一个"异常"发生时,或者说当收到一个中断触发信号时,ARM9将会自动完 ...

  4. STM32震动感应控制继电器(使用循环VS使用外部中断EXTI和中断控制器NVIC)

    参考:stm32的外部中断 震动感应 控制 继电器 作者:点灯小哥 发布时间: 2021-03-05 22:37:01 网址:https://blog.csdn.net/weixin_46016743 ...

  5. ARM中断分析之一:中断控制器和CPU、外设的关系

    "中断控制器"也是CPU众多外设中的一个,不同的是,它一方面接收其它外设中断引脚的输入,另一方面,它会发出中断信号给CPU.下图是一张中断控制器外设的框图,s3c2410的框图. ...

  6. 扩展中断控制器8259实验_「正点原子FPGA连载」第十三章双核AMP实验

    1)摘自[正点原子]领航者 ZYNQ 之嵌入式开发指南 2)实验平台:正点原子领航者ZYNQ开发板 3)平台购买地址:https://item.taobao.com/item.htm?&id= ...

  7. 中断触发流程三(中断控制器)

    这一篇主要说说中断控制器,及GPIO中断触发与中断号的识别,为什么GPIO引脚的触发最后调用特定的中断例程,这中间是怎么联系起来的.现在知道的是request_irq只是在特定的中断号 链表中注册了一 ...

  8. 扩展中断控制器8259实验_PCIe的中断机制

    出于向下兼容的需要,PCIe完全继承了PCI的所有的中断特性(包括INTx,MSI/MSIx).但是与PCI不同的是,PCIe使用串行总线尽量减少pin的使用,所以对于INTX类型的中断,它没有使用s ...

  9. GIC通用中断控制器

    1. GIC简介 操作系统中,中断是很重要的组成部分.有了中断系统才可以不用一直轮询(polling)是否有事件发生,系统效率才得以提高.一般在系统中,中断控制分为三个部分:模块.中断控制器和处理器. ...

最新文章

  1. java qq协议 c#,C# WebQQ协议群发机器人(三)
  2. Git单人本地仓库操作
  3. %matplotlib inline %config InlineBackend.figure_format = “retina为了将图片嵌入notebook及提高分
  4. Redis主从+KeepAlived实现高可用
  5. Spring Boot 如何快速改造老项目?
  6. 【AI产品】如何让Google的AI给你捕捉最美的自拍瞬间
  7. ppt如何旋转流程图_张伟随笔37:我书写方程式和画流程图的方法
  8. wp8.1 Study11:APP里文件读写和使用XML和Json序列化
  9. cif是目的港交货吗_刚接手出口业务,搞不懂FOB? CIF? 为你科普→
  10. 在线扒站复活版可预览网站html源码
  11. Cadence PSpice 仿真5:运放噪声仿真实战图文教程
  12. Null(空值)和 Undefined(未定义)
  13. october cms_October CMS静态页面入门
  14. 竟然可以在Windows下用Nvim写代码?1.基础配置环境与安装nvim
  15. 计算机论文的字体要求,关于计算机硕士论文格式要求 论文字体格式
  16. Mac上安装R语言运行环境及RStudio [超详细!~]
  17. 不可多得的干货!互联网公司常用分库分表方案汇总!太完整了!
  18. 《卓有成效的管理者》阅读思路分析
  19. Arcgis实例操作8---地形高程分析、提取该DEM数据的水文坡长、提取山顶点数据
  20. 单线程读单线程写一个变量是否一定要加锁

热门文章

  1. Build U-Boot(基于TI AM64)
  2. 拒绝服务攻击(DOS和DDOS)
  3. python3基础18
  4. mxgraph html5,mxgraph进阶(四)mxGraph再启程
  5. 电脑键盘上方的功能键有时候不能用
  6. spire.doc转化word文件
  7. ubuntu开放端口
  8. 全网通手机插联通卡不显示无服务器,手机两张联通卡为什么只有一张有信号?其他一切正常?...
  9. 中国连接Internet的海底光缆
  10. 自然语言处理入门(3)——Word2Vec