[应用方案] 详细介绍一下PendSV中断的优先级是如何设定的?

[复制链接]
829|2
详细介绍一下PendSV中断的优先级是如何设定的?


爱丽丝的梦 发表于 2025-9-23 15:03 | 显示全部楼层
PendSV 中断 SV 中断优先级通过 NVIC 的中断优先级寄存器 IPR 设定。其在 NVIC 中的编号为 14,对应 IPR [14]。该寄存器高 4 位为优先级字段,值越小优先级越高。需先配置 SCB_AIRCR 设定优先级分组,再按分组规则设置 IPR [14] 的高 4 位,决定抢占和子优先级。CMSIS 库函数或直接寄存器操作均可实现。
灰色与青 发表于 2025-10-5 16:08 | 显示全部楼层
endSV(可悬起系统调用)中断的优先级设定需通过系统内核(如 ARM Cortex-M 系列的 NVIC,嵌套向量中断控制器)配置,具体规则如下:
优先级寄存器:通过 NVIC 的 PendSV 优先级寄存器(NVIC_IPR [x])设置,寄存器位宽决定优先级级数(如 8 位可设 0-255 级,数值越小优先级越高)。
内核推荐配置:通常需将 PendSV 优先级设为最低(数值最大),确保它仅在其他中断处理完成后执行(如用于任务切换,避免打断高优先级任务)。
与其他中断的关系:其优先级需低于系统滴答定时器(SysTick)等核心中断,以保证任务调度机制可靠运行,具体值由实时操作系统(RTOS)或用户根据需求设定。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

151

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部