s-function ソースコード管理について
1 view (last 30 days)
Show older comments
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 のみが直接影響いれば問題ないと予想しますが、 この予想は正しいでしょうか。)
以上、ご教授よろしくお願いいたします。
0 Comments
Accepted Answer
Yoko
on 6 Mar 2017
(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 Comments
More Answers (0)
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!