理解 FreeRTOS 中的 configMAX_SYSCALL_INTERRUPT_PRIORITY 和 configKERNEL_INTERRUPT_PRIORITY

发布时间:2026/10/31 1:17:50

理解 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使用同一套位数和移位方式。
延伸阅读

更多相关文章

2026/10/31 1:17:50

如何将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/10/31 2:08:17

小白程序员必看!掌握KV Cache,解锁大模型高效推理的秘籍

本文深入浅出地解析了大模型逐字生成回答背后的核心机制——KV Cache。通过生动的比喻和实例,阐述了KV Cache如何通过缓存中间计算结果来避免重复计算、提升推理效率。文章还详细介绍了KV Cache的工作原理、存储挑战、跨请求复用等关键知识点,并提供了评…

2026/10/31 2:08:17

西门子1200 PLC连设备总是不够用?先搞清上限在哪

西门子系列PLC产品,功能比较强大。而在通信这块也是独树一帜,那么对于初学者来说,面对S7-1200如此强大的通信功能。在实际的项目中,可能需要多个设备实现通信,比如现场可能有PG、HMI、PLC、WINCC上位机等设备。那1200P…

2026/10/31 2:08:17

D47 · 法律文书理解与生成:多步推理链怎么落地

文章目录 D47 法律文书理解与生成:多步推理链怎么落地 开篇:法条是确定的,推理是不确定的 第 1 章 法律场景的技术难点地图 1.1 难点是怎么换的 1.2 三类法律任务 1.3 架构选型:规则优先,模型兜底 1.4 法律场景的四条铁律 第 2 章 法条知识库:带版本、带时效、带层级 2.…

2026/10/31 2:08:17

gm/id 方法应用于单端放大器设计实例

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

2026/10/30 20:55:10

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/30 20:55:10

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/30 20:55:09

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/31 0:02:41

猫狗目标检测数据集:VOC/COCO/YOLO三格式一体化实战包

简介:本资源是一套面向计算机视觉初学者与YOLO目标检测实践者的猫狗图像数据集及配套开发工具包,专为快速上手目标检测模型训练而设计。资源包含1000张真实场景高清猫狗图片,标注质量高,同时提供VOC(XML)、…

2026/10/31 0:02:41

HDU2017多校标程复现:算法竞赛工程化真题沙盒

简介:本资源为2017年HDU多校联合训练第一场官方配套资料,面向ACM程序设计竞赛备赛学生、算法爱好者及高校编程集训队成员,旨在提供权威解题参考与完整测试验证环境。压缩包共40个文件,含15份C标程(覆盖全部赛题&#x…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