2014-06-06 40 views
0

有一个线程修改原子单元(例如字符),而另一个线程只读取它是否安全? 在一个允许这种情况的环境中,如freertos。FreeRTOS跨线程读取

我已经给出了一些代码,只是这样做,它使用布尔(定义为字符)作为信号量,我不知道他们为什么没有使用信号只是为了清晰起见,但是我再也看不到真正使用char的危险。

回答

1

及其安全如果:

1.您的处理器读取单个指令的字符(这是非常可能)

2.您处理器架构不使得在执行一个指令的外部中断可以改变控制流。

3.只有当您的变量通过ISR更新时,第2点才是vaild