2014-06-06 41 views
0

有一個線程修改原子單元(例如字符),而另一個線程只讀取它是否安全? 在一個允許這種情況的環境中,如freertos。FreeRTOS跨線程讀取

我已經給出了一些代碼,只是這樣做,它使用布爾(定義爲字符)作爲信號量,我不知道他們爲什麼沒有使用信號只是爲了清晰起見,但是我再也看不到真正使用char的危險。

回答

1

及其安全如果:

1.您的處理器讀取單個指令的字符(這是非常可能)

2.您處理器架構不使得在執行一個指令的外部中斷可以改變控制流。

3.只有當您的變量通過ISR更新時,第2點纔是vaild