新闻详情

新闻详情

首页 / 资讯中心 / 详情

将中断优先级设置#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 2

发布时间:2026/9/30 2:27:29来源:尧图网络
将中断优先级设置#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 2
在FreeRTOSConfig.h中#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 2这个参数是内核管控的中断优先级参数如果中断的优先级比这个高则不受中断的管控。临界区保护。OSIF_UNIFIED_ENTER_CRITICALOSIF_UNIFIED_EXIT_CRITICAL在进入中断的时候他会屏蔽掉当前cpsr寄存器中的ORR R0, R0, #0xC0 \n\t /* Disable IRQ, FIQ. */退出的时候它会恢复BIC R0, R0, #0xC0 \n\t /* Enable IRQ, FIQ. */如果中断的优先级比这个低那么该中断就变得不可控就不能调用系统级别的一些接口容易造成系统崩溃。调用FromISRAPIconfigASSERT死循环卡死立即在 API 入口处调用非FromISRAPI篡改调度器 TCBPendSV 跳转非法地址中断退出后进入HardFault忽略断言强行调用内核链表指针损坏产生野指针随机在下次遍历链表时触发 HardFault进入临界区保护 会忽略优先级比较低的中断 但是在实际的代码执行的过程中 没有发现丢过中断呢1. 核心原因NVIC 的“挂起Pending”机制硬件锁存2. 临界区的“极短时间窗口”概率原因3.你真的“没有丢”吗—— 聊聊“合并丢失”的盲区4. 电平触发的中断绝对“不会丢”5.5. 针对“优先级0中断”的特殊情况1. 正常执行期间text中断到达 ↓ NVIC 置 pending ↓ 处理器尝试进入异常 ↓ 检查 BASEPRI / 优先级 ↓ 优先级数值 2 ? → 被 BASEPRI 屏蔽 ↓ 不进入 ISR保持 pending ↓ 继续执行当前代码 ↓ 直到退出临界区BASEPRI 恢复 ↓ pending 的中断才进入 ISR这个理解是对的不会丢也不是完全不可见而是 pending 延迟执行。2. WFI 期间关键区别在这里text中断到达 ↓ NVIC 置 pending ↓ 唤醒 WFI ← 注意这里不看 BASEPRI ↓ CPU 退出睡眠继续执行 WFI 后面的指令 ↓ 处理器尝试进入异常 ↓ 检查 BASEPRI / 优先级 ↓ 优先级数值 2 ? → 被 BASEPRI 屏蔽 ↓ 不进入 ISR保持 pending ↓ 继续执行 WFI 后面的代码 ↓ 直到退出临界区BASEPRI 恢复 ↓ pending 的中断才进入 ISR所以WFI 会被这个被屏蔽的中断唤醒但唤醒后不会立刻执行 ISR中断仍然是 pending 状态等 BASEPRI 放开后才真正进入 ISR3. 对比总结场景中断到达后是否唤醒 WFI是否进入 ISR最终结果正常执行BASEPRI 屏蔽pending不涉及否延迟到 BASEPRI 放开WFI 睡眠BASEPRI 屏蔽pending是否先唤醒再延迟到 BASEPRI 放开正常执行优先级数值 2pending不涉及是立即抢占立即执行WFI 睡眠优先级数值 2pending是是立即进入 ISR立即执行4. 你图里“WFI 等待条件”应该怎么理解不是WFI 等待 BASEPRI 检查通过而是WFI 等待“有中断 pending”这个事件。至于这个中断能不能进 ISR是唤醒之后才由 BASEPRI / 优先级决定的。所以更准确的说法是WFI 的唤醒条件中断使能 变成 pendingISR 的进入条件中断使能 pending 优先级高于当前 不被 PRIMASK/BASEPRI 屏蔽
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

硬盘坏道修复原理与实操:逻辑坏道可修,物理坏道只能隔离 2026/9/30 3:27:45

硬盘坏道修复原理与实操:逻辑坏道可修,物理坏道只能隔离

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

阅读更多 →
RK3576 I3C与I2C核心差异及DTS配置实战 2026/9/30 3:27:45

RK3576 I3C与I2C核心差异及DTS配置实战

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

阅读更多 →
VS中C++多源文件为何不能单独运行?构建原理与3种工程解法 2026/9/30 3:27:44

VS中C++多源文件为何不能单独运行?构建原理与3种工程解法

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

阅读更多 →
CloudStack 4.0.2 Windows源码调试环境搭建指南 2026/9/30 3:27:38

CloudStack 4.0.2 Windows源码调试环境搭建指南

简介:本资源是一份面向云计算初学者与开发者的CloudStack云平台Windows环境搭建实战指南,聚焦在Windows XP系统上部署CloudStack 4.0.2开发环境的全流程实践,解决开源IaaS平台在非主流操作系统(Windows)下环境配置难、…

阅读更多 →
Altium Designer系统属性配置:硬件工程师的底层工程参数指南 2026/9/30 3:27:38

Altium Designer系统属性配置:硬件工程师的底层工程参数指南

1. 这不是“点几下就完事”的设置——Altium Designer系统属性配置到底在配什么?很多人打开Altium Designer后,第一反应是找“新建工程”“画原理图”,等遇到软件卡顿、库加载失败、DRC报错莫名其妙、或者换台电脑打开项目发现字体全乱、单位…

阅读更多 →
容灾方案模板实战:切换预案、RTO/RPO量化与演练避坑 2026/9/30 3:27:38

容灾方案模板实战:切换预案、RTO/RPO量化与演练避坑

简介:这是一份可直接套用的企业容灾方案模板,面向需要编制灾备体系文档的IT运维、系统架构师及项目经理。文档围绕容灾设计原则(高层访谈导向、业务影响分析BIA、成本效益、合规性)展开,并列举机房内灾难、办公区域大楼…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