livercapsule 发表于 2018-12-25 14:00:27

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

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

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

tanic 发表于 2018-12-25 15:34:12

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

livercapsule 发表于 2018-12-25 22:18:00

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

明白了,谢谢你{:3_52:}

Kevin201707 发表于 2018-12-26 09:43:13

:victory:

Kevin201707 发表于 2019-1-3 16:58:11

信号量、队列这些系统内部的资源,使用起来,主要对系统的健壮性、实时性等提升,比如使用Flag取代信号量,在任务获取不到Flag是将会进入等待,而是用信号量,任务在获取不到信号量时,将会将任务挂起,主动进行任务切换。这只是最简单的解释之一,实际上还会有更多的好处。

xiaojie0513 发表于 2019-1-12 22:04:50

信号量超时机制
页: [1]
查看完整版本: 对于RTOS的相关问题想请...