当前位置: 首页 > news >正文

中断事件触发时CPU与NVIC的协作机制详解

中断事件触发时CPU与NVIC的协作机制详解

一、中断触发阶段

当STM32的GPIO引脚检测到外部电平变化(如按键按下)时,中断响应流程开始:

  1. 外设信号触发‌:GPIO检测到预设的电平变化(上升沿/下降沿),通过EXTI(外部中断/事件控制器)线路发送中断请求信号‌12
  2. 中断标志置位‌:EXTI控制器将对应中断线的挂起寄存器(EXTI_PR)相应位置1,表示有中断待处理‌12
  3. NVIC接收请求‌:EXTI将中断信号传递给NVIC(嵌套向量中断控制器),NVIC根据中断编号(如EXTI0对应IRQn_EXTI0)记录该中断为"待定"(pending)状态‌34

二、NVIC处理阶段

NVIC作为中断管理的核心,执行以下关键操作:

  1. 优先级裁决‌:

    • 检查新中断的抢占优先级是否高于当前正在处理的中断(如果有)
    • 若优先级更高,NVIC会向CPU发出中断请求‌34
    • STM32使用4位优先级分组(0-15),分为抢占优先级和子优先级‌56
  2. 中断向量定位‌:

    • NVIC根据中断编号查找中断向量表,确定对应ISR(中断服务程序)的入口地址‌37
    • 例如EXTI0中断对应EXTI0_IRQHandler函数地址‌1
  3. 状态管理‌:

    • 将中断状态从"待定"(pending)改为"激活"(active)‌3
    • 若中断已被使能(通过ISER寄存器),则准备触发CPU响应‌4

三、CPU响应阶段

http://www.dtcms.com/a/290916.html

相关文章:

  • 20250720题解
  • 4N80-ASEMI开关电源领域专用4N80
  • mcu中的调试接口是什么?
  • repmgr+pgbouncer实现对业务透明的高可用切换
  • Apache Ignite Binary Object Restrictions
  • MS8847-双路 H 桥驱动器集成电路
  • Unity 基于Odin编辑器插件写了一个替换文件夹下所有Prefab中标记的Text或者Image颜色的工具
  • ACOT Buck输出电容大小的计算
  • fibonacci的4种实现
  • Unity之可视化编程VisualScripting快速入门
  • 1553啤酒品牌作为都洲武魂世界格斗冠军赛冠名赞助商
  • Jenkins pipeline触发下游流水线
  • 数据结构:反转字符串(Reversing a String)
  • 052_迭代器(Iterator / ListIterator)
  • HCL 三层知识总结
  • Java 二叉树
  • uniapp+vue3预约时间和日期
  • registry-ui docker搭建私有仓库的一些问题笔记
  • 在React中做过哪些性能优化?
  • java每日精进 7.21【Uel表达式和流程设计】
  • 【Elasticsearch】IndexModule
  • 【沧海拾昧】微分先行PID与中间微分反馈控制
  • 工业网关的应用场景
  • 【正常配置了beast扩展,phpinfo信息也显示了,但是就是不运行】
  • 前端-DOM
  • pandas 的series和dataframe的用法,六个题目
  • 141、环形链表
  • 前后端分离项目进阶1---后端
  • 果园里的温柔之手:Deepoc具身智能如何重塑采摘机器人的“生命感知”
  • Python day20 - 特征降维之奇异值分解