你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32F4 中断优先级0无法抢占的问题

[复制链接]
always-2029922 提问时间:2019-1-24 17:44 /
本帖最后由 always-2029922 于 2019-1-24 18:02 编辑

使用F407遇到一个抢占优先级的问题:
现设置优先级分组 HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);也就是15个优先级分组。按照手册说明0抢占优先级具有最高优先级别。
现在我使用两个定时器:
        1)TIM2设置优先级为0,TIM4设置优先级为1
        2)若先启动TIM4,延时一下再启动TIM2(为了先触发定时器4中断),现象为:TIM2无法抢占。
        3)若先启动TIM2,则TIM4也无法抢占中断。
再次实验其他优先级:
        1)TIM2设置优先级为1,TIM4设置优先级为2
        2)若先启动TIM4,延时一下再启动TIM2(为了先触发定时器4中断),现象为:TIM2成功抢占。

再次实验:
        1)TIM2设置优先级为0,TIM4设置优先级为15
        2)若先启动TIM4,延时一下再启动TIM2(为了先触发定时器4中断),现象为:TIM2无法抢占。

总结现象:
        1)实验现象证明0优先级确实无法被抢占,具有最高优先级(因为先触发有限级为0的中断后,优先级为1的没能抢占)
        2)0优先级无法抢占其他优先级,无法形成中断嵌套。(因为先触发非0优先级的中断后,0优先级没有抢占到)
疑问:
        优先级为0的中断不具备抢占能力吗?

注:下图是我使用0优先级以上实现了抢占的波形图:
紫色优先级3,蓝色2,黄色1,三个中断执行同样的任务,黄色最先执行完毕,证明可以实现抢占。
tek00000.png

设置紫色优先级3,蓝色2,黄色0后,发现黄色未能抢占,如图: tek00000.png
希望各位帮忙解答!
祝好!





收藏 评论2 发布时间:2019-1-24 17:44

举报

2个回答
always-2029922 回答时间:2019-1-27 17:48:51
请大神们帮助啊!
cruelfox 回答时间:2019-1-30 17:03:07
第2个图,黄色的把品红色的抢占了?

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版