プログラミングのヒント
このセクションの内容:
特殊機能レジスタへのアクセス
IARの製品パッケージには、Armデバイス用の専用ヘッダファイルがいくつか付属しています(arm\incディクレトリ)。 これらのヘッダファイルは、プロセス固有の特殊関数レジスタ(SFR)、および場合によっては割込みベクタ番号を定義します。
例
デバイスのUARTリードアドレス0x40050000は、ionuc100.hファイルで以下のように定義されます:
__IO_REG32_BIT(UA0_RBR,0x40050000,__READ_WRITE ,__uart_rbr_bits)
宣言は、io_macros.hファイルで定義されているマクロによって次のように変換されます。
UA0_RBR DEFINE 0x40050000
C形式プリプロセッサディレクティブの使用
C形式のプリプロセッサディレクティブは、他のアセンブラディレクティブの前に処理されます。そのため、マクロでプロプロセッサディレクティブを使用しないでください。また、これらをアセンブラ形式のコメントと混在させないでください。コメントの詳細については、アセンブラ制御を参照してください。
#defineのようなC形式のプリプロセッサディレクティブは、ソースコードファイルの残り部分で有効ですが、EQUなどのアセンブラディレクティブは現在のモジュール内でのみ有効です。