FAQ 1011639 : -Xbit_orderオプションを指定してビット・フィールドのメンバの割り付けを変更した場合、iodefine.hを使用した周辺I/Oへのアクセスに影響は出ますか?

Q: 質問

-Xbit_orderオプションを指定してビット・フィールドのメンバの割り付けを変更した場合、iodefine.hを使用した周辺I/Oへのアクセスに影響は出ますか?


A: 回答

CS+が生成するiodefine.hは、ビット・フィールドのメンバを下位ビットから割り付けているものとして周辺I/Oを定義しています。その ため、-Xbit_order=leftオプションを指定して上位ビットからの割り付けに変更した場合、意図しないアドレスにアクセスしてしまうことにな ります。
iodefine.hをインクルードして周辺I/Oにアクセスする場合は、以下のいずれかの方法で意図したアドレスにアクセスできるようにしてください。

  1. -Xbit_order=rightオプションを指定する。
  2. -Xbit_order=leftオプションを指定する場合、#include "iodefine.h"を#pragma bit_order rignt ~#pragma bit_orderで囲う。

 

 

適用製品

RH850ファミリ用Cコンパイラパッケージ
他にご質問がございましたら、リクエストを送信してください