硬汉嵌入式论坛

 找回密码
 立即注册
查看: 968|回复: 4
收起左侧

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

[复制链接]

12

主题

51

回帖

87

积分

初级会员

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


回复

使用道具 举报

12

主题

51

回帖

87

积分

初级会员

积分
87
 楼主| 发表于 2023-2-23 16:40:48 | 显示全部楼层
设备状态结构体的数据 我是使用的全局变量结构体
回复

使用道具 举报

1

主题

35

回帖

38

积分

新手上路

积分
38
发表于 2023-2-24 09:03:57 | 显示全部楼层
都是线程修改的话上线程锁就可以了吧,除非中断中有修改之类的才需要开关中断
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106437
QQ
发表于 2023-2-24 09:48:24 | 显示全部楼层
做个消息队列,给你的控制任务发消息,这样不会丢消息,也保证了MQTT的及时处理。

回复

使用道具 举报

12

主题

51

回帖

87

积分

初级会员

积分
87
 楼主| 发表于 2023-2-27 17:02:17 | 显示全部楼层
eric2013 发表于 2023-2-24 09:48
做个消息队列,给你的控制任务发消息,这样不会丢消息,也保证了MQTT的及时处理。

MQTT我是使用的队列对消息。是我全局状态的数据安全性问题,多个线程都会对设备状态进行写和读。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-20 19:51 , Processed in 0.169255 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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