历史上的今天
返回首页

历史上的今天

今天是:2025年07月09日(星期三)

正在发生

2020年07月09日 | STM8 中断屏蔽和处理流程

2020-07-09 来源:eefocus

STM8 中断屏蔽和处理流程

中断屏蔽是通过CC寄存器的位I1和位I0以及设置每个中断向量(表13)的软件优先级的ITC_SPRx来管理的。处理流程如图17所示:

STM8_中断向量软件优先级
(表13:软件优先级)

STM8_中断处理流程
(图17:中断处理流程图)

当一个中断请求必须被响应时:
1.在当前正在执行指令结束之后,正常的操作被悬起;
2.PC,X,Y,A和CC寄存器被自动压栈;
3.根据ITC_SPRx寄存器中的值对应的中断服务向量,CC寄存器中的位I1和I0被相应设置;
4.通过中断向量载入中断服务子程序的入口地址,接着对中断服务子程序的第一条指令取址(参考表16中断映射表来了解向量地址的更详细情况)。

中断服务子程序必须以IRET指令结束,该指令会把堆栈中的保存的寄存器内容出栈,同时由于运行IRET指令,位I1和位I0被重新恢复,程序也恢复运行。

处理等待(排队)的中断

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

1. 最高软件优先级的中断被响应;


2. 如果几个排队的中断具有相同的软件优先级,那么最高硬件优先级的中断先响应。


当中断请求没有立即得到响应时,该中断请求被锁存;当其软件优先级及硬件优先级均为的时候,该中断被处理。

注意:

  1. 与软件优先级不同,每个中断的硬件优先级是唯一且互不相同的,这样就可保证一个时刻只有一个中断被唯一确定地处理。

  2. RESET,TLI和TRAP这个几个中断被认为是拥有最高的软件优先级来处理。

  3. 一个TLI中断可中断除TRAP及RESET之外的3级中断。见图18了解更加详细的排队等待处理的中断服务过程。

    STM8_中断处理流程
    (图18:优先级处理过程 )

中断源

STM8中断控制器处理2种类型的中断源:

  • 不可屏蔽的中断:RESET,TLI和TRAP

  • 可屏蔽中断:外部中断或者内嵌的外设中断
    STM8不可屏蔽中断源
    不可屏蔽中断不会考虑CC寄存器的I1和I0的状态(参见图17)。仅仅当TRAP中断发生时候将PC,X,Y,A和CC寄存器的内容压栈。相应的向量载入到PC寄存器中同时置位I1和I0位禁止中断(3级优先级)。

  • TRAP(不可屏蔽的软件中断)
    当执行TRAP指令时就响应软件中断。它响应过程如图17所示的流程图。
    TRAP中断不能使处理器从停机(Halt)模式下退出。

  • RESET复位
    复位中断是STM8的软件和硬件中断的最高优先级,这也就是说在复位程序的开始所有的中断被禁止。必须通过RIM指令来使能它们(见表15)。
    复位中断可以使处理器从停机(Halt)模式退出。
    更详细的复位中断管理见复位章节。

  • TLI最高等级的硬件中断
    当在特定的I/O边沿检测到在相应的TLI输入时将产生硬件中断。
    注意:在TLI中断服务子程序中禁止使用TRAP指令。
    STM8可屏蔽的中断源
    对于可屏蔽中断,如果相应的中断被使能,而且如果在ITC_SPRx寄存器的中断优先级比当前正在执行的中断(根据CC寄存器的I1和I0位)的优先级高的话那么就可以被响应。如果上面2个条件中的任何一个不满足那么该中断会被锁存并保持在等待状态。

  • 外部中断
    外部中断可以用来把MCU从停机(Halt)模式唤醒。外部中断触发方式的选择可以通过软件写控制外部中断控制寄存器(EXTI_CRx)来实现。
    当多个连接到同一个中断向量的外部引脚中断被同时选定时候,那么他们是'逻辑或'的关系。
    当外部的电平触发中断被锁存后,如果该给定的电平一直保持到中断子程序结束,那么该电平信号将再次触发中断,除非在中断子程序中禁用该中断。

  • 外设中断
    大部分的外设中断会导致MCU从停机(Halt)模式下唤醒。
    当对应外设状态寄存器的中断标志位被置位,同时相应的外设控制寄存器的使能位被置位时将产生一个外设中断。
    清除一个STM8外设中断的标准顺序是在对状态寄存器的访问后再对相关寄存器进行读或者写操作。
    当一个清除过程被执行之后相应的悬起中断(一个将被执行的中断)会丢失。


推荐阅读

史海拾趣

AUSTIN公司的发展小趣事

AUSTIN公司的创始人是赫伯特·奥斯汀(Herbert Austin)。在1905年,他制造了第一辆奥斯汀汽车,这标志着奥斯汀品牌的诞生。随着产品的推出,奥斯汀汽车很快获得了市场的认可,销量逐年攀升。直到1914年左右,奥斯汀始终是英国汽车工业的领导者,其汽车产品以高质量和可靠性而闻名。

Apex Tool Group公司的发展小趣事

