--bitband

このオプションは、const 以外のすべてのグローバル構造体オブジェクトをビットバンド化します。1 ワード分のメモリをビットバンド領域内の個々のビットにマッピングることが可能です。これにより、メモリアーキテクチャの SRAM 領域とペリフェラル領域にあるシングルビット値へのアトミックアクセスを効率できます。

幅に依存するペリフェラルの場合、ビットバンド構造体のビットフィールドの char 型、short 型、および int 型には、エイリアス空間に対するバイト、ハーフワード、およびワードのストアまたはロードがそれぞれ生成されます。

Show/hide制約条件

次の使用制限があります。

  • このオプションは、struct 型にのみ作用します。共用体型、または共用体をメンバとして持つその他の集合型はビットバンド化できません。

  • 構造体のメンバは個別にビットバンド化できません。

  • ビットバンドアクセスは、シングルビットのビットフィールドでのみ生成されます。

  • const オブジェクト、ポインタ、およびローカルオブジェクトについては、ビットバンドアクセスは生成されません。

  • ビットバンディングが利用できるのは一部のプロセッサに限られます。例えば、Cortex-M4 や Cortex-M3 プロセッサが該当します。

Show/hide

Example 1 では、--bitband コマンドラインオプションを使用してコンパイルすると、ビットフィールド i および k への書き込みがビットバンド化されます。

Example 1. ビットバンド化の例

typedef struct {
  int i :1;
  int j :2;
  int k :1;
} BB;

BB value;

void update_value(void)
{
  value.i = 1;
  value.k = 1;
}

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0491EJ
Non-ConfidentialID081711