こんにちは。NoMaYです。最近、以下のスレッドに関わったのですが、どうもiodefine.hの作成ミスがあったのではないかなぁと思われましたので、スレッドを立ててみることにしました。iodefine.h で、IODEFINE_H_HISTORY キーワードについてjapan.renesasrulz.com/cafe_rene/f/forum5/8446/iodefine-h-iodefine_h_history続く。(すみません、上記スレッドの投稿主さんのhirakuni45さんにおかれましては、当方の投稿が終了するまで暫くお待ち頂ければ、と思います。あわてない、あわてない、との、一休さんの心持も良いかと思うのです。)
こんにちは。NoMaYです。関わったスレッドはGCCの場合の話でしたが、まずCC-RXの場合を調べることにしました。CS+のRX向け(CC-RX向け)のiodefine.hの原本がまとめられているフォルダをgrepしてみると、大まかに以下の3種類が見受けられました。(1) ビットフィールド定義が使えないもの - その1 - #ifdef IODEFINE_H_HISTORY~#endifの条件コンパイルで除かれている(2) ビットフィールド定義が使えないもの - その2 - //にてビットフィールド定義がコメントアウトされている(3) ビットフィールド定義が使えるものgrepしてみた時の画面コピー:具体例:(1) ビットフィールド定義が使えないもの - その1 - #ifdef IODEFINE_H_HISTORY~#endifの条件コンパイルで除かれている品種: RX66T(下記内容)、RX72T
typedef struct st_usb { union { unsigned short WORD;#ifdef IODEFINE_H_HISTORY struct { unsigned short :5; unsigned short SCKE:1; unsigned short :3; unsigned short DCFM:1; unsigned short DRPD:1; unsigned short DPRPU:1; unsigned short :3; unsigned short USBE:1; } BIT;#endif } SYSCFG;…略…
(2) ビットフィールド定義が使えないもの - その2 - //にてビットフィールド定義がコメントアウトされている品種: RX64M(下記内容)、RX71M、RX230、RX231、RX2Z4(謎の品種)
struct st_usb0 { union { unsigned short WORD;// struct {// unsigned short :5;// unsigned short SCKE:1;// unsigned short :3;// unsigned short DCFM:1;// unsigned short DRPD:1;// unsigned short DPRPU:1;// unsigned short :3;// unsigned short USBE:1;// } BIT; } SYSCFG;…略…
(3) ビットフィールド定義が使えるもの品種: RX62N(下記内容)、左記と上記の(1)と(2)を除くUSB内蔵品
struct st_usb0 { union { unsigned short WORD; struct { unsigned short :5; unsigned short SCKE:1; unsigned short :3; unsigned short DCFM:1; unsigned short DRPD:1; unsigned short DPRPU:1; unsigned short :3; unsigned short USBE:1; } BIT; } SYSCFG;…略…
続く。