メインコンテンツ

スカラーのインライン パラメーターの生成

生成されたコード内のスカラーのインライン パラメーター値をリテラルまたはマクロとして表現する

モデル コンフィギュレーション ペイン: [コード生成] / [識別子]

説明

生成コードでスカラーのインライン パラメーター値の式を制御します。[コンフィギュレーション パラメーター][最適化][既定のパラメーター動作][インライン] に設定すると、ブロック パラメーターは生成されたコードでインライン化されて表示されます。

依存関係

このパラメーターには次の特徴があります。

  • ERT ベースのターゲットの場合にのみ表示されます。

  • コード生成時に Embedded Coder® が必要です。

設定

リテラル (既定値) | マクロ
リテラル

スカラーのインライン パラメーターを数値定数として生成します。

マクロ

#define マクロを使用して、スカラーのインライン パラメーターを変数として生成します。この設定により、生成されたコードの可読性が向上します。

すべて展開する

ブロック パラメーターの数値をインライン化して効率的なコードを生成する場合 ([既定のパラメーター動作] コンフィギュレーション パラメーターを使用)、リテラル数値ではなくマクロとして表示されるようにスカラーのパラメーターを構成できます。各マクロには、対応するブロック パラメーターの名前に基づいた一意の名前が付けられます。

モデル例 sldemo_fuelsys_dd_controller を開きます。

sldemo_fuelsys_dd_controller

このモデルでは次のコンフィギュレーション パラメーター設定が使用されています。

  • [既定のパラメーター動作]Inlined に設定されている。

  • [システム ターゲット ファイル] ert.tlc に設定されている。

[スカラーのインライン パラメーターの生成] コンフィギュレーション パラメーターを Macros に設定します。

set_param('sldemo_fuelsys_dd_controller','InlinedPrmAccess','Macros')

モデルからコードを生成します。

slbuild('sldemo_fuelsys_dd_controller')
### Searching for referenced models in model 'sldemo_fuelsys_dd_controller'.
### Total of 1 models to build.
### Starting build procedure for: sldemo_fuelsys_dd_controller
### Successful completion of code generation for: sldemo_fuelsys_dd_controller

Build Summary

Top model targets:

Model                         Build Reason                                         Status           Build Duration
==================================================================================================================
sldemo_fuelsys_dd_controller  Information cache folder or artifacts were missing.  Code generated.  0h 0m 16.911s 

1 of 1 models built (0 models already up to date)
Build duration: 0h 0m 17.32s

ヘッダー ファイル sldemo_fuelsys_dd_controller_private.h は、インライン化された (調整不可能な) ブロック パラメーターを表すいくつかのマクロを定義しています。たとえば、マクロ rtCP_DiscreteFilter_NumCoe_EL_0rtCP_DiscreteFilter_NumCoe_EL_1 は浮動小数点定数を表しています。

file = fullfile('sldemo_fuelsys_dd_controller_ert_rtw',...
    'sldemo_fuelsys_dd_controller_private.h');
coder.example.extractLines(file,'#define rtCP_DiscreteFilter_NumCoe_EL_0',...
    'rtCP_DiscreteFilter_NumCoe_EL_1',1,1)
#define rtCP_DiscreteFilter_NumCoe_EL_0 (8.7696F)
#define rtCP_DiscreteFilter_NumCoe_EL_1 (-8.5104F)

マクロ定義の上にあるコメントは、Discrete Filter ブロック用に生成されたコードが当該マクロを使用していることを示しています。

coder.example.extractLines(file,'Computed Parameter: DiscreteFilter_NumCoef',...
    'Referenced by: ''<S12>/Discrete Filter''',1,1)
/* Computed Parameter: DiscreteFilter_NumCoef
 * Referenced by: '<S12>/Discrete Filter'

ハイパーリンクをクリックすると、モデル内のブロックに移動します。

ヒント

  • ストレージ クラス Define を使用するようにブロック パラメーターを構成すると、生成コードでは変数と #define マクロを使用してパラメーターが表されます。ストレージ クラス設定は [スカラーのインライン パラメーターの生成] をオーバーライドします。

推奨設定

アプリケーション設定
デバッグ影響なし
トレーサビリティMacros
効率性Literals
安全対策影響なし

プログラムでの使用

パラメーター: InlinedPrmAccess
型: 文字ベクトル
値: Literals | Macros
既定の設定: Literals

バージョン履歴

R2006a より前に導入