gcc(CおよびC++用)は、volatileオブジェクトへのアライメントされたアクセスがアトミックであることを保証しますか?gccは揮発性整数への整列したアクセスをアトミックにすることを保証しますか?
*((volatile unsigned int*)ADDRESS_DIVISIBLE_BY_4) = SOME_CONSTANT;
unsigned int sizeが4の場合、上記の行の背後にあるストア・マシン命令がテイクされないことが保証されていますか?
注:この質問には、注文ではなく、原価が記載されています。 これは並行性とは関係なく、1ステップストア命令を必要とするメモリマップドレジスタに関連しています。
http://preshing.com/20130618/atomic-vs-non-atomic-operations/ – user3528438
私はすでに一般的な視点から答えてきました。しかし、ハードウェアのアーキテクチャーと、それをアトミックにする理由について、より具体的に説明できますか? – Christophe
私は32ビットレジスタ全体にワンステップで書き込む必要がある場合を参照します。マイクロコントローラのプログラミングでは一般的です。問題は、それがC言語レベルから正しく行われていることを確認する方法です。 – mrn