__attribute__((bitband)) コンパイラ型属性

__attribute__((bitband)) は、構造体のビットバンド型定義に使用される型属性です。

Example 28 では、未配置のビットバンドオブジェクトを、ビットバンド領域内に再配置する必要があります。そのためには、適切なスキャッタロード記述ファイルを使用するか、--rw_base リンカコマンドラインオプションを使用します。

Example 28. 未配置のオブジェクト

/* foo.c */

typedef struct {
  int i :1;
  int j :2;
  int k :3;
} BB __attribute__((bitband));

BB value; // 未配置のオブジェクト

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

/* foo.c の終わり */

または、__attribute__((at())) を使用して、ビットバンド領域内の特定のアドレスにビットバンドオブジェクトを配置することもできます。詳細については、Example 29を参照して下さい。

Example 29. 配置済みのオブジェクト

/* foo.c */

typedef struct {
  int i :1;
  int j :2;
  int k :3;
} BB __attribute((bitband));

BB value __attribute__((at(0x20000040))); // 配置済みのオブジェクト

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

/* foo.c の終わり */

Show/hide関連項目

概念
参照
その他の情報
  • 該当するプロセッサの『テクニカルリファレンスマニュアル』

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