__IO
キーワード__IO キーワードは変数修飾子で、volatile の別名(エリアス)です。
レジスタにマッピングされた変数等、その値が外部割り込みなどのコードセクションの制御を超えて何かによって変更されるときは__IO宣言を推奨します。
__IO宣言した変数の挙動については、volatileを参照して下さい。
libmaple/bmaple_types.hに次のように定義されています。
code:ibmaple_types.h
#define __IO volatile
(補足)
旧仕様では、キーワード__ioが使用されていましたが、gccコンパイラのバージョン変更等による競合問題の発生から、__IO に変更されました。
参考記事
volatile qualifier #422
__io is replaced by the more correct __IO #431
関連項目
volatile
License and Attribution: Portions of this page were adapted from the Arduino Reference Documentation, which is released under a Creative Commons Attribution-ShareAlike 3.0 License.
このドキュメントはleafLabs, LLC.が執筆し、たま吉が翻訳・一部加筆修正したものです。
Arduino STM32 リファレンス 日本語版 に戻る