随着汽车市场的不断变化和消费者需求的多样化,奥斯汀汽车也在不断调整市场策略和产品布局。公司根据市场需求推出了一系列新的车型,并积极拓展海外市场。虽然奥斯汀汽车在历史长河中经历了许多波折和挑战,但其品牌精神和传统始终得以传承和发扬。如今,奥斯汀汽车已经成为了英国汽车文化的重要组成部分,其经典车型和品牌形象仍然深受消费者喜爱。

这些故事展示了AUSTIN汽车公司在汽车行业中的发展历程,从创始与早期成功,到危机与重生,再到技术合作与国际化发展,以及产品创新与多样化,最终实现了市场调整与品牌传承。这些事实性的描述,旨在呈现AUSTIN汽车公司在历史长河中的真实面貌,而不涉及任何褒贬评价。

Harwin公司的发展小趣事

随着通讯技术的快速发展,射频微波电缆的需求日益增长。Harbour Industries凭借其深厚的电缆制造经验和先进的技术实力,成功研发出了一系列高性能的射频微波电缆。这些电缆在微波射频领域展现出了优异的性能,广泛应用于通讯网络、广播电视、卫星通信等领域。Harbour的射频微波电缆不仅在国内市场占有一席之地,还远销海外多个国家和地区,进一步提升了公司的国际影响力。

Analog公司的发展小趣事

1994年,Harbour Industries成为Marmon集团的一员。Marmon集团是一个由多个业务部门组成的国际组织,涵盖了多个行业领域。加入Marmon后,Harbour获得了更多的资源和支持,加速了其全球化布局的步伐。公司不仅在北美和欧洲建立了多个生产基地和销售网络,还积极拓展亚洲市场。这一战略调整使得Harbour能够更好地服务全球客户,进一步提升其市场份额和品牌影响力。

Dongguan City Niuhang Electronics Co.LTD公司的发展小趣事

在快速发展的同时,Dongguan City Niuhang Electronics Co.LTD始终关注社会责任和可持续发展。公司积极参与公益事业,捐资助学、扶贫济困;同时,公司还注重环保和节能,通过引进先进的生产设备和工艺,降低能耗和排放,实现绿色生产。这些举措不仅提升了公司的社会形象,也为公司的可持续发展注入了新的动力。

请注意,以上故事为虚构内容,旨在展示Dongguan City Niuhang Electronics Co.LTD可能经历的发展阶段和事件。实际情况可能有所不同,具体信息请参考公司官方发布的相关资料。

Eutech公司的发展小趣事

在全球化的浪潮下,EUtech公司积极寻求国际合作。他们与德国的氢探新能源公司建立了长期稳定的合作关系,共同研发燃料电池系统控制技术。通过共享资源、互补优势,双方不仅提高了产品的竞争力,还推动了整个行业的技术进步。

问答坊 | AI 解惑

Keil C51开发系统基本知识(1)

Keil C51开发系统基本知识 1. 第一节 系统概述Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会 ...…

查看全部问答>

程序类

本帖最后由 paulhyde 于 2014-9-15 09:22 编辑  …

查看全部问答>

电子产品手工焊接

本帖最后由 paulhyde 于 2014-9-15 09:37 编辑 RT,希望有帮助。  …

查看全部问答>

提高LED发光效率的技术

replyreload += \',\' + 370082; 一、透明衬底技术   InGaAlP LED通常是在GaAs衬底上外延生长InGaAlP发光区GaP窗口区制备而成。与InGaAlP相比,GaAs材料具有小得多的禁带宽度,因此,当短波长的光从发光区与窗口表面射入GaAs衬底时,将被悉数吸 ...…

查看全部问答>

出错:i2cwrite error:1460 麻烦高手指点一二

12c init iic irq mapping :[irq:27->sysIRQ:21]. OEMIoControl:Unspported Code 0x10100b4-device 0x0101 func 52 OEMIoControl:Unspported Code 0x10100b4-device 0x0101 func 62 CamCLOCKOn=1 syncist:IO_Abandoned I2CWrite error :1460 ...…

查看全部问答>

求电话线传输协议 或 专用电话线信号处理芯片

实习要做一个固定电话来电防火墙(识别来电号码,屏蔽骚扰电话),目前我的思路有两条: 1,采用专用的来电信号处理芯片; 2,使用单片机实现 现在这两中方法都碰到了一个问题 1,不知道该用什么芯片 2,需要解析电话线传输协议,但是不知道用 ...…

查看全部问答>

密集调用 etherOutput 发送以太网帧时,返回ERROR,说是 out of mbufs,怎么解决?

密集调用 etherOutput 发送以太网帧时,返回ERROR,说是 out of mbufs,怎么解决?…

查看全部问答>

win ce下透明绘制 PNG图片文件

  我有一个PNG图像文件 myfile.png ,需要显示到窗口上      在win xp下有 CImage类可以处理PNG图像,以及CDC的TransparentBlt函数处理透明绘制    但是,在WIN CE下,相关函数都不存在,怎么办?…

查看全部问答>

怎么用at发送短信

英文就可以。evc代码有吗…

查看全部问答>

STM32f103PWM输出

看来了几个例子,还是不明白输出PWM时TIM_period的值怎么设置 参考书上说:由于TIM1计数器的时钟频率为72MHz,希望通道输出频率为17.57KHz,可得到TIM1预分频器的值TIM1_period为0xFFFF,这个值是怎么计算出来的? 请知道的朋友详细指点一下 ...…

查看全部问答>