ytqiqiang 发表于 2020-6-28 08:32:32

请问一下在RTOS中对全局变量的访问

请教一下大家,在RTOS中对全局变量的访问:如果一个任务只是对全局变量进行读操作,一个任务只是对全局变量进行写操作。这种情况下,需不需要加上互斥量进行保护呢?

eric2013 发表于 2020-6-28 08:43:36

加上__IO,防止编译器优化即可

ytqiqiang 发表于 2020-6-28 20:19:25

好的,谢谢硬汉。

老鸟kkk 发表于 2020-7-13 10:53:21

eric2013 发表于 2020-6-28 08:43
加上__IO,防止编译器优化即可

请问硬汉这种方式只适用于单个变量还是数组也适用,如果一个任务对变量进行写,多个变量读,这种方式也适用么?

eric2013 发表于 2020-7-13 11:51:48

老鸟kkk 发表于 2020-7-13 10:53
请问硬汉这种方式只适用于单个变量还是数组也适用,如果一个任务对变量进行写,多个变量读,这种方式也适 ...

都可以的。

tanek 发表于 2020-7-30 13:16:52

这个我觉得有些情况是不行的。例如你定义了uint64的变量。

tanek 发表于 2020-7-30 13:17:18

这个我觉得有些情况是不行的。例如你定义了uint64的变量。

caicaptain2 发表于 2020-8-3 08:40:18

在嵌入式的应用中,全局变量是大量使用的。 好处是,清晰明了,易于跟踪监控。 虽然,这种说法和现代软件的思路相悖,但是嵌入式和硬件紧密相连,我们更喜欢确定性,而不是自由灵活。

清风徐来 发表于 2021-1-8 22:14:47

eric2013 发表于 2020-6-28 08:43
加上__IO,防止编译器优化即可

请问,如果有多个任务对 同一个全局变量 读,一个任务对 这个全局变量写, 是否也适用?

eric2013 发表于 2021-1-9 08:48:02

清风徐来 发表于 2021-1-8 22:14
请问,如果有多个任务对 同一个全局变量 读,一个任务对 这个全局变量写, 是否也适用?

可以的。

nnqtdf 发表于 2021-1-27 15:25:26

eric2013 发表于 2021-1-9 08:48
可以的。

请教一下,如果写到一半发生了任务调度,这样读出的的数据不就错误了吗
页: [1]
查看完整版本: 请问一下在RTOS中对全局变量的访问