【FreeRTOS】configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY宏解析

1、今天在调试串口时,发现在中断调用xQueueSendFromISR后就会出现系统卡死

经过百度和谷歌后发现原来如此:

2、在FreeRTOSConfig.h中有个宏,

        #define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY    2

这个宏是用来规定FreeRTOS能干预的优先级的,比如这里定义为2表示:

        1>中断优先级2~15的优先级,可以调用FreeRTOS的ISR后缀API

        2>中断优先级小于2的优先级,不可以调用FreeRTOS的ISR后缀API

不可以调用,就意味着我的系统中断不受FreeRTOS的影响,系统调度干预不到我的操作; 

而2~15的优先级调用FreeRTOS的ISR后缀API后,FreeRTOS通过函数会执行自己的调度算法

3、修改,在修改优先级时,又碰到了这个函数

有两个优先级要填,死活没配置成功。

之后仔细了解后才发现这两个优先级分别功能如下:

一个叫Preemption Priority(抢占优先级),一个叫SubPriority(子优先级)

1、抢占优先级:顾名思义能够抢先执行任务,即打断当前的主程序或者中断程序的运行,前去完成抢断中断。可以中断嵌套。俗称主优先级

2、子优先级:也是从优先级或者副优先级,在抢占优先级相同的情况下不能发生中断嵌套,高级的子优先级先执行。如果低级的子优先级在执行,需要等待完成才能执行高级的子优先级,即不发生抢断。俗称从优先级

这两个优先级,共同占用4bit的优先级表,具体的可以通过函数nvic_priority_group_set分配

不知道怎么分配,直接强制极端的分频,4个主,0个从

然后调用函数

nvic_irq_enable(USART0_IRQn, 3, 0);

 主优先级3,在2~15内,可以调用isr的API了

测试成功,串口不死机了!!

心累

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

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

相关文章

一篇教会你 位置式PID 在写码中的应用。

前言:编写不易,仅供学习,参考,谢谢理解,请勿转载。 #位置式|增量式PID区别 本系列的前两篇讲的是位置式PID 没有增量式 PID ,PID的变种有很多,常见的有 位置式PID 增量式PID PI PD 抗…

PHP7.4安装使用rabbitMQ教程(windows)

(1),安装rabbitMQ客户端erlang语言 一,erlang语言安装 下载地址1—— 下载地址2——https://www.erlang.org/patches/otp-27.0 二,rabbitMQ客户端安装 https://www.rabbitmq.com/docs/install-windows &#xff08…

PTC可复位保险丝 vs 传统型保险丝:全面对比分析

PTC可复位保险丝,又称为自恢复保险丝、自恢复熔断器或PPTC保险丝,是一种电子保护器件。它利用材料的正温度系数效应,即电阻值随温度升高而显著增加的特性,来实现电路保护。 当电路正常工作时,PTC保险丝呈现低阻态&…

昇思25天学习打卡营第1天|小试牛刀

这里写自昇思25天学习打卡营第1天|小试牛刀定义目录标题 昇思25天学习打卡营第1天学习了初学入门之基本介绍。了解了昇思MindSpore和华为昇腾AI全栈。训练营中的教程丰富,有初学入门、应用实践和量子计算等。学习打卡营是很好的提升自己的机会。 昇腾计算&#xff…

Python和MATLAB微机电健康推导算法和系统模拟优化设计

🎯要点 🎯惯性测量身体活动特征推导健康状态算法 | 🎯卷积网络算法学习惯性测量数据估计六自由度姿态 | 🎯全球导航卫星系统模拟,及惯性测量动态测斜仪算法、动态倾斜算法、融合算法 | 🎯微机电系统加速度…

python图形用户界面和游戏开发_day010

python图形用户界面和游戏开发 基于tkinter模块的GUI使用Pygame进行游戏开发在窗口中绘图加载图像实现动画效果碰撞检测事件处理 基于tkinter模块的GUI GUI是图形用户界面的缩写,图形化的用户界面对使用过计算机的人来说应该都不陌生,在此也无需进行赘述…

深入解析大数据核心概念:数据平台、数据中台、数据湖与数据仓库的异同与应用

大数据领域内的诸多概念常常让人困惑,其中数据平台、数据中台、数据湖和数据仓库是最为关键的几个。 1. 数据平台 定义: 数据平台是一个综合性的技术框架,旨在支持整个数据生命周期的管理和使用。它包含数据采集、存储、处理、分析和可视化…

上传图片,base64改为文件流,并转给后端

需求&#xff1a; html代码&#xff1a; <el-dialog v-model"dialogPicVisible" title"新增图片" width"500"><el-form :model"picForm"><el-form-item label"图片名称&#xff1a;" :label-width"10…

使用Python进行自然语言处理

