Hzzz 发表于 2023-2-23 16:21:32

关于全局资源的安全性问题。

举个例子,做一个PWM的三色灯。然后上了FreeRTOS,且APP通过MQTT对设备进行控制,同时,设备上有按键。设备功能:开关,调节亮度,调节静态的颜色,调节动态模式运行。
那么关于设备的状态(开关状态,亮度数值,模式.....等等)数据,在MQTT线程里存在读取修改,在按键处理线程中也会存在读取修改,还有对数据的改变存在写入flash。如何保持这个设备状态结构体的数据的资源安全性呢?
我想的是在修改数据的时候进入临界,但是又有可能影响实时性。请教下大家最好的处理方法。


Hzzz 发表于 2023-2-23 16:40:48

设备状态结构体的数据 我是使用的全局变量结构体

yaq 发表于 2023-2-24 09:03:57

都是线程修改的话上线程锁就可以了吧,除非中断中有修改之类的才需要开关中断

eric2013 发表于 2023-2-24 09:48:24

做个消息队列,给你的控制任务发消息,这样不会丢消息,也保证了MQTT的及时处理。

Hzzz 发表于 2023-2-27 17:02:17

eric2013 发表于 2023-2-24 09:48
做个消息队列,给你的控制任务发消息,这样不会丢消息,也保证了MQTT的及时处理。

MQTT我是使用的队列对消息。是我全局状态的数据安全性问题,多个线程都会对设备状态进行写和读。
页: [1]
查看完整版本: 关于全局资源的安全性问题。