Real-Time Workshop User's Guide    

Autoストレージクラスをもつ信号

この節では、Autoストレージクラスをもつ信号に対して利用可能なオプションを説明します。これらのオプションを使って、信号メモリの再利用を制御したり、信号に対してローカルまたはグローバル (rtB)ストレージを選択することができます。

Signal storage reuseオプションは、信号のメモリの再利用を制御します。このオプションは、Simulation ParametersダイアログボックスのAdvancedページにあります。

Local block outputsオプションは、信号がrtBのメンバとして格納されるか、あるいは関数のローカル変数として格納されるかを決定します。このオプションは、Real-Time WorkshopページのGeneral code generation optionsカテゴリにあります。

デフォルトでは、Signal storage reuseLocal block outputsの両方がオンです。

これらのオプションは、相互に作用します。Signal storage reuseオプションがオンのとき

つぎのコードの例は、Signal storage reuse および Local block outputs オプションの効果を説明しています。例題は、Signals_exampモデル(図 3-12を参照)から生成されました。

最初の例は、Signal storage reuseLocal block outputsがオン(デフォルト)であるときの、最大の信号ストレージ最適化について説明しています。Sine WaveおよびGainブロックの出力信号は、MdlOutputs関数のローカル変数rtb_temp0を再利用します。

限られたスタック領域によって制限されている場合は、Local block outputsをオフにして、メモリの再利用を利用できます。つぎの例は、Local block outputsがオフでSignal storage reuseがオンのとき生成されています。Sine WaveおよびGainブロックの出力信号は、rtBのメンバrtB.temp0を再利用します。

Signal storage reuseオプションがオフのとき、信号のストレージは再利用されず、 Local block outputsオプションは利用不可能です。これにより、つぎのコードのように、すべてのブロック出力はグローバルかつユニークになります。

大規模モデルで、Signal storage reuseを利用不可能にすると、RAMおよびROMの使用量が著しく増加します。そのため、この方法は推奨できません。

表 3-5は、Signal storage reuse および Local block outputsオプションの可能な組合せをまとめたものです。

表 3-5: Global, Local and Reusable Signal Storageオプション

Signal storage reuse ON
Signal storage reuse OFF
Local Block
Outputs ON
ローカルメモリで信号を再利用(最適化)
N/A
Local Block
Outputs OFF
rtB構造体で信号を再利用
rtB構造体の個々の信号のストレージ

スタック領域割り当ての制御

Local block outputs オプションがオンのとき、スタック領域の使用は、つぎのTLC変数によって制限されます。

システムターゲットファイルのこれらの変数の値は、必要ならば変更できます。詳細は、「Target Language Compiler変数の割り当て」を参照してください。


 信号のストレージの概念 テストポイントの宣言