HOS-V4のhosdenv.hの中の__CPU__について [HOS]
※またまたHEW上のH8マイコンでの開発の話です。
カーネルライブラリを構築する時、一部のファイルはハードウエアや開発環境に依存したファイルを使用します。
Cソース等は直接構成ファイルを指定していますが、ヘッダーファイルはこの依存性を解決する為にhosdenv.hと言うヘッダーファイルを使っています。
その中身の一部を紹介すると
そこで皆さんは疑問に思われるに違いない!。「「__CPU__」とは何ぞや!。」とね。
これは、ルネサスのH8用コンパイラの暗黙の宣言で、本来コンパイラマニュアルに掲載されているべき物ですが、実は手持ちのマニュアルには存在しない。過去の2002年頃のマニュアルを見ても無い!。
しかしこの暗黙の宣言は実際には存在しています。例えばHEWのウイザードを使用してH8/300H用のプロジェクトを生成した場合、iodefine.hの中にもその記述を見る事ができます。
結局手持ちのテキストベースのドキュメントの中からこの暗黙の宣言に関する記述を見つけられなかったので(いや、何処かには在るのでしょうけれど、見つけられない)、バイナリーファイルの中身を検索して、何とか以下の記述を抽出しました。
__CPU__に続く番号が、先のhosdenv.hの__CPU__の番号に対応すると思われます。
と言う訳で、HOS-V4をH8/300H以外にも移植する時の参考にして下さい。
※しかしこうやって一般的なドキュメントに記述を行っていないと言うことは、ルネサスの方向性としてはあまり使用して欲しくないのかもしれません。
先のhosdenv.hの中の記述も、
に変えた方が良いのかもしれません。
カーネルライブラリを構築する時、一部のファイルはハードウエアや開発環境に依存したファイルを使用します。
Cソース等は直接構成ファイルを指定していますが、ヘッダーファイルはこの依存性を解決する為にhosdenv.hと言うヘッダーファイルを使っています。
その中身の一部を紹介すると
#elif defined(__CPU__) /* 日立H8コンパイラ */ #if (__CPU__ == 3) || (__CPU__ == 2) /* H8/300H */ #include "h83/hospac.h" #endif
そこで皆さんは疑問に思われるに違いない!。「「__CPU__」とは何ぞや!。」とね。
これは、ルネサスのH8用コンパイラの暗黙の宣言で、本来コンパイラマニュアルに掲載されているべき物ですが、実は手持ちのマニュアルには存在しない。過去の2002年頃のマニュアルを見ても無い!。
しかしこの暗黙の宣言は実際には存在しています。例えばHEWのウイザードを使用してH8/300H用のプロジェクトを生成した場合、iodefine.hの中にもその記述を見る事ができます。
結局手持ちのテキストベースのドキュメントの中からこの暗黙の宣言に関する記述を見つけられなかったので(いや、何処かには在るのでしょうけれど、見つけられない)、バイナリーファイルの中身を検索して、何とか以下の記述を抽出しました。
__300L__ __CPU__ 0 __300__ __CPU__ 1 __300HN__ __CPU__ 2 __300HA__ __CPU__ 3 __ADDRESS_SPACE__ 20 __300HA__ __CPU__ 3 __ADDRESS_SPACE__ 24 __2000N__ __CPU__ 6 __2000A__ __CPU__ 7 __ADDRESS_SPACE__ 20 __2000A__ __CPU__ 7 __ADDRESS_SPACE__ 24 __2000A__ __CPU__ 7 __ADDRESS_SPACE__ 28 __2000A__ __CPU__ 7 __ADDRESS_SPACE__ 32 __2600N__ __CPU__ 4 __2600A__ __CPU__ 5 __ADDRESS_SPACE__ 20 __2600A__ __CPU__ 5 __ADDRESS_SPACE__ 24 __2600A__ __CPU__ 5 __ADDRESS_SPACE__ 28 __2600A__ __CPU__ 5 __ADDRESS_SPACE__ 32
__CPU__に続く番号が、先のhosdenv.hの__CPU__の番号に対応すると思われます。
と言う訳で、HOS-V4をH8/300H以外にも移植する時の参考にして下さい。
※しかしこうやって一般的なドキュメントに記述を行っていないと言うことは、ルネサスの方向性としてはあまり使用して欲しくないのかもしれません。
先のhosdenv.hの中の記述も、
#elif defined(__RENESAS__) /* ルネサスH8コンパイラ */ #if defined(__300HN__) || defined(__300HA__) /* H8/300H */ #include "h83/hospac.h" #endif
に変えた方が良いのかもしれません。
ITRONプログラミング入門―H8マイコンとHOSで始める組み込み開発
- 作者: 濱原 和明
- 出版社/メーカー: オーム社
- 発売日: 2005/04/25
- メディア: 単行本
2008-04-11 14:11
nice!(0)
コメント(0)
トラックバック(0)
コメント 0