タグ

2022年2月13日のブックマーク (1件)

  • volatile修飾子の使いどころ (組み込み, C) - ろぐれこーど

    C言語におけるvolatile修飾子をどういったときに使う必要があるかを整理したかったので調べました。 結論 説明 レジスタ操作 他で参照しないレジスタへの書き込み 特定の手順での書き込み レジスタ参照 他で書き込みしないレジスタへの参照 速度重視の最適化が起こる場合 wait処理 まとめ 参考 結論 以下パターンに当てはまるとき、変数にvolatile修飾子をつけます。 レジスタ操作 レジスタ参照 wait処理 基的にはレジスタ操作・参照を伴う場合につけとけばいいと思います。 ここではメモリマップドI/Oを前提とします。メモリマップドI/Oについては以下の記事が詳しそうです。コスト面で優れていて、昨今のマイコンはほぼメモリマップドI/Oらしいのでそこは意識しなくても良いかもです。 www.kumikomi.net 説明 volatileはコンパイラ最適化を抑制するために使われます。(と

    volatile修飾子の使いどころ (組み込み, C) - ろぐれこーど