STM32之NVIC

2023-11-17

STM32(Cortex-M3) 中NVIC(嵌套向量中断控制)的理解

一、STM32 (Cortex-M3) 中的优先级概念

   STM32(Cortex-M3)中有两个优先级的概念:抢占式优先级和响应优先级,也把响应优先级称作“亚优先级”或“副优先级”,每个中断源都需要被指定这两种优先级。

1. 何为占先式优先级(pre-emption priority)

   高占先式优先级的中断事件会打断当前的主程序/中断程序运行—抢断式优先响应,俗称中断嵌套。

2. 何为副优先级(subpriority)

   在占先式优先级相同的情况下,高副优先级的中断优先被响应;

   在占先式优先级相同的情况下,如果有低副优先级中断正在执行, 高副优先级的中断要等待已被响应的低副优先级中断执行结束后才能得到响应—非抢断式响应(不能嵌套)。

3. 判断中断是否会被响应的依据

   首先是占先式优先级,其次是副优先级;

   占先式优先级决定是否会有中断嵌套;

   Reset、NMI、Hard Fault 优先级为负(高于普通中断优先级)且不可调整。

4. 优先级冲突的处理

   具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断的嵌套,或者说高抢占式优先级的中断可以嵌套低抢占式优先级的中断。

   当两个中断源的抢占式优先级相同时,这两个中断将没有嵌套关系,当一个中断到来后,如果正在处理另一个中断,这个后到来的中断就要等到前一个中断处理完之后才能被处理。如果这两个中断同时到达,则中断控制器根据他们的响应优先级高低来决定先处理哪一个;如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个。

5. Cortex-M3中对中断优先级的定义

   既然每个中断源都需要被指定这两种优先级,就需要有相应的寄存器位记录每个中断的优先级;在Cortex-M3中定义了8个比特位用于设置中断源的优先级,这8个比特位可以有8种分配方式,如下:

