STM32H750之FreeRTOS学习--------(四)中断管理

news2024/11/26 2:50:02

四、FreeRTOS中断管理

中断的概念不再过多叙述,学习过逻辑的都知道

中断的执行过程
  1. 中断请求 外设产生中断请求(GPIO外部中断、定时器中断等)
  2. 响应中断 CPU停止执行当前程序,转而去执行中断处理程序(ISR)
  3. 退出中断 执行完毕,返回被打断的程序处,继续往下执行
中断的优先级分组
  • ARM Cortex-M 使用了 8 位宽的寄存器来配置中断的优先等级

  • stm32只用了中断优先级配置寄存器的高4位 [7 : 4],四位最多16级中断优先级

image-20231101090500830

  • STM32 的中断优先级可以分为抢占优先级和子优先级
  • 分为两类优先级
    • 抢占优先级: 抢占优先级高的中断可以打断正在执行但抢占优先级低的中断
    • 子优先级:当同时发生具有相同抢占优先级的两个中断时,子优先级数值小的优先执行
  • 中断优先级数值越小越优先
设置中断优先级分组

共4位所以只有这5种分组方式

image-20231101090751406

  • 在Hal库中通过调用函数HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4)即可完成设置
  • HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4)在在HAL_Init()调用
中断优先级分组特点
  1. 只有低于configMAX_SYSCALL_INTERRUPT_PRIORITY优先级的中断里才允许调用FreeRTOS 的API函数
  2. 建议将所有优先级位指定为抢占优先级位,方便FreeRTOS管理(调用函数HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4)
  3. 中断优先级数值越小越优先,任务优先级数值越大越优先

image-20231101091046355

中断相关的寄存器
  • SHPR1寄存器地址:0xE000ED18
  • SHPR2寄存器地址:0xE000ED1C
  • SHPR3寄存器地址:0xE000ED20

image-20231101143243192

FreeRTOS配置PendSV和Systick中断优先级

image-20231101143413419

中断屏蔽寄存器

image-20231101143441104

  • FreeRTOS所使用的中断管理就是利用的BASEPRI这个寄存器
  • BASEPRI:屏蔽优先级低于某一个阈值的中断
  • BASEPRI设置为0x50,代表中断优先级在515内的均被屏蔽,04的中断优先级正常执行
  • BASEPRI屏蔽优先级低于某一个阈值的中断,当设置为0时,则不关闭任何中断

image-20231101143554542

  • 中断优先级在5 ~ 15的全部被关闭

当BASEPRI设置为0x50时:

image-20231101143829207

在中断服务函数中调度FreeRTOS的API函数需注意:

  1. 中断服务函数的优先级需在FreeRTOS所管理的范围内
  2. 在中断服务函数里边需调用FreeRTOS的API函数,必须使用带“FromISR”后缀的函数

*设置为0x50,代表中断优先级在515内的均被屏蔽,04的中断优先级正常执行

  • BASEPRI屏蔽优先级低于某一个阈值的中断,当设置为0时,则不关闭任何中断

[外链图片转存中…(img-3Bq4NEAv-1698820880665)]

  • 中断优先级在5 ~ 15的全部被关闭

当BASEPRI设置为0x50时:

[外链图片转存中…(img-h5ZWihIx-1698820880665)]

在中断服务函数中调度FreeRTOS的API函数需注意:

  1. 中断服务函数的优先级需在FreeRTOS所管理的范围内
  2. 在中断服务函数里边需调用FreeRTOS的API函数,必须使用带“FromISR”后缀的函数

image-20231101143947527

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

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

相关文章

SecureCRT 发送文件内容

当需要连接 Linux 服务器或设备的时候,SecureCRT 是一个利器。有一个工作场景是这样的,工程代码在服务器上编译完后运行,然后用 secureCRT 连接程序的指定端口(用 telnet ),连接上后就往端口里下发配置&…

在美团和阿里6年,很难却也真实...

先简单的说下,本人6年工作经验,曾就职于某大型国企,公司研究院成员,也就职过美团担任高级测试开发工程师,有丰富的高并发大型项目经验。 后端高并发、高性能、高可用性开发,自动化测试框架开发以及软件自动…

@机械装备企业,“专精特新”你需要这样做!

目录 生产过程有4个特点 三大管理难点 01 计划难管控 02 生产难协同 03 现场难管控 机械装备数字化建设怎么做? 01 计划管控 02 生产协同 03 现场数字化 从2021年7月至今,“专精特新”热度一直居高不下,但其实,这一词早在…

大数据可视化分析建模:每个人都是数据分析师

💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 第一部分:介…

【嵌入式项目应用】__cJSON基础介绍与代码测试

