グローバル データを含むコードの固定小数点への変換
ワークフロー
グローバル データを使用する MATLAB® コードを固定小数点に変換するには、次の手順に従います。
コード内で変数をグローバルとして宣言します。
詳細は、グローバル変数の宣言を参照してください。
使用する前に、グローバル データを定義し初期化します。
詳細は、グローバル データの定義を参照してください。
固定小数点コンバーターまたは
fiaccel
を使用してコードを固定小数点に変換します。
固定小数点コンバーターは MATLAB 関数と生成された MEX 関数の間で常にグローバル データを同期します。
グローバル変数の宣言
グローバル データの使用時には、まず MATLAB コード内でグローバル変数を宣言しなければなりません。次のコードは 2 つのグローバル変数 AR
と B
を使用する関数 use_globals
を示します。
function y = use_globals(u) %#codegen % Declare AR and B as global variables global AR; global B; AR(1) = u + B(1); y = AR * 2;
グローバル データの定義
グローバル データの定義は、MATLAB グローバル ワークスペース、固定小数点コンバーター プロジェクトまたはコマンド ラインのいずれでも行えます。プロジェクトまたはコマンド ラインでグローバル データを初期化しなかった場合、ソフトウェアは MATLAB グローバル ワークスペース内で変数を探します。
MATLAB グローバル ワークスペース内でのグローバル データの定義
グローバル変数の宣言で説明されている関数 use_globals
を変換するには、最初にグローバル データを定義して初期化しなければなりません。
global AR B;
AR = ones(4);
B=[1 2 3];
固定小数点コンバーター プロジェクトでのグローバル データの定義
[入力の型を定義] ページでテスト ファイルを選択して実行した後で、[このコードはグローバル変数を使用していますか?] の隣の [はい] を選択します。
既定では固定小数点コンバーターは、プロジェクト内の最初のグローバル変数に
g
という名前を付けます。コード内で使用するグローバル変数の名前を入力します。グローバル変数を追加した後で型を指定します。
[グローバルの追加] をクリックしてさらにグローバル変数を入力します。
メモ
型を指定しないと、グローバル ワークスペースに同じ名前の変数を作成しなければなりません。
コマンド ラインでのグローバル データの定義
コマンド ラインでグローバル データを定義するには、fiaccel
-globals
オプションを使用します。たとえば、グローバル変数の宣言で説明されている関数 use_globals
を固定小数点に変換するには、コマンド ラインで 2 つのグローバル入力 AR
と B
を指定します。-args
オプションを使用して、入力 u
が実数の double スカラーであることを指定します。
fiaccel -float2fixed cfg -global {'AR',ones(4),'B',[1 2 3]} use_globals -args {0}
-globals
フラグを使用し、-globals {'g', {type, initial_value}}
の形式でデータ型と初期値を指定します。可変サイズのグローバル データの初期値を指定するには、-globals
フラグを使用し、-globals {'g', {type, initial_value}}
の形式でデータ型と初期値を指定します。たとえば、初期値 [1 1]
と上限 [2 2]
をもつグローバル変数 g
を指定するには、次のように入力します。
fiaccel -float2fixed cfg -global {'g', {coder.typeof(0,[2 2],1),[1 1]}} myfunction
coder.typeof
を参照してください。定数のグローバル データの定義
グローバル変数の値が実行時に変化しないことがわかっている場合、グローバル変数が定数値をもつと指定することで固定小数点コードのオーバーヘッドを減らすことができます。定数のグローバル変数には書き込みできません。
固定小数点コンバーターでの定数のグローバル データの定義
[入力の型を定義] ページでテスト ファイルを選択して実行した後で、[このコードはグローバル変数を使用していますか?] の隣の [はい] を選択します。
コード内で使用するグローバル変数の名前を入力します。
グローバル変数の右側のフィールドをクリックします。
[定数値の定義]
を選択します。定数のグローバル変数の右にあるフィールドに MATLAB 式を入力します。
コマンド ラインでの定数のグローバル データの定義
fiaccel
コマンドを使用してグローバル変数が定数であると指定するには、coder.Constant
クラスと共に -globals
オプションを使用します。
固定小数点変換の構成オブジェクトを定義します。
cfg = coder.config('fixpt');
coder.Constant
を使用してグローバル変数が定数値をもつことを指定します。たとえば、次のコードはグローバル変数g
が初期値4
をもち、グローバル変数gc
が定数値42
をもつことを指定します。global_values = {'g', 4, 'gc', coder.Constant(42)};
-globals
オプションを使用してコードを固定小数点に変換します。たとえば、global_values
を固定小数点に変換する場合、cell 配列myfunction
にグローバル変数が定義されるように指定します。fiaccel -float2fixed cfg -global global_values myfunction
コード生成レポート内の定数のグローバル データ
コード生成レポートは定数のグローバル変数について次の情報を提供します。
Global
の型 ([変数] タブ内)。強調表示された変数名 ([関数] ペイン内)