首页/新闻资讯/正文详情

理解 FreeRTOS 中的 configMAX_SYSCALL_INTERRUPT_PRIORITY 和 configKERNEL_INTERRUPT_PRIORITY

发布时间:2026/11/15 22:42:22 来源:云帆数科 栏目:资讯中心
理解 FreeRTOS 中的 configMAX_SYSCALL_INTERRUPT_PRIORITY 和 configKERNEL_INTERRUPT_PRIORITY
RTOS 中断嵌套方案把可用的中断优先级分成两组一组会被 RTOS 临界区屏蔽另一组不会被临界区屏蔽。configMAX_SYSCALL_INTERRUPT_PRIORITY是两组的分界。在 Cortex-M 上数值越小逻辑优先级越高。逻辑优先级高于这条分界的中断不会被taskENTER_CRITICAL()屏蔽这些中断里不能调用 FreeRTOS API。数值等于这条分界的中断会被屏蔽可以调用以FromISR结尾的 API。理解 FreeRTOS的configMAX_SYSCALL_INTERRUPT_PRIORITY和configKERNEL_INTERRUPT_PRIORITY需要从中断优先级管理和实时操作系统的工作原理入手。以下是对这两个配置参数的解释configMAX_SYSCALL_INTERRUPT_PRIORITY定义configMAX_SYSCALL_INTERRUPT_PRIORITY是仍允许调用中断安全 FreeRTOS API 的最高逻辑优先级。写入BASEPRI时使用已经按优先级位数左移、与 NVIC 优先级寄存器高位对齐的数值。目的临界区期间屏蔽这条线以及逻辑优先级更低的中断避免这些中断在内核修改内部数据时再次进入并调用 API造成竞态或数据损坏。逻辑优先级更高的中断不会被这段临界区屏蔽因此它们的处理函数里不能调用任何 FreeRTOS API。使用中断处理函数需要调用FromISRAPI 时用NVIC_SetPriority()设置的优先级数值必须大于或等于configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY。configKERNEL_INTERRUPT_PRIORITY定义configKERNEL_INTERRUPT_PRIORITY是 SysTick 和 PendSV 的优先级同样是左移后写入系统异常优先级寄存器的数值。目的把节拍中断和任务切换放在最低逻辑优先级使已经嵌套的中断都退出后再切换任务。应用中断可以抢占 SysTick。使用这个值设为硬件最低逻辑优先级。优先级寄存器 8 位都实现时最低优先级的数值是 255。只实现高 4 位时最低优先级是 15 左移 4 位即0xF0。未实现的低 4 位写 0 或写 1 效果相同所以0xF0和 255 都可以。示例配置在 Cortex-M 内核中假如有 8 级优先级取值范围是 07。数值 0 是最高逻辑优先级数值 7 是最低逻辑优先级。对于实现了 4 位优先级NVIC_SetPriority()使用 015的 ARM Cortex-M#define configPRIO_BITS 4 #define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 15 #define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5 /* 0xF0SysTick / PendSV */ #define configKERNEL_INTERRUPT_PRIORITY \ ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY (8 - configPRIO_BITS) ) /* 0x50。高 4 位必须是 5不能把宏直接定义成 5 */ #define configMAX_SYSCALL_INTERRUPT_PRIORITY \ ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY (8 - configPRIO_BITS) )在这个例子中对cortex来说0最高configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY为 5对应的configMAX_SYSCALL_INTERRUPT_PRIORITY为0x50。NVIC 优先级为 5、6、7、…、15 的中断可以调用FromISR函数。configLIBRARY_LOWEST_INTERRUPT_PRIORITY为 15对应的configKERNEL_INTERRUPT_PRIORITY为0xF0。SysTick 和 PendSV 处于最低逻辑优先级其他中断可以抢占它们串口中断优先级设为 6 时串口中断可以调用FromISR函数。定时器中断优先级设为 4 时定时器中断处理函数不能调用FromISR函数重要注意事项优先级编号ARM Cortex-M 用较小的数值表示较高的逻辑优先级。NVIC_SetPriority()传入未移位的优先级。上面两个 config 宏必须是左移到优先级寄存器高位之后的值并且configMAX_SYSCALL_INTERRUPT_PRIORITY不能为 0。中断安全 API中断里只能调用以FromISR结尾的 FreeRTOS API而且该中断的逻辑优先级不能高于configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY。优先级分组实现的优先级位全部用作抢占优先级不要再划分子优先级。配置一致性中断优先级、configMAX_SYSCALL_INTERRUPT_PRIORITY和configKERNEL_INTERRUPT_PRIORITY使用同一套位数和移位方式。

相关推荐

scrcpy:35~70ms 低延迟手机投屏,1 秒把屏幕搬上电脑用键鼠操作
scrcpy:35~70ms 低延迟手机投屏,1 秒把屏幕搬上电脑用键鼠操作

scrcpy:35~70ms 低延迟手机投屏,1 秒把屏幕搬上电脑用键鼠操作 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy scrcpy 是开源的 Android 投屏工具,把手机… · 2026/11/15 22:42:20

如何将chm转换为html
如何将chm转换为html

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/15 0:51:35

Accel-Sim仿真工作流全解:用run_simulations.py批量跑GPU仿真任务
Accel-Sim仿真工作流全解:用run_simulations.py批量跑GPU仿真任务

【免费下载链接】accel-sim-framework This is the top-level repository for the Accel-Sim framework. 项目地址: https://gitcode.com/gh_mirrors/ac/accel-sim-framework 点击查看 免费下载 Accel-Sim 是一个面向 GPU 体系结构研究的开源仿真框架(基… · 2026/11/15 22:40:28

商丘市高压电工证全国通用,实操考试心里没底怕挂科?这份攻略让你一次过
商丘市高压电工证全国通用,实操考试心里没底怕挂科?这份攻略让你一次过

