FreeRtos里的几个中断屏蔽

news2024/11/29 2:52:31

1、primask 寄存器

PRIMASK用于禁止除NMI和HardFalut外的所有异常和中断,使用方法:

cpsid i	; //设置primask (禁止中断)
cpsie i ;  //清除primask  (使能中断)

也可以

movs r0,#1
msr primask r0;   //将 1写入primask禁止所有中断


movs r0,#0
mar primask r0  //将0写入primask使能中断

2、faultmask寄存器

faultmask寄存器连HardFault都可以屏蔽掉,使用方法和primask类似:

cpsid f	; //设置faultmask (禁止中断)
cpsie f ;  //清除faultmask  (使能中断)

或者:

movs r0,#1
msr faultmask r0;   //将 1写入fault mask禁止所有中断


movs r0,#0
mar faultmask r0  //将0写入faultmask使能中断

3、basepri寄存器

 basepri寄存器的做法更细腻,可以屏蔽优先级低于某个阈值的中断(中断优先级号越低代表的优先级越高),例如:要屏蔽优先级不高于0x60的中断:

mov r0,#0x60
msr basepri, r0

取消对中断的屏蔽,可以直接将basepri清零

mov r0,#0
mar basepri,r0

FreeRtos的开关中断就是通过basepri寄存器实现的

例如: portDISABLE_INTERRUPTS()

 在这个中断里面打了个断点,debug了一下,当前系统中configMAX_SYSCALL_INTERRUPT_PRIORITY是0x10

然后portENABLE_INTERRUPTS()开中断

debug了一下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1318382.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mapreduce小试牛刀(1)

1.与hdfs一样,mapreduce基于hadoop框架,所以我们首先要启动hadoop服务器 --------------------------------------------------------------------------------------------------------------------------------- 2.修改hadoop-env.sh位置JAVA_HOME配…

QT QWidget - 跑马灯

简介 关于前面画了个圆,怎么样也得跑个灯, 只是基于布局创建LED Widget而非 QTableView/QTableWidget;实现步骤 实现LED Widget LEDWidget.cpp LEDWidget::LEDWidget(QWidget *parent): QWidget(parent), m_on(false) {}void LEDWidget::paintEvent(QPaintEvent …

Python redis安装使用教程

一、项目环境 Python 3.8.xredis-5.0.14 二、Redis 安装 下载地址:https://github.com/tporadowski/redis/releases 下载 Redis-x64-xxx.zip压缩包到你要安装的文件夹,解压即可 三、使用redis 打开一个 cmd 窗口,使用 cd 命令切换redis…

【C语言】实战项目——通讯录

引言 学会创建一个通讯录,对过往知识进行加深和巩固。 文章很长,要耐心学完哦! ✨ 猪巴戒:个人主页✨ 所属专栏:《C语言进阶》 🎈跟着猪巴戒,一起学习C语言🎈 目录 引言 实战 建…

C# DotNetCore AOP简单实现

背景 实际开发中业务和日志尽量不要相互干扰嵌套,否则很难维护和调试。 示例 using System.Reflection;namespace CSharpLearn {internal class Program{static void Main(){int age 25;string name "bingling";Person person new(age, name);Conso…

Oracle RAC环境下redo log 文件的扩容

环境: 有一个2节点RAC每一个节点2个logfile group每一个group含2个member每一个member的大小为200M 目标:将每一个member的大小有200M扩充到1G。 先来看下redo log的配置: SQL> select * from v$log;GROUP# THREAD# SEQUENCE# …

【SpringBoot零基础入门到项目实战①】解锁现代Java开发之门:深度探究Spring Boot的背景、目标及选择理由

文章目录 引言Spring Boot的背景和目标背景目标 为什么选择Spring Boot1. 简化配置2. 内嵌式容器3. 生态系统支持4. 大量的Starter5. 广泛的社区支持6. 适用于微服务架构7. 丰富的扩展机制 实例演示创建一个简单的Spring Boot应用 拓展与深入学习1. Spring Boot Actuator2. Spr…

深度学习 Day14——P3天气识别

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 文章目录 前言1 我的环境2 代码实现与执行结果2.1 前期准备2.1.1 引入库2.1.2 设置GPU(如果设备上支持GPU就使用GPU,否则使用C…

2023.12.16 关于 分布式系统 基本介绍

目录 单机架构 服务器负载过高问题 解决方法 分布式系统 引入更多的服务器节点 负载均衡 数据库读写分离 引入缓存 数据库分库分表 引入微服务 基本概念 应用(Application)/ 系统(System) 模块(Modul…

力扣刷题-二叉树-二叉树左叶子之和

404 左叶子之和 给定二叉树的根节点 root ,返回所有左叶子之和。 示例 1: 输入: root [3,9,20,null,null,15,7] 输出: 24 解释: 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24 思路 迭代法 迭代法理解…

python学习1补充

大家好,这里是七七,这个专栏是用代码实例来学习的,不是去介绍很多知识的。 话不多说,开始今天的内容 目录 代码1 代码2 代码3 代码4 代码5 学习1的总代码 代码1 groupeddf.groupby(单品编码) result{} groupeddf.groupb…

条款5:了解c++默默编写并调用了哪些函数

如果你不自己声明,编译器会替你声明(编译器版本的)拷贝构造函数、拷贝赋值运算符和析构函数。此外,如果你没有声明任何构造函数,编译器会为你声明一个默认构造函数。 class Empty{};本质上和写成下面这样是一样的: c…

英文论文降重修改技巧 papergpt

大家好,今天来聊聊英文论文降重修改技巧,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧,可以借助此类工具: 英文论文降重修改技巧 作为网站编辑,我们经常需要处理大量…

加密的艺术:对称加密的奇妙之处(下)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

菜鸟学习日记(python)——匿名函数

Python 使用 lambda 来创建匿名函数。 lambda 函数是一种小型、匿名的内联函数,它可以具有任意数量的参数,但只能有一个表达式。 匿名函数的一般格式如下: lambda 参数列表:表达式 表达式用于计算并返回函数结果 lambda 函数通常用于编写…

如何优雅地观察 Vue.js 3 中 localStorage 的变化?

为什么要这样做? 原生 localStorage 只能监听同源跨不同页面的变化。然而,对于单页面应用程序来说,这种方式并不实用。因此,我打算创建一个自定义钩子来监视 localStorage 中的变化。 方法 我们需要重写 localStorage 下的所有…

相机基础概念介绍

一.概念 Camera的成像原理 景物通过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上,然后转为模拟的电信号,经过 A/D(模数转换)转换后变为数字图像信号,再送到数字信号处理芯片&…

虚拟机下Ubuntu上网设置

文章目录 一、虚拟机上网的两种方式1.1 NAT模式(Network Address Translation)1.2 桥接模式(Bridge Mode)1.3 简介 二、实际配置2.1 NAT模式配置2.2 桥接模式配置 之前跟着博客配了好几个也没用,后来自己慢慢模式实践测…

机器学习---模型评估

1、混淆矩阵 对以上混淆矩阵的解释: P:样本数据中的正例数。 N:样本数据中的负例数。 Y:通过模型预测出来的正例数。 N:通过模型预测出来的负例数。 True Positives:真阳性,表示实际是正样本预测成正样…

波奇学Linux:进程终止

写时拷贝底层原理图 子进程谁先运行,由调度器决定 进程退出场景 代码运行完毕,结果正确:有返回值,返回0 代码运行完毕,结果不正确:有返回值,返回非0 代码异常终止。没有返回值 return 0的…