所有8位用于指定响应优先级
最高1位用于指定抢占式优先级,最低7位用于指定响应优先级
最高2位用于指定抢占式优先级,

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32之NVIC 的相关文章

  • Spring boot 读取配置文件(application.yml)中的属性值

    1 引入依赖 span class hljs comment lt 支持 64 ConfigurationProperties 注解 gt span span class hljs tag lt span class hljs title
  • 解决:invalid application of `sizeof' to incomplete type `({anonymous})'错误

    这个错误的原因 xff1a sizeof不能用在extern变量 xff0c sizeof 的计算发生在代码编译 的时刻 extern 标注的符号 在链接的时刻解析 所以 sizeof 不知道 这个符号到底占用了多少空间 发生错误的程序是这
  • Flex学习笔记2——第一个Flex程序

    Flex的调试 1 使用trace 相当于alert 2 使用firefox调试 下载debug版本的firefox flash player插件 下载插件HttpFox FlashTracer Cache Status 三个插件 Flas
  • ASP + SQL Server聊天室设计实例

    ASP SQL Server聊天室设计实例 目 录 第一章 绪论 1 1 设计思想 1 2 开发工具和相关技术简介 第二章 聊天室总体分析和设计 2 1 聊天室的运行原理 2 2 聊天室的功能 2 3 聊天室的页面结构设计 2 4 聊天室的
  • springboot读取yaml数组配置

    前提 我们常见的读取方式 test list TEST LIST http xxx com http ac com http cd com list2 http xxx com http ab com Configuration publi
  • 推荐:个人时间跟踪工具 ManicTime

    http www cnblogs com zhoujg archive 2011 12 08 1645901 html 推荐 个人时间跟踪工具 ManicTime 在 个人管理 目标管理之前 你会时间管理吗 中我介绍的时间管理三阶段之一 对
  • c# global::

    Global 表示所有命名空间的根部 Global asa 文件的作用主要是用于站点或虚拟目录下程序的数据共享和多线程 在 global asa 中 可以声明 Application 事件和 Session 事件 并可以声明一些 Sessi
  • AndroidManifest.xml文件综合详解

    http www cnblogs com hnrainll archive 2011 10 26 2225710 html 一 重要性AndroidManifest xml是Android应用程序中最重要的文件之一 它是Android程序的
  • [Flex]在TextArea中嵌入圖像

    TextArea的htmlText支持多種html標簽 如 a b br font img 等 這裏使用 img 標簽來將圖片嵌入到TextArea中 img 標簽可用于嵌入JPEG GIF PNG及SWF等媒體文件到文本框中 文本會自動分
  • DirectShow--用GraphEdit辅助调试

    前面的话 GraphEdit 微软的SDK里面有个DirectShow的辅助工具GraphEdit 这里的文字简单介绍如何将应用程序生成的GraphBuilder插入到GraphEdit中直观的显示 可能一开始我们对这种应用有点儿不理解 既
  • Android面试常用面试题

    1 Android手机横竖屏切换的问题及其解决方案 默认情况下 横竖屏切换的时候 系统会销毁当前的Activity 然后新建一个Activity 显然 太浪费资源了 http www cnblogs com zhangkai281 arch
  • Transaction rolled back because it has been marked as rollback-only

    http hsyd iteye com blog 586772 错误信息 Transaction rolled back because it has been marked as rollback only 原因 事务提交多次 检查代码
  • SuspendThread 造成程序死锁的一个例子

    msdn对SuspendThread 的说明 This function is primarily designed for use by debuggers It is not intended to be used for thread
  • jstl详解

    原文地址 http www blogjava net maverick1003 articles 236575 html JSTL标签库的使用是为类弥补html表的不足 规范自定义标签的使用而诞生的 在告别modle1模式开发应用程序后 人
  • 页面之间传递值方法

    方式1 在接收页 的html代码里加上一行 WebForm1 fp WebForm1 Context Handler this TextBox1 Text fp name name 是第一页的public变量 Context 提供对整个当前
  • 为什么每个程序执行都有内核地址空间和程序地址空间?

    为什么每个用户态的程序映射到虚拟地址空间 都需要有内核地址空间和程序地址空间呢 因为程序地址空间最终都会调用系统调用 也就是内核的东东 所以每个程序要想执行 就必须有内核地址空间 也必须有程序地址空间 所用的application程序要想使
  • EL表达式语言

    引用 http blog 163 com s zhchluo blog static 1501470820075205739439 基本语法 一 EL简介 1 语法结构 expression 2 与 运算符 EL 提供 和 两种运算符来存取
  • 创建任意程序为系统服务

    网上流传的创建系统服务的方法我看着真麻烦 把我自己弄的很简单的代码共享下 create SERVICENAME bat ECHO OFF sc delete SERVICENAME sc create SERVICENAME start a
  • WPF自学篇--第一篇--Hello world

    主要知识点为 1 WPF如何修改启动页面 2 如何写Hello Word Sample 内容 1 由于专案是先加window wpf想加web wpf是调试找启动页面找了很久 终于发现在app config中Application下 Sta

