OpenEdv-开源电子网

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

关于freertos二值信号量的问题

[复制链接]

9

主题

18

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2014-12-24
在线时间
7 小时
发表于 2021-3-4 12:02:10 | 显示全部楼层 |阅读模式
10金钱
A线程中释放了信号量,B线程中有信号量获取阻塞模式,正常情况下A线程在释放信号量之后,不是应该立即进入B线程中么,
但是现在程序依然在执行A线程中释放信号量之后的语句,
这个跟线程的优先级有关系么?

最佳答案

查看完整内容[请看2#楼]

你释放信号量又不能阻塞当前任务,时间片没到不会任务切换的 非要释放信号后就跳转任务 b任务优先级不低于a a释放信号量后taskYIELD();手动切换下任务
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

51

主题

2165

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10652
金钱
10652
注册时间
2017-4-14
在线时间
2780 小时
发表于 2021-3-4 12:02:11 | 显示全部楼层
你释放信号量又不能阻塞当前任务,时间片没到不会任务切换的   非要释放信号后就跳转任务  b任务优先级不低于a a释放信号量后taskYIELD();手动切换下任务
回复

使用道具 举报

9

主题

18

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2014-12-24
在线时间
7 小时
 楼主| 发表于 2021-3-4 13:34:28 | 显示全部楼层
求解答,在线等
回复

使用道具 举报

0

主题

113

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2538
金钱
2538
注册时间
2019-10-18
在线时间
403 小时
发表于 2021-3-4 15:48:17 | 显示全部楼层

这个操作系统中肯定是运行的最高优先级的任务.(有中断还要等中断结束)
所以单就这a和b2个任务来说.你要a释放信号量后马上运行b,那么b就要优先级高于a
回复

使用道具 举报

0

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
478
金钱
478
注册时间
2020-10-31
在线时间
136 小时
发表于 2021-3-4 16:56:36 | 显示全部楼层
要想实现你要得功能,B优先级要高于A;不然会执行完任务A后,再由调度器判定调度
回复

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
发表于 2021-3-5 22:18:59 | 显示全部楼层
手动切换一下任务即可
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 16:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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