首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >嵌入式系统的中断控制器(NVIC)

嵌入式系统的中断控制器(NVIC)

作者头像
用户2423478
发布2025-10-31 18:57:28
发布2025-10-31 18:57:28
790
举报
文章被收录于专栏:具身小站具身小站

1. NVIC的核心功能

NVIC通过硬件级中断管理、自动状态处理及低延迟优化,为实时系统提供确定性响应,是Cortex-M芯片实时性的基石。

中断优先级管理

  • 支持多级可编程优先级(通常4-8位,如STM32用4位实现16级优先级),分为抢占优先级(中断嵌套)和子优先级(同优先级排队)。
  • 优先级分组可配置(0-4组),适应不同场景需求(如无嵌套、完全抢占等)。

中断嵌套与低延迟处理

  • 高抢占优先级中断可立即打断低优先级中断,实现硬件级嵌套。
  • 通过尾链优化(Tail-Chaining) 和迟到中断处理(Late Arrival) 减少上下文切换时间,提升实时性。

中断向量化与自动状态保存

  • 中断触发时自动跳转至向量表地址,无需软件查询中断源。
  • 硬件自动保存/恢复现场(PC、PSR、R0-R3等寄存器),缩短延迟。

低功耗与唤醒控制

  • 支持睡眠、停止、待机模式下的中断唤醒(如EXTI、RTC中断)。
  • 软件可触发中断(NVIC_SetPendingIRQ()),用于调试或任务调度。

中断屏蔽与挂起

  • 通过PRIMASK寄存器屏蔽所有中断(除NMI和硬错误)。
  • 挂起寄存器(ISPR)管理延迟处理的中断

2. 选型

尽管NVIC是ARM Cortex-M内核标准组件,但各厂商会根据需求裁剪或扩展功能,不同芯片的NVIC实现差异本质是厂商对ARM标准的裁剪与扩展,开发时需查阅具体芯片手册,重点关注优先级位数、分组方式、唤醒源配置等。

STM32

  • 实时控制场景(如电机控制):优先选STM32(EXTI+NVIC协作灵活)。
  • 优先级分组固定:仅使用IP寄存器高4位,需通过NVIC_PriorityGroupConfig()分组。
  • 与EXTI协同:GPIO中断需先配置EXTI线,再映射至NVIC

TI芯片

  • 低功耗物联网:TI MSP432的深度休眠中断唤醒更具优势。
  • 完整NVIC支持:保留Cortex-M全部特性(如256级优先级)。
  • 低功耗强化:中断唤醒链路优化,响应时间短于通用Cortex-M。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 具身小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. NVIC的核心功能
  • 2. 选型
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档