5

自動コード生成を目的とした Simulink モデルがあります。

私のモデルは、パスに関するハードコーディングされた仮定を持つ S-Function (別のパーティによって開発されたもの) を使用しています。たとえば、いくつかの外部データ ファイルが必要であり、これらは のような相対パスを介して S-Function で参照されます..\Bin\data\datafile.bin。このため、モデルを実行する前に、MATLAB の現在の作業ディレクトリを特定のパスに設定する必要があります。

モデルのコールバック関数を介して、正しいパスを自動的に確認して設定できます。ただし、すべてのモデル コールバック関数は、ビルド プロセスではなく、シミュレーション プロセスにのみ関連しているようです。つまり、現在のディレクトリに関係なくモデルを実行できますが、モデルをビルドしようとすると、手動で MATLAB を正しいディレクトリに戻さない限り、常に失敗します。

言うまでもなく、それはかなり面倒です。それで、ビルドプロセスを開始する前に実行される関数である「preBuildFcn」コールバック関数のようなものがあるかどうか疑問に思っていましたか? 他のソリューション (S-Function の変更を伴わないもの) も大歓迎です。

4

2 に答える 2

4

Simulink / Embedded Coder のビルド プロセスには多くのフックがあります ('entry'、'before_tlc'、'after_tlc'、'before_make'、'after_make'、'exit'、および 'error')。「エントリ」フックが必要だと思います。

ドキュメントSTF_make_rtw_hook ファイルによるビルド プロセスのカスタマイズで説明されているように、 your_system_target_file name _make_rtw_hookという名前で M 関数を記述するだけで済みます。

オンライン ドキュメントを開けない場合 (ログインが必要)、MATLAB インストールの HTML へのパスは次のとおりです: MATLAB root \help\rtw\ug\customizing-the-target-build-process-with-the- stf-make-rtw-hook-file.html

于 2014-09-09T12:33:16.227 に答える
1

simulink モデルの構築が通常の MATLAB プログラムの構築と十分に似ているかどうかはわかりませんが、過去に使用したものは次のとおりです。

  1. プロジェクトを手動でセットアップする
  2. プログラムでプロジェクトをビルドする

プロジェクトのビルドに使用されるプログラムは、パスを設定したり、他のカスタム処理を実行したりできる必要があります。

于 2014-09-09T11:22:48.180 に答える