搜索
查看: 1467|回复: 6

[已解决] 对于RTOS的相关问题想请...

[复制链接]

该用户从未签到

2

主题

6

帖子

0

蝴蝶豆

初级会员

最后登录
2019-1-23
发表于 2018-12-25 14:00:27 | 显示全部楼层 |阅读模式
1.最近在学习FreeRTOS(stm32下),虽然好像知道了队列和信号量是用来做任务之间的通信的,但是不太理解为什么要用这些东西,我觉得好像用rtos的队列和信号量要实现的功能,我定义一个全局变量或者说队列不是都可以实现吗,那为什么还要用他呢。难道说这只是为了省内存嘛?
2.还有就是在实时操作系统下,所谓的状态机是不是就不那么必要了。

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

回复

使用道具 举报

该用户从未签到

44

主题

647

帖子

163

蝴蝶豆

金牌会员

最后登录
2021-4-25
发表于 2018-12-25 15:34:12 | 显示全部楼层
1都可以的,区别不大。全局变量简单,信号量队列啥的性能优些,因为用全局变量势必任务内有不停的查询+delay,而等待信号量任务直接挂起了。
2.一个task就是一个状态机,一样要用。上了系统只不过是状态机可以简单些

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

6

帖子

0

蝴蝶豆

初级会员

最后登录
2019-1-23
 楼主| 发表于 2018-12-25 22:18:00 | 显示全部楼层
tanic 发表于 2018-12-25 15:34
1都可以的,区别不大。全局变量简单,信号量队列啥的性能优些,因为用全局变量势必任务内有不停的查询+dela ...

明白了,谢谢你
回复 支持 反对

使用道具 举报

该用户从未签到

6

主题

1029

帖子

133

蝴蝶豆

金牌会员

最后登录
2021-4-24
发表于 2018-12-26 09:43:13 | 显示全部楼层

点评

求助帖不要发无关话题!  发表于 2019-1-3 16:02
回复

使用道具 举报

该用户从未签到

6

主题

1029

帖子

133

蝴蝶豆

金牌会员

最后登录
2021-4-24
发表于 2019-1-3 16:58:11 | 显示全部楼层
信号量、队列这些系统内部的资源,使用起来,主要对系统的健壮性、实时性等提升,比如使用Flag取代信号量,在任务获取不到Flag是将会进入等待,而是用信号量,任务在获取不到信号量时,将会将任务挂起,主动进行任务切换。这只是最简单的解释之一,实际上还会有更多的好处。
回复 支持 反对

使用道具 举报

该用户从未签到

19

主题

182

帖子

32

蝴蝶豆

版主

最后登录
2020-2-21
发表于 2019-1-12 22:04:50 | 显示全部楼层
信号量超时机制
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-5-8 07:58 , Processed in 0.173517 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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