ISaGRAF Ver.4ターゲットを新しいOSに移植する場合、プラットフォームの仕様に合わせて定義します。
この内容は、ワークベンチ側での設定と必ず一致させる必要があります。
#define INTEL /* TO DO: システムがINTELベースの場合。それ以外はこの定義を外す。 */ #define MOTOROLA /* TO DO: システムがMOTOROLA ベースの場合。それ以外はこの定義を外す。 */ #define TARGET_NAME "MYTARGETNAME" /* TO DO: ここでターゲット名を定義します。 */ #define ISA_TMM_M /* TO DO: ミディアムメモリモデルの場合。それ以外はこの定義を外す。*/ #define ISA_TMM_L /* TO DO: ラージメモリモデルの場合。それ以外はこの定義を外す。 */ |
通常、その他の定義はターゲットの各機能の実装の有無に応じて define/undefを行います。dsys0def.hには他に以下のような定義があります。
#define ITGTDEF_USF /* C言語ファンクション */ #define ITGTDEF_FBLOCK /* C言語ファンクションブロック */ #define ITGTDEF_CNV /* I/O チャネル用 C言語変換ファンクション */ #define ITGTDEF_RTIOCNVGAIN /* I/O チャネル用 ゲインとオフセット変換 */ #define ITGTDEF_FLOAT /* 実数型変数使用の有無 標準ファンクション/FBは使用している*/ #define ITGTDEF_MODIF /* リソースを停止しないオンライン修正 */ #define ITGTDEF_STRING /* string型変数使用の有無 標準ファンクション/FBは使用している */ #define ITGTDEF_PRINTF /* printf関数による、標準出力へのエラーの出力 */ #define ITGTDEF_RETAIN /* 保持変数- 詳細は PRoDK.chm(ISaGRAF Ver.4 開発ツールキットマニュアル)参照 */ #undef ITGTDEF_THREAD /* OS はマルチスレッドであり、マルチタスクではない */ #undef ITGTDEF_NO_GLOBALS /* グローバル変数の宣言をしない(マルチスレッドOSで、タスクのグローバル変数が全てのタスクで共有されてしまう場合に必要) */ #undef ITGTDEF_SEGMENT /* セグメントメモリかどうか */ #undef ITGTDEF_SFCEVOCHECK /* SFCダイナミック動作でのオーバーフロー発生の検査の有無 */ #define ITGTDEF_USEREGISTER /* パフォーマンス向上のためTICのインタプリタでC言語のregisterキーワードを使用する */ #define ITGTDEF_KVB /* カーネル変数のバインディング */ #define ITGTDEF_CFB /* 通信ファンクションブロック */ |
これらの定義の define/undef を1つでも変更したら、ISaGRAF Ver.4の全コンポーネントをコンパイルしなおす必要があります。