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

对于RTOS的相关问题想请...

[复制链接]
livercapsule 提问时间:2018-12-25 14:00 /
1.最近在学习FreeRTOS(stm32下),虽然好像知道了队列和信号量是用来做任务之间的通信的,但是不太理解为什么要用这些东西,我觉得好像用rtos的队列和信号量要实现的功能,我定义一个全局变量或者说队列不是都可以实现吗,那为什么还要用他呢。难道说这只是为了省内存嘛?
2.还有就是在实时操作系统下,所谓的状态机是不是就不那么必要了。

我没有系统学习,也不太懂,希望大佬们能指点我一下,谢谢啦。

收藏 评论6 发布时间:2018-12-25 14:00

举报

6个回答
tanic 回答时间:2018-12-25 15:34:12
1都可以的,区别不大。全局变量简单,信号量队列啥的性能优些,因为用全局变量势必任务内有不停的查询+delay,而等待信号量任务直接挂起了。
2.一个task就是一个状态机,一样要用。上了系统只不过是状态机可以简单些

评分

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

查看全部评分

livercapsule 回答时间:2018-12-25 22:18:00
tanic 发表于 2018-12-25 15:34
1都可以的,区别不大。全局变量简单,信号量队列啥的性能优些,因为用全局变量势必任务内有不停的查询+dela ...

明白了,谢谢你
Kevin_G 回答时间:2018-12-26 09:43:13

点评

求助帖不要发无关话题!  发表于 2019-1-3 16:02
Kevin_G 回答时间:2019-1-3 16:58:11
信号量、队列这些系统内部的资源,使用起来,主要对系统的健壮性、实时性等提升,比如使用Flag取代信号量,在任务获取不到Flag是将会进入等待,而是用信号量,任务在获取不到信号量时,将会将任务挂起,主动进行任务切换。这只是最简单的解释之一,实际上还会有更多的好处。
xiaojie0513 回答时间:2019-1-12 22:04:50
信号量超时机制

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版