OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2626|回复: 2

实时抢占式的高低优先级任务切换问题

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2021-9-14
在线时间
5 小时
发表于 2022-5-16 15:59:47 | 显示全部楼层 |阅读模式
7金钱
请问大佬,FreeRTOS的configUSE_PREEMPTION和configUSE_TIME_SLICING都设为1时,使用的是抢占式内核和时间片都使能了,那我设置两个任务,一个任务优先级是3,一个任务优先级是4,然后这两个任务都没有设置延时或者说被阻塞和挂起,那按照理论来说高优先级的这个任务能一直占着CPU,我DEBUG的时候看现象,发现这两个任务会相互切换,希望大佬能解答疑惑!!! 1652687907(1).jpg 1652687848(1).jpg 1652687677(1).jpg 1652687632(1).jpg

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2022-5-17 01:37:04 | 显示全部楼层
为何会一直占着?你delay的时候就让出CPU了
回复

使用道具 举报

0

主题

451

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3316
金钱
3316
注册时间
2016-3-19
在线时间
815 小时
发表于 2022-5-17 08:02:30 | 显示全部楼层
您确定仿真时一直可以进行任务切换吗?

为了验证您的想法,您可以创建两个 autorun_task 这样的任务  函数体也一样的   测试一下

或者您可以把  display_task 任务函数体中  只留 while 循环   其它屏蔽掉再试试

再或者   仿真时   多运行一会     在两个任务的 while 循环里设置断点再试试  理论上 只会停在优先级为4的while循环里的断点里
Nothing is impossible
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 18:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表