目录 前言 一、JSON是什么? 1. JSON 基本语法 2. JSON值(value)的类型 3. 逻辑值(true 或 false) 4. null 5. NUMBER 数字(整数或浮点数) 6. STRING 字符串(在双引号""中) 7…

ChatGLM3-6B详细安装过程记录(Linux)

先附上GitHub官方地址: https://github.com/THUDM/ChatGLM3https://github.com/THUDM/ChatGLM3 一、预览 咱们可以先看看完成之后的界面: 1. 基于 Gradio 的网页版 demo 运行以下命令即可打开界面: python web_demo.py 运行界面如下: 2. 基于 Streamlit 的网页版 de…

【23真题】难!均79分!211题目强过985!

今天分享的是23年海南大学838的信号与系统试题及解析。 本套试卷难度分析:22年海南大学838考研真题,我也做过,若有需要戳这里自取!平均分为80-90左右,最高分为133分。本套试题难度中等偏上,题量不多&#…

Python画图之草莓熊

Python-turtle画出草莓熊(有趣小游戏) 一、效果图二、Python代码 一、效果图 二、Python代码 # -*- coding: UTF-8 -*- import turtle as t# 设置背景颜色,窗口位置以及大小 t.colormode(255) # 颜色模式 t.speed(0) t.screensize(850, 760…

通过Python脚本支持OC代码重构实践(二):数据项提供模块接入数据通路的代码生成

作者 | 刘俊启 导读 在软件开发中,经常会遇到一些代码问题,例如逻辑结构复杂、依赖关系混乱、代码冗余、不易读懂的命名等。这些问题可能导致代码的可维护性下降,增加维护成本,同时也会影响到开发效率。这时通常通过重构的方式对已…

STM32智能小车(循迹、跟随、避障、测速、蓝牙、wife、4g、语音识别)总结

目录 1.电机模块开发 1.1 让小车动起来 1.2 串口控制小车方向 1.3 如何进行小车PWM调速 1.4 PWM方式实现小车转向 2.循迹小车 2.1 循迹模块使用 2.2 循迹小车原理 2.3 循迹小车核心代码 2.4 循迹小车解决转弯平滑问题 3.跟随/避障小车 3.1 红外壁障模块分析​编辑 …

Redis 应用问题

1-缓存穿透 1.1-问题描述 Key 对应的数据在数据源并不存在,每次针对此 Key 的请求从缓存获取不到,请求都会压到数据源,从而可能压垮数据源。 比如:用一个不存在的用户ID 获取用户信息,不论缓存还是数据库都没有&…

有哪些适合做小说推文的配音软件?

其实现在市面上的短视频配音软件数不胜数,怎样才能挑选到简单又实用的呢?今天我就来给你盘一盘各大配音软件的优缺点,大家可以根据自己的需求来选择合适的配音软件! 一、悦音配音 推荐指数★★★★★ 推荐理由:无需自…

SpringBoot SerializationUtils克隆(反序列化) 类加载器不一致问题(ClassCastException)

问题分析 在SpringBoot中使用 org.apache.commons.lang.SerializationUtils.clone 方法时,发现克隆出来的类强转对应类时发生类型不一致的错误,经过检测发现两个看似相同的类的类加载器不一致 场景 报错信息 java.lang.ClassCastException: com.tianq…

伦敦金投资怎么玩收益高?

伦敦金,作为国际黄金市场的代表,一直备受投资者的关注。它有着高流动性和丰富的投资机会,但要真正玩得收益高,就需要掌握一些关键的方法和技巧。在本文中,万洲金业将为您提供专业建议,告诉您伦敦金投资怎么…

【广州华锐互动】VR虚拟现实技术在森林防火教学中的应用

在探索大自然的神秘面纱时,我们往往会遇到一些意想不到的风险,其中之一就是森林火灾。森林火灾是一种毁灭性的自然灾害,可以在短时间内摧毁大片森林,对人类和动物的生存环境造成严重影响。然而,通过3D仿真技术&#xf…

SteerMouse for mac Mac万能鼠标设置工具 功能介绍

鼠标可谓是用户们在使用电脑时候的必备外接设备呢!适合你自己的鼠标设置也绝对能够优化你的Mac使用体验!想要更好的Mac体验就试试用Steermouse Mac版吧。它通过软件来自由设置你的鼠标操作!在这款万能鼠标设置工具中,用户可以在偏…

uniapp在APP端使用swiper进行页面不卡顿滑动

uniapp在APP端使用swiper进行页面会卡顿&#xff0c;主要是渲染的数据有点多&#xff0c;这里只渲染三个数据就不好那么卡顿了&#xff0c;每次滑动后更新数据 <view><swiper change"changePoint" circular :disable-touch"disableTouch"><…