商丘市高压电工证全国通用,实操考试心里没底怕挂科?这份攻略让你一次过 实操考试心里没底怕挂科,特别是像商丘市高压电工证这样的证书,一旦挂科,不仅浪费时间,还影响到后续的就业和晋升机会。很多学员都担心实操考试的难度,甚至在备考阶段就开始焦虑。… · 2026/11/15 22:41:43

中级电工证的适用范围全流程办理指南:全国通用证书怎么考才稳?
中级电工证的适用范围全流程办理指南:全国通用证书怎么考才稳?

中级电工证的适用范围全流程办理指南:全国通用证书怎么考才稳? 实操考试心里没底怕挂科,别担心,这篇干货能帮你从头理清中级电工证的适用范围、考试流程和关键细节,特别是全国通用的证书怎么考更稳妥。 适用范围:中级电工证能干啥?… · 2026/11/15 22:41:43

电工证 弱视值不值得考?实操考试心里没底怕挂科怎么破
电工证 弱视值不值得考?实操考试心里没底怕挂科怎么破

电工证 弱视值不值得考?实操考试心里没底怕挂科怎么破 实操考试心里没底怕挂科,这几乎是每个初次报考电工证的朋友最真实的感受。尤其是对“弱视”这个特殊情况的考生来说,考试难度、通过率、甚至能不能顺利拿到证都成了心头大患。但说实话,… · 2026/11/15 22:41:42

池州市怎样搞到电工证通过率揭秘:外省证能转吗?
池州市怎样搞到电工证通过率揭秘:外省证能转吗?

池州市怎样搞到电工证通过率揭秘:外省证能转吗? 之前考的证在外省能不能转过来?这个问题在池州市不少电工朋友心头都悬着。其实, 外省的电工证 在符合一定条件下是可以办理 跨省转入 的,但这个过程并不简单,需要你提前了解 通过率揭秘… · 2026/11/15 22:41:42

新电工证怎么查询不到怎么报名不影响上岗找工作
新电工证怎么查询不到怎么报名不影响上岗找工作

新电工证怎么查询不到怎么报名不影响上岗找工作 急需特种作业证才能上岗找工作,结果却发现新电工证怎么查询不到,这事儿可急坏了很多人。特种作业证不仅是上岗的“通行证”,更是用人单位评估你专业能力的重要依据。如果你是刚拿到电工证的新人,或者正在准… · 2026/11/15 22:41:42

考电工证要身份证吗千万别踩坑 转岗电工人必看的避坑指南
考电工证要身份证吗千万别踩坑 转岗电工人必看的避坑指南

考电工证要身份证吗千万别踩坑 转岗电工人必看的避坑指南 你是不是正为找工作犯愁?特种作业证成了门槛,但 考电工证要身份证吗 ?这个问题如果没搞清楚,真的可能 千万别踩坑… · 2026/11/15 22:40:22

长春初级电工证怎么考?通过率揭秘全在这里
长春初级电工证怎么考?通过率揭秘全在这里

长春初级电工证怎么考?通过率揭秘全在这里 之前考的证在外省能不能转过来?这几乎是每个想从事电工工作的人都会问的问题。特别是那些在外地打拼多年、手里握着一张“外地电工证”的人,到了长春想继续干这一行,第一反应就是“我的证能用吗?”。今天我们就… · 2026/11/15 0:00:50

国内电工证报考条件与考试时间
国内电工证报考条件与考试时间

低压电工证怎么考?学历不高也能报名,官方报名入口全在这 你是不是经常听说“电工证是入行门槛”,但又担心自己学历不够、经验不足,根本报不了名?别急,今天就带你从零了解【国内电工证】的报考流程、考试内容,还有怎么在 官方报名入口… · 2026/11/15 0:00:50

电工作业时如何断电?电子证书到底能不能全国通用?
电工作业时如何断电?电子证书到底能不能全国通用?

电工作业时如何断电?电子证书到底能不能全国通用? 实操考试心里没底怕挂科,特别是电工作业时如何断电这一操作,不仅关系到你能不能拿到证书,更关系到以后能不能顺利上岗。很多人觉得这不过就是“断个电”,但其实这里面的门道可不少,稍有不慎就可能出错… · 2026/11/15 0:00:50

长春初级电工证怎么考?通过率揭秘全在这里
长春初级电工证怎么考?通过率揭秘全在这里

长春初级电工证怎么考?通过率揭秘全在这里 之前考的证在外省能不能转过来?这几乎是每个想从事电工工作的人都会问的问题。特别是那些在外地打拼多年、手里握着一张“外地电工证”的人,到了长春想继续干这一行,第一反应就是“我的证能用吗?”。今天我们就… · 2026/11/15 0:00:50

国内电工证报考条件与考试时间
国内电工证报考条件与考试时间

低压电工证怎么考?学历不高也能报名,官方报名入口全在这 你是不是经常听说“电工证是入行门槛”,但又担心自己学历不够、经验不足,根本报不了名?别急,今天就带你从零了解【国内电工证】的报考流程、考试内容,还有怎么在 官方报名入口… · 2026/11/15 0:00:50

电工作业时如何断电?电子证书到底能不能全国通用?
电工作业时如何断电?电子证书到底能不能全国通用?

电工作业时如何断电?电子证书到底能不能全国通用? 实操考试心里没底怕挂科,特别是电工作业时如何断电这一操作,不仅关系到你能不能拿到证书,更关系到以后能不能顺利上岗。很多人觉得这不过就是“断个电”,但其实这里面的门道可不少,稍有不慎就可能出错… · 2026/11/15 0:00:50

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/15 1:51:20

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/15 4:02:19

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/15 3:02:05

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码