s-function ソースコード管理について

2 次查看(过去 30 天)
TAKATOSHI INAZU
TAKATOSHI INAZU 2017-3-2
回答: Yoko 2017-3-6
s-function ソースコード管理に関する質問です。
下記のようにフォルダ0の下にフォルダ1と2があり、 main.mdl の中で s-function の s_func1 と s_func2 を使っているとします。 s-function 自体のビルドは、フォルダ1と2の各々に移動して実施しています。
フォルダ0 main.mdl  フォルダ1 s_func1.h s_func1.c s_func1.mexw64  フォルダ2 s_func2.h s_func2.c s_func2.mexw64
フォルダ0上で main.mdl をビルドする際、addpath でフォルダ1と2を参照しています。 このとき
 (1) s_func*.h と s_func*.c は main.mdl のビルドに直接関係していますか。    それとも、s_func*.mexw64 のみが直接関係していますか。  (2) s_func1.h と s_func2.h は、名前が同じで内容が異なるように設計しても    問題ないでしょうか。   (質問 (1) で、s_func*.mexw64 のみが直接影響いれば問題ないと予想しますが、    この予想は正しいでしょうか。)
以上、ご教授よろしくお願いいたします。

采纳的回答

Yoko
Yoko 2017-3-6
(1), (2) の回答ともに、S-Functionのインラインでビルドか、非インラインでビルドするかに依存します。 インラインビルド、非インラインビルドに関する説明が、下記URLに記載されています。
・S-Function とコード生成
・Inlining S-Functions
----------------------------------------------------
(1),(2) について、それぞれ、下記で回答します。
(1) S-Function を非インラインでビルドする場合、MEX-ファイルのみでビルドできます。 S-Function をインラインでビルドする場合は、ソースコードが必要です。
(2) 上記文章を元に、下記の構成があると理解しています。
フォルダ0:main モデル
フォルダ1: s_func1.h (例えばパラメータが違って m=1 など定義されている), s_func1.mexw64
フォルダ2: s_func1.h (例えばパラメータが違って m=2 など定義されている), s_func2.mexw64
非インラインでビルドする場合は、MEX-ファイルが参照されるので影響はありません。 インラインでビルドする場合は、ソースファイルが参照されるため、問題が発生すると考えられます。 実際にコード生成して、動作を確認することで、より理解が深まるかと思います。まだお試し頂いていないようであれば、簡単なモデルでぜひ一度お試しください。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Simulink 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by