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

STM32F407 NVIC和外部中断

1、NVIC (嵌套向量中断控制器)

1.1、简介        

        NVIC (Nested vectored interrupt controller) 即嵌套向量中断控制器。所有的 Cortex-M 处理器都会提供 NVIC 用于中断处理,NVIC 是内核的中断管理核心,负责处理中断优先级、嵌套和调度。而在 Cortex-M4 微控制器中,NVIC 接收多个中断源产生的中断请求,如下图所示:

        Cortex-M4 的 NVIC 支持最多 240 个 IRQ(中断请求)、1 个不可屏蔽中断(NMI)、1 个 SysTick(系统节拍)定时中断及多个系统异常。多数 IRQ 由定时器、 I/O 端口和通信接口 (如 UART和 IIC) 等外设产生。 NMI 通常由看门狗定时器或掉电检测器等外设产生,其余的异常则是来自处理器内核,中断还可以由软件产生。
       

1.2、 中断介绍

        中断是异常的一种。异常是会改变程序流的事件,当其产生时处理器会暂停当前正在执行的任务,转而执行一段被称作异常处理的程序。在异常处理完毕后,处理器会继续正常执行程序指令。中断一般由外设或外部输入产生,又是也可以由软件触发。中断的异常处理也被称作中断服务程序 (ISR)。

          如下表中的 Cortex-M4 微控制器的中断源为系统异常。

         如下表以及表以后的类型的中断源均为外部中断输入。全表请去参照“STM32F4xx参考手册”。

         STM32F407 的中断向量表在 stm32f4xx.h文件中被定义。

         NVIC 相关寄存器的定义在 core_cm4.h文件中:

1.3、中断优先级

         对于 Cortex-M 处理器中断是否能被处理器接受以及何时被处理器接受并执行中断处理是由中断的优先级和处理器当前的优先级决定的。更高优先级的中断 (优先级编号更小) 可以抢占低优先级的异常 (优先级编号更大),这就是中断嵌套的情形。有些中断(复位、NMI 和 HardFault) 具有固定的优先级,其优先级由读书表示,这样它们的优先级就会比其他的中断高。其他中断则具有可编程的优先级,范围为 0 ~ 255。

        中断优先级由优先级寄存器控制,宽度为 3 ~ 8 位。假如设计中只实现了 3 位优先级,优先级配置寄存器如下图所示:

        由于 0~4 位未实现,它们读出总是为 0,对这些 bit 的写操作会被忽略。 这时只有 8 个可编程优先级0x00(高优先级)、0x20、0x40、0x60、0x80、0xA0、0xC0、0xE0(最低优先级)。

        如果设计中实现了 4 位优先级,优先级配置寄存器就如下图所示:

        这时会有 16 个可编程优先级。 实际可使用的位数越多,可用的优先级就越多。不过优先级位数多了以后门数也会增加,因此会加大芯片的功耗。

        优先级配置寄存器有 8 位宽度,本该有 256 个抢占优先级,但实际上只有 128 个抢占优先级。这是因为 8 位寄存器会被进一步分为两个部分:分组优先级和子优先级。上半部分(左边的位)为抢占(分组)优先级,而下半部分(右边的位)则为子优先级,如下图所示:

相关文章:

  • 从数据到决策:Ubuntu工控机的工业应用实践
  • assert断言的运用与实践
  • VBA 数据库同一表的当前行与其他行的主键重复判断实现方案2
  • 双写一致的门道
  • 主流大语言模型中Token的生成过程本质是串行的
  • Java基础系列:深入解析反射机制与代理模式及避坑指南
  • 江科大51单片机笔记【11】AT24C02数据存储秒表
  • 文心一言:中国大模型时代的破局者与探路者
  • pytorch 50 大模型导出的onnx模型优化尝试
  • linux环保监测4G边缘网关:环境数据的可靠传输者
  • 在基于Arm架构的华为鲲鹏服务器上,针对openEuler 20.03 LTS操作系统, 安装Ansible 和MySQL
  • 洛谷每日1题-------Day15__P1307 [NOIP 2011 普及组] 数字反转
  • EasyCVR平台赋能农业产业园:AIoT驱动的视频监控与大数据分析解决方案
  • 订单支付系统如何做到一致性
  • 自动控制原理【知识点总结、复习笔记】-2
  • OEM SQL Details and Session Details 5s 或者parallel 才会在sql monitor显示
  • 【Recon】CTF Web类题目主要类型
  • 【GPT入门】第1课准备环境
  • c语言笔记 数组指针
  • 英语开口说(先开口,再完善)——主动牺牲学习成本高昂的语法规则收益,来最大程度满足即刻对话交流需求
  • 攻击自己做的网站/百度浏览器网址
  • 在线数据分析网站/百度关键词代做排名
  • 如何做钓鱼网站/微信营销神器
  • 网站优化入门/广州网站优化服务
  • 网页单页设计/湖南seo优化排名
  • 绍兴cms建站模板/企业网络营销推广方案策划