Cortex-M3 NVIC与中断控制

本文介绍了NVIC(可嵌套的向量中断控制器),它是Cortex-M3的重要组成部分,负责中断管理和控制。文章详细解释了NVIC的寄存器、中断配置的基础、中断的使能与除能、中断的悬起与解悬、中断优先级、活动状态等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NVIC简介

NVIC,可嵌套的向量中断控制器。是Cortex-M3不可分割的一部分,它与CM3内核的逻辑紧密耦合。NVIC与CM3内核同声相应,同气相求,相辅相成,里应外合,共同完成对中断的响应。

NVIC的寄存器以存储器映射的方式来访问,除了包含控制寄存器和中断处理的控制逻辑之外,NVIC还包含了MPU的控制寄存器、SysTick定时器以及调式控制。

NVIC共支持1至240个外部中断输入(通常外部中断写作IRQs,这里的“外部”是指CM3内核外部)。此外NVIC还支持一个永垂不朽的不可屏蔽中断(NMI)输入。

NVIC的访问地址是0xE000_E000。所有NVIC的中断控制/状态寄存器都只能在特权级下访问。不过有一个例外————软件触发中断寄存器可以在用户级下访问以产生软件中断。

中断配置基础

每个外部中断都在NVIC的下列寄存器中“挂号”:

  • 使能与除能寄存器
  • 悬起与解悬寄存器
  • 优先级寄存器
  • 活动状态寄存器

另外,下列寄存器也对中断处理有重大影响。

  • 异常掩蔽寄存器(PRIMASK、FAULTMASK、BASEPRI)
  • 向量表偏移量寄存器
  • 软件触发中断寄存器
  • 优先级分组位段

中断的使能与除能

CM3中可以有240对使能位/除能位,每个中断拥有一对。
这240个对子分布在8对32位寄存器中(最后一对没用完)。
欲使能一个中断,你需要写1到对应的SETENA位中;欲除能一个中断,你需要写1到对应的C

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时空旅客er

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值