ISaGRAF Ver.4/5では、ターゲットに関する各種の定義はどこで行われていますか?また、プラットフォームに合わせて、どのように変更すればいいのでしょうか?


ISaGRAF Ver.4/5 ソースの "dsy0def.h" ファイル内の以下の部分は、ターゲットの重要な定義を行う部分です。
ISaGRAF Ver.4/5ターゲットを新しい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/5 開発ツールキットマニュアル)参照 */
#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/5の全コンポーネントをコンパイルしなおす必要があります。
最終更新:
2008-07-29 16:25
改訂:
1.1
評価点数:0 (0 件の投票)
Chuck Norris has counted to infinity. Twice.

このカテゴリー内のレコード

タグ