随机推荐

  • pread介绍

    1 先来介绍pread函数 root bogon mycode cat test c include
  • QT中的事件

    目录 1 QT事件 1 1 事件介绍 1 2 事件的处理 2 键盘事件 2 1 keyPressEvent 2 1 1 判断某个键按下 2 1 2 组合键操作 3 鼠标事件 3 1 鼠标单击事件 3 2 鼠标释放事件 3 3 鼠标双击事件
  • vim 常用命令

    文本替换 s 替换 g global 全部 如果不加g则只会替换每行第一个word1 1 20s hello helloworld g 将1 20行中的 hello 替换为 helloworld 统计字符串出现次数 s pattern gn
  • innerHTML 用法

    用法 比如在中写了如下的代码 div div 现在用top innerHTML 的方法就可以向这个id的位置写入HTML代码了 例如top innerHTML
  • 啊哈c语言 潦草的初步笔记(3)

    第四章 while 当while后面 中的关系表达式为真时 即成立时才执行 种的内容 读作 mod 也称作 取模 作用是获取余数 的左右两边必须是整数 表示除号 作用是获取商 的左右两边可以是整数也可以是小数 等待 语句 Sleep 注意S
  • 20. 异常处理

    Hi 大家好 我是茶桁 在我们日常使用Python或者其他编程语言的时候 不可避免的都会出现报错和异常 那么 我们今天就来谈谈异常 什么是异常 异常异常 根据名字简单理解 那就是非正常 也就是没有达到预期目标 异常呢 其实就是一个事件 并且
  • CAP原理的证明

    CAP概述 C Consistency 一致性 A Availability 可用性 P Partition Tolerance分区容错性 CAP理论的核心是 一个分布式系统不可能同时很好的满足一致性 可用性和分区容错性这三个需求 最多只能
  • 【业务功能118】微服务-springcloud-springboot-Kubernetes集群-k8s集群-KubeSphere-OpenELB部署及应用

    OpenELB部署及应用 一 OpenELB介绍 网址 openelb io OpenELB 是一个开源的云原生负载均衡器实现 可以在基于裸金属服务器 边缘以及虚拟化的 Kubernetes 环境中使用 LoadBalancer 类型的 S
  • jquery子窗体操作父窗体中的元素

    1 在父窗口中操作子窗口中的元素 如 其中 iframe1是iframe的ID 1 选中IFRAME中的所有单选钮 window frames iframe1 document find input type radio attr chec
  • 华为云云耀云服务器L实例评测|云耀云服务器L实例部署paperless-ngx文档管理系统

    华为云云耀云服务器L实例评测 云耀云服务器L实例部署paperless ngx文档管理系统 一 云耀云服务器L实例介绍 1 1 云耀云服务器L实例简介 1 2 云耀云服务器L实例特点 二 paperless ngx介绍 2 1 paperl
  • SWAPIDC服务器销售模板,记录利用swapidc搭建IDC销售网站教程

    现在免空泛滥 所以写这么一篇教程吧 一 准备工作 首先你要准备一台服务器 其中推荐使用国外的Vultr 系统使用Centos6 方便实验 也可以用我的IDC服务器 不推荐使用国内的 因为域名需要备案 容易引起访问错误 使用SSH登陆服务器后
  • CA6140数控化改装设计(论文+CAD图纸)

    摘要 随着我国工业生产的发展 机械工业即将面临着一个十分重要的课题 设备改造 本设计就是对CA6140车床的机械部分 进行数控改造 数控改造主要是简化机械传动机构 缩短传动链 提高自动化程度 也是为了解决复杂的零件加工 精度控制及提高产品质
  • [从零开始学DeepFaceLab-15]: 使用-命令行八大操作步骤-第6步:模型的选择与训练 - 进阶 - 打开Windows的GPU加速开关

    目录 前言 第1章 来自DeepFaceLab模型训练的提醒 第2章 打开该开关的意义
  • 2017校招 360 笔试题 编程题 内存管理

    内存管理 时间限制 C C 语言 1000MS 其他语言 3000MS 内存限制 C C 语言 65536KB 其他语言 589824KB 题目描述 物联网技术的蓬勃发展 各种传感器纷纷出现 小B所在的项目组正在开发一个物联网项目 她们在研
  • 基线检查工具_高效液相色谱法35问35答,鬼峰、基线漂移、拖尾、分叉峰等系列问题一步到位!(上篇)...

    按分离机制的不同 高效液相色谱法可以分为液固吸附色谱法 液液分配色谱法 正相与反相 离子交换色谱法 离子对色谱法及分子排阻色谱法 这些方法在使用的过程中往往会遇到诸如鬼峰 基线漂移 拖尾 分叉峰 保留时间漂移 柱压过高等系列问题 该如何解决
  • 线段树Segment tree(1):单点修改,区间查询

    问题描述 给定数列a 1 a 2 a N 依次进行Q次操作 操作有两类 1 i x 给定i x 将a i 加上x 2 l r 给定i x 求 i l r
  • 两年外包生涯做完,感觉自己废了一半....

    先说一下自己的情况 大专生 17年通过校招进入湖南某软件公司 干了接近2年的点点点 今年年上旬 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了五年的功能测试 已经让我变得不思进取 谈了1年的女朋友
  • 国内外自然语言处理(NLP)研究组

    博客地址 http blog csdn net wangxinginnlp article details 44890553 排名不分先后 收集不全 欢迎留言完善 中国大陆地区 腾讯人工智能实验室 Tencent AI Lab https
  • linux自增窗口状态——KwindowSystem篇

    前言 之前曾翻译过 X Desktop Group 今天分享一下如何自定义状态 此篇讲述如何通过kwindowsystem新增状态 以及设置状态的过程 窗口有不同的属性 状态 允许Action等等信息 以使窗口管理器来确定窗口的装饰 堆叠位
  • STM32之NVIC

    STM32 Cortex M3 中NVIC 嵌套向量中断控制 的理解 一 STM32 Cortex M3 中的优先级概念 STM32 Cortex M3 中有两个优先级的概念 抢占式优先级和响应优先级 也把响应优先级称作 亚优先级 或 副优