请问一下在RTOS中对全局变量的访问
请教一下大家,在RTOS中对全局变量的访问:如果一个任务只是对全局变量进行读操作,一个任务只是对全局变量进行写操作。这种情况下,需不需要加上互斥量进行保护呢?加上__IO,防止编译器优化即可
好的,谢谢硬汉。 eric2013 发表于 2020-6-28 08:43
加上__IO,防止编译器优化即可
请问硬汉这种方式只适用于单个变量还是数组也适用,如果一个任务对变量进行写,多个变量读,这种方式也适用么? 老鸟kkk 发表于 2020-7-13 10:53
请问硬汉这种方式只适用于单个变量还是数组也适用,如果一个任务对变量进行写,多个变量读,这种方式也适 ...
都可以的。 这个我觉得有些情况是不行的。例如你定义了uint64的变量。
这个我觉得有些情况是不行的。例如你定义了uint64的变量。 在嵌入式的应用中,全局变量是大量使用的。 好处是,清晰明了,易于跟踪监控。 虽然,这种说法和现代软件的思路相悖,但是嵌入式和硬件紧密相连,我们更喜欢确定性,而不是自由灵活。 eric2013 发表于 2020-6-28 08:43
加上__IO,防止编译器优化即可
请问,如果有多个任务对 同一个全局变量 读,一个任务对 这个全局变量写, 是否也适用? 清风徐来 发表于 2021-1-8 22:14
请问,如果有多个任务对 同一个全局变量 读,一个任务对 这个全局变量写, 是否也适用?
可以的。 eric2013 发表于 2021-1-9 08:48
可以的。
请教一下,如果写到一半发生了任务调度,这样读出的的数据不就错误了吗
页:
[1]