哈喽,大家好,我是木头左! 自然语言处理(Natural Language Processing,NLP)是人工智能领域的一个重要分支,它致力于使计算机能够理解、分析和生成人类语言。随着大数据和深度学习的发展,NLP在各个领域都有广泛的应用,如机器翻译、情感分析、文本摘要等。本文将介绍如何…

Windows 部署ollama

一、简介 Ollama是在Github上的一个开源项目&#xff0c;其项目定位是&#xff1a;一个本地运行大模型的集成框架&#xff0c;目前主要针对主流的LLaMA架构的开源大模型设计&#xff0c;通过将模型权重、配置文件和必要数据封装进由Modelfile定义的包中&#xff0c;从而实现大模…

模型需要从txt中长文本中精准提炼出来文字

需要从txt中长文本中精准提炼出来文字&#xff0c;比如&#xff1a;文本&#xff1a;BERT 是由 Google 提出的预训练语言模型&#xff0c;具有出色的上下文理解能力。可以用于命名实体识别 (NER)、文本分类和问答系统等任务。问题&#xff1a;BERT能完成什么任务&#xff1f;输…

Mysql ORDER BY是否走索引?

在 MySQL 中&#xff0c;ORDER BY 子句是否使用索引取决于多种因素&#xff0c;包括查询的具体情况、索引的类型和结构、查询中的其他条件等。 使用索引的情况 单列索引和 ORDER BY&#xff1a; 当 ORDER BY 子句中的列有单列索引时&#xff0c;MySQL 可以利用该索引来加速排序…

imx6ull/linux应用编程学习(15) 移植MQTT客户端库/测试

1. 准备开发环境 确保你的Ubuntu系统已经安装了必要的工具和依赖项。打开终端并运行以下命令&#xff1a; sudo apt update sudo apt install build-essential cmake git2. 获取MQTT库 git clone https://github.com/eclipse/paho.mqtt.c.git cd paho.mqtt.c3. 编译MQTT库 mk…

iOS 开发中,异步渲染和异步绘制

在 iOS 开发中&#xff0c;异步渲染&#xff08;Asynchronous Rendering&#xff09;和异步绘制&#xff08;Asynchronous Drawing&#xff09;虽然有相似之处&#xff0c;但它们并不是完全相同的概念。 异步渲染&#xff08;Asynchronous Rendering&#xff09; 异步渲染主要…

【SVN的使用- SVN的基本命令-SVN命令简写-注意事项-解决冲突 Objective-C语言】

一、SVN的更新命令:update 1.服务器如果新建了一个文件夹,yuanxing,版本变成6了, 我现在本地还只有三个文件夹,版本5, 终端里边,我们敲一个svn update, 我这儿就多了一个yuanxing文件夹, 这个就是更新,就是把服务器最新的代码下载下来, 假设服务器上大家提交了这…

react VS vue

什么是react 用于构建用户界面的js库 什么是vue 用于构建用户界面的渐进式js库 react是基于mvvm设计还是mvc设计 1、react是基于mvc设计的&#xff0c;但也不是完整的mvc模式 2、react把自己定义为view 3、组件逻辑定义为Controller层 4、虽然react不是完整的mvc模式&a…

KNIME 5.2.5 版本界面切换

1、安装完KNIME后&#xff0c;点击“Create workflow in your local space.” 2、发现是这个样子 4、进行切换。点击“menu”&#xff0c;最后点击“Switch to classic user interfaceto” 5、最终显示结果&#xff1a;

补光灯LED照明 2.7V4.2V5V升60V80V100V升压恒流芯片IC-H6902B

H6902B升压恒流芯片IC确实是一款为LED照明应用设计的稳定且可靠的解决方案。这款芯片具有以下几个显著特点&#xff1a; 高效率&#xff1a;效率高达95%以上&#xff0c;这意味着在驱动LED灯时&#xff0c;电源到LED的能量转换效率非常高&#xff0c;减少了能量损失&#xff0…

代码随想录算法训练营:30/60

非科班学习算法day30 | LeetCode452:用最少数量的箭引爆气球 &#xff0c;Leetcode435:无重叠区间 &#xff0c;Leetcode763:划分字母区间 介绍 包含LC的两道题目&#xff0c;还有相应概念的补充。 相关图解和更多版本&#xff1a; 代码随想录 (programmercarl.com)https:/…

centos磁盘空间满了-问题解决

报错问题解释&#xff1a; CentOS系统在运行过程中可能会出现磁盘空间不足的错误。这通常发生在以下几种情况&#xff1a; 系统日志文件或临时文件过大导致磁盘空间不足。 安装了大量软件或文件而没有清理无用文件。 有可能是某个进程占用了大量磁盘空间。 问题解决方法&a…