このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
メモリ使用量
生成コードによる RAM、ROM およびスタック領域の使用の最適化
コード ジェネレーターが変数をローカルとグローバルのどちらで定義するのかおよびサブシステム関数へのデータの受け渡し方法を指定することにより、メモリ消費量を制御します。コンフィギュレーション設定を変更してデータを保存するメモリの量を削減します。
コード ジェネレーターでは、制御フロー構造を結合し、デッド コード パスおよび計算結果に影響しないブロックのコードを削除して ROM の消費を低減します。初期化コード、関数 reset と関数 disable、防御的なコードなど、必要のないコードを削除して ROM の消費をさらに低減できます。
オブジェクト
関数
トピック
ローカルまたはグローバルでの変数の定義
- スタック領域の割り当てのカスタマイズ
スタックの最大許容サイズを制御し、生成されたコードでデータをローカルとグローバルのどちらで定義するのかに関する一部の制御を提供します。 - Reduce Memory Usage for Signals
Enable parameters that provide the capability to reuse memory allocated for signals. - 生成されたコードにおけるローカル ブロック出力の有効化と再利用
可能な場合、コード ジェネレーターは、ブロック出力をローカル変数として宣言し、これらの変数を再利用できるようにします。 - 生成コードでのグローバル ブロック出力の再利用
コード ジェネレーターはグローバル変数を再利用しようとします。 - グローバル変数の使用の最適化
メモリ使用量および実行速度の要件を満たすためのグローバル変数参照の最適化を選択する。 - Optimize Generated Code by Passing Reusable Subsystem Outputs as Individual Arguments
The code generator eliminates data copies from local variables back to global block I/O structures by passing reusable subsystem outputs as individual arguments instead of as a pointer to a structure stored in global memory. - Reduce Global Variables in Nonreusable Subsystem Functions
To reduce global RAM for a nonreusable subsystem, generate a function interface that passes data through arguments instead of global variables. - Reduce Memory Usage for Models Containing Referenced Models
Reduce RAM usage for a referenced model by generating optimized code that reuses buffers or generates reusable temporary buffers to hold referenced model outputs.
コード サイズの削減
- Remove Zero-Initialization Code
Control whether to initialize internal data (blocks states and block outputs) and external data (root inports and outports whose value is zero) in the generated code. - Remove Reset and Disable Functions from the Generated Code
Remove unreachable (dead-code) instances of the reset and disable functions from the generated code for ERT-based systems that include model referencing hierarchies. - インライン不変信号
生成されたコード内でシンボリック名ではなく不変信号の数値を使用します。 - ブロック パラメーターの数値のインライン化
ブロック パラメーターのリテラル数値をインライン化し、グローバル RAM 使用量を軽減します。 - Optimize Generated Code by Consolidating Redundant If-Else Statements
The code generator optimizes the generated code by combiningif-else
statements that share the same condition. - 生成されたコードからのデッド コード パスの除去
コード ジェネレーターはデッド (つまり、未使用) コード パスを生成されたコードから除去します。 - 複数の for 構造の組み合わせによる生成コードの最適化
コード ジェネレーターはデータの依存関係の分析を使用して、for
構造を組み合わせて静的なコード サイズとランタイム分岐を削減します。 - Control Generation of Initialization Code for Local Variables Set to Zero
By default, the code generator does not explicitly initialize local variables to zero. This produces more efficient code, but violates some coding standards such asMISRA C++:2008 Rule 0-1-4
(Polyspace Bug Finder). This example shows how to disable this optimization to remove initialization code from local variables set to zero.
データを保存するメモリ量の削減
- Reuse Buffers of Different Sizes and Dimensions
Reuse buffers for matrices that have different sizes and shapes. - boolean 変数およびステート構成変数に関するメモリ使用量の削減
ステート構成変数とBoolean
変数を保存するメモリ量を削減します。 - 時間カウンターのメモリ使用量の最適化
コード ジェネレーターが経過時間カウンターに割り当てるメモリを最適化します。 - 論理信号の boolean データを使用した生成コードの最適化
コード ジェネレーターは、論理信号をBoolean
データ型として保存し、生成されたコードを最適化します。 - boolean データをビットフィールドにパッキングすることによる生成コードの最適化
コード ジェネレーターでは、boolean データを 1 ビット ビットフィールドにパッキングして RAM の消費を低減します。 - ベクトル演算の最適化
コード ジェネレーターは、一時ローカル配列をローカル変数に置き換えることで、スタック メモリを削減します。 - 組み込みアプリケーションの単精度データ型の指定
たとえば、単精度プロセッサをターゲットとするなど、浮動小数点データ型が単精度のみのコードを生成します。 - ブロック パラメーターのデータ型を指定した効率的なコードの生成
さらに効率的なコードを生成するには、パラメーターのデータ型と信号のデータ型を一致させるか、パラメーターをさらにサイズが小さいデータ型で格納します。 - Control Operator Type in Generated Code
Generate code with Logical or Bitwise Operators or a combination of both operators.
スタック使用量の解析
- View and Compare Stack Usage Metrics
Determine size of stack memory that is required to run generated code.