主要内容

このページ最新ではありませ。をクリックし,英语のの最新版版を参照参照し。

コード生成のが含まれるモデル准备准备

嵌入式编码器®を使用する,,,つ以上のバリアントの肢がが含まれるれるれ金宝appるれる®モデルからできます。ささに各各バリアントの选択のアクティベーションをを制御するプリプリプロセッサののの条件条件

メモ

金宝appsimulinkは,生成ののののsimulink函数をを含むインスタンス参照モデルを使用することを。。。。。。

stf_make_rtw_hookファイルをしプロセスをカスタマイズするの详细については,stf_make_rtw_hookファイルファイルビルドプロセスカスタマイズ(金宝appSimulink编码器)を参照しください。

バリアント制御変数の金宝appsimulink.parameterオブジェクトへの変换

MATLAB®変数使用とモデルの作成にバリアント制御式のの作成ををを迅速迅速にににに行い行い,,コード生成生成ののプリプリプリプロセッサプロセッサプロセッサののの条件条件ををを生成生成生成するするするするすることができことができ,matlab変数変数を金宝appsimulink.parameterオブジェクトに変换ます。

  1. matlabバリアントバリアントをを金宝appsimulink.parameterオブジェクトにモデルを指定。。

    模型='my_model_containing_variant_choices';Open_System(模型);
  2. バリアント制御でされるを取得します。

    vars = 金宝appsimulink.variantmanager.findvariantcontrolvars(模型)
    vars = 4x1 struct array with fields: Name Value Exists Source SourceType
  3. コードのに定义インポートさよう,制御値値を指定するための外部外部ヘッダーヘッダーファイルを作成作成

    HeaderFileName = [型号'_importedDefines.h'];headerpreamble = strrep(upper(headerfilename),'。',,,,'_');fid = fopen(headerFileName,,'W+');fiderr =(fid == -1);如果(fiderr)fprintf(``存在错误创建标头文件%s:...\ n',headerFileName);别的fprintf('+++创建标头文件''%s''带有变体控件...variable定义。\ n \ n',headerFileName);流(fid检测器,'#ifndef%s \ n',headerpreamble);流(fid检测器,'#define%s \ n',headerpreamble);结尾

    金宝appsimulink.parameterオブジェクトとして定義されたバリアント制御変数は、次のいずれかのストレージ クラスをもつことができます。

    • ヘッダーファイル指定された定义またはImportedDefine

    • CompilerFlag

    • SystemConstant(AutoSar)

    • データをとして定义独自のストレージクラス

  4. すべてmatlab変数変数をしてそれらをを金宝appsimulink.parameterオブジェクトに変换ます。

    计数= 0;为了countvars = 1:长度(vars)var = vars(countvars).name;val = vars(countvars).value;如果isa(val,'金宝appsimulink.parameter'% 没做什么继续;结尾count = count+1;%创建和配置simulink.paramete金宝appr对象对应于控制变量名称的%。%将存储类指定为定义(自定义)。newVal = 金宝appsimulink.parameter(val);newval.datatype =“int16”;newval.coderinfo.storageclass ='风俗';newval.coderinfo.customstorageclass =“定义(自定义)”;newval.coderinfo.customattributes.headerfile = headerFileName;金宝appsimulink.data.AssigningLobal(Model,var,newval);如果〜fiderr fprintf(fid,'#endif \ n');fclose(fid);结尾结尾

メモ

定义ストレージクラスはファイルをにすることができ。。

プリプロセッサをするためのモデル构成构成

变体子系统ブロックまたはVariant Modelブロック内のを表现する,のそれぞれの选択に対して生成さされるれるコードコードはは,,,#如果#else#elifおよび#万一によって囲まれ。

变体源ブロックまたは变体水槽ブロックを使用してバリアントの選択を表現する場合、バリアントのそれぞれの選択に対して生成されるコードは、C のプリプロセッサ条件#如果#万一によって囲まれ。

このためなはコンパイルにさ,プロセッサ条件条件によってコードのどのどのセクションがが実行されるれるかか

メモ

嵌入式编码器®ののののが必要必要。。。。。。

  1. 金宝appsimulinkツールストリップの[モデル]タブで,[モデル]をクリックし。

  2. [コード]ペインを选択,[システムターゲット]ert.tlcに设定し。

  3. [レポート]ペインで,[コード生成を]を选択し。

    メモ

    [コード]ペインで,[ファイルパッケージ]ドロップダウンリストから[コンパクト]オプションをした场合,model_types.hファイルはされず,model_types.hファイルの内容はmodel.hファイルにされます。

  4. [コード]ペインを选択,[カスタムストレージをする][适用]をオフにます。

  5. モデルでの选択(变体子系统变体源变体水槽またはVariant Model)を含むを右してて[ブロック パラメーター]を选択し。

  6. [バリアント制御]パラメーターに[式](既定のオプション) が選択されていることを確認してください。

  7. [バリアントのの]リストから[コードの]を选択し。

    金宝appsimulink simulinkはの中中シミュレーション中バリアント选択をすべてしますます。このこのこの解析解析によって,,バリアントのすべてのの选択についてについてコード生成生成

  8. モデルを作成ます。

关连する例

详细