coder.HardwareImplementation
MATLAB コードから C/C++ コードを生成するためのハードウェア固有の構成パラメーター
説明
coder.HardwareImplementation
オブジェクトには、スタティック ライブラリ、ダイナミック リンク ライブラリまたは実行可能プログラムを生成するために codegen
が使用するハードウェア固有の構成パラメーターが含まれます。
coder.HardwareImplementation
オブジェクトを使用するには、このオブジェクトを、codegen
に渡す構成オブジェクト (coder.CodeConfig
オブジェクトまたは coder.EmbeddedCodeConfig
オブジェクト) に関連付けなければなりません。coder.HardwareImplementation
オブジェクトを作成して構成オブジェクトに関連付けるには、coder.config
を使用して構成オブジェクトを作成します。
次のいずれかの方法で coder.HardwareImplementation
プロパティにアクセスします。
関連付けられた構成オブジェクトの
HardwareImplementation
プロパティ。次に例を示します。cfg = coder.config('lib'); cfg.HardwareImplementation.ProdHWDeviceType
関連付けられた構成オブジェクトのダイアログ ボックス。ダイアログ ボックスによるハードウェア実行プロパティへのアクセスを参照してください。
既定では、coder.HardwareImplementation
プロパティで MATLAB® ホスト コンピューターの特性を指定します。別のデバイスを指定するには、ProdHWDeviceType
プロパティを変更します。ハードウェア デバイスによって、他のデバイス固有のプロパティと変更できるプロパティの値が決まります。
作成
coder.HardwareImplementation
オブジェクトを作成するには、coder.config
を使用して、スタンドアロン コードを生成する構成オブジェクト (coder.CodeConfig
オブジェクトまたは coder.EmbeddedCodeConfig
オブジェクト) を作成します。coder.config
は構成オブジェクトを作成するときに、coder.HardwareImplementation
オブジェクトも作成します。coder.config
は構成オブジェクトの HardwareImplementation
プロパティを coder.HardwareImplementation
オブジェクトに設定します。
プロパティ
Description
— オブジェクトの説明
'class HardwareImplementation: Hardware implementation specifications.'
(既定値) | 文字ベクトル
coder.HardwareImplementation
オブジェクトの説明。文字ベクトルとして指定します。
Name
— オブジェクト名
'HardwareImplementation'
(既定値) | 文字ベクトル
オブジェクト名。文字ベクトルとして指定します。
ProdEqTarget
— 製品ハードウェアとターゲット ハードウェアの特性の等価性
true
(既定値) | false
製品ハードウェアとターゲット (テスト) ハードウェアの特性の等価性。true
または false
として指定します。
coder.HardwareImplementation
オブジェクトには 2 組のハードウェア プロパティがあります。1 つは製品ハードウェアの特性を表し、もう 1 つはターゲット (テスト) ハードウェアの特性を表します。既定では、codegen
は製品ハードウェアのプロパティを使用します。通常、ProdEqTarget
は true
に設定され、製品プロパティでのみ機能します。
ProdEqTarget
を false
に設定するのは、ターゲット ハードウェア プロパティを有効にする高度な機能です。ProdEqTarget
を false
に変更すると、codegen
はターゲット ハードウェアのプロパティを使用し、ターゲット ハードウェアでの製品ハードウェアの動作をエミュレートするコードを生成します。ProdEqTarget
をテスト用に false
に設定する場合、生成されたコードを製品ハードウェアに展開する前に、ProdEqTarget
を true
に設定し、コードを再生成します。
Embedded Coder® プロセッサインザループ (PIL) の実行の開始時に、ソフトウェアは、PIL の実行が行われるターゲット ハードウェアを基準にしてハードウェア実行プロパティをチェックします。ProdEqTarget
が true
の場合、ソフトウェアで製品プロパティ (Prod
で始まるプロパティ) がチェックされます。ProdEqTarget
が false
の場合、ターゲット プロパティ (Target
で始まるプロパティ) がチェックされます。Code Verification Through Software-in-the-Loop and Processor-in-the-Loop Execution (Embedded Coder)を参照してください。
製品ハードウェア プロパティ
ProdBitPerChar
— C の char
データ型のビット長
8 (既定値) | 8 ~ 32 の範囲の 8 の倍数
製品ハードウェアがサポートする C の char データ型のビット長。8 ~ 32 の範囲の整数値として指定します。値は 8 の倍数でなければなりません。
ProdBitPerDouble
— C の double
データ型のビット長
64
このプロパティは読み取り専用です。
製品ハードウェアがサポートする C の double データ型のビット長。
ProdBitPerFloat
— C の浮動小数点データ型のビット長
32
このプロパティは読み取り専用です。
製品ハードウェアがサポートする C の浮動小数点データ型のビット長。
ProdBitPerInt
— C の int
データ型のビット長
32 (既定値) | 8 ~ 32 の範囲の 8 の倍数
製品ハードウェアがサポートする C の int
データ型のビット長。8 ~ 32 の範囲の整数値として指定します。値は 8 の倍数でなければなりません。
ProdBitPerLong
— C の long
データ型のビット長
32 (既定値) | 32 ~ 128 の範囲の 8 の倍数
製品ハードウェアがサポートする C の long
データ型のビット長。32 ~ 128 の範囲の整数値として指定します。値は 8 の倍数でなければなりません。
ProdBitPerLongLong
— C の long long
データ型のビット長
64 (既定値) | 64 ~ 128 の範囲の 8 の倍数
製品ハードウェアがサポートする C の long long
データ型のビット長。64 ~ 128 の範囲の整数値として指定します。値は 8 の倍数でなければなりません。
C の long long
データ型は、ご使用の C コンパイラが long long
をサポートしている場合にのみ使用してください。
依存関係:
ProdLongLongMode
では、ProdBitPerLongLong
プロパティを使用できます。
ProdBitPerPointer
— ポインター データのビット長
64 (既定値) | 8 ~ 64 の範囲の 8 の倍数
製品ハードウェアがサポートするポインター データのビット長。8 ~ 64 の範囲の整数値として指定します。値は 8 の倍数でなければなりません。
ProdBitPerPtrDiffT
— ptrdiff_t
データのビット長
64 (既定値) | 8 | 16 | 24 | 32 | 40 | 64 | 128
製品ハードウェアがサポートする ptrdiff_t
データのビット長。8、16、24、32、40、64 または 128 として指定します。値は ProdBitPerInt
の値以上でなければなりません。
ProdBitPerShort
— C の short
データ型のビット長
16 (既定値) | 8 ~ 32 の範囲の 8 の倍数
製品ハードウェアがサポートする C の short
データ型のビット長。8 ~ 32 の範囲の 8 の倍数として指定します。
ProdBitPerSizeT
— size_t
データのビット長
64 (既定値) | 8 | 16 | 24 | 32 | 40 | 64 | 128
製品ハードウェアがサポートする size_t
データのビット長。8、16、24、32、40、64 または 128 として指定します。値は ProdBitPerInt
の値以上でなければなりません。
ProdEndianess
— データ ワードの最初のバイトの意味
'LittleEndian'
(既定値) | 'BigEndian'
| 'Unspecified'
製品ハードウェアのデータ ワードの最初のバイトの意味。この表のいずれかの値として指定します。
値 | 説明 |
---|---|
'LittleEndian' | この値が既定値です。 最下位バイトがバイト順で最初に表示されます。 |
'BigEndian' | 最上位バイトがバイト順で最初に表示されます。 |
'Unspecified' | コードによってハードウェアのバイト順 (エンディアン) が決定されます。この値を指定すると効率がよくないコードが生成されます。 |
ProdHWDeviceType
— 製品ハードウェア ボードのメーカーと種類
'Generic->MATLAB Host Computer'
(既定値) | 文字ベクトル
製品ハードウェア ボードのメーカーと種類。文字ベクトルとして指定します。
ProdHWDeviceType
プロパティを指定すると、製品ハードウェアのデバイス固有のプロパティが設定されます。デバイス固有のプロパティは、指定されたハードウェアに対して有効な場合にのみ変更できます。
codegen
は ASIC または FPGA のコードを生成できません。ProdHWDeviceType
を 'ASIC/FPGA->ASIC/FPGA'
に設定すると、ProdEqTarget
は false
になり、コード ジェネレーターはターゲット (テスト) デバイスのプロパティを使用します。'ASIC/FPGA->ASIC/FPGA'
は TargetHWDeviceType
に対して有効な値ではありません。
ProdIntDivRoundTo
— 2 つの符号付き整数の除算の丸め
'Zero'
(既定値) | 'Undefined'
| 'Floor'
2 つの符号付き整数の除算結果の製品ハードウェア用コンパイラによる丸め。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
'Zero' | この値が既定値です。 商が 2 つの整数の間にある場合、コンパイラは 0 に近い方の整数に丸めます。 |
'Floor' | 商が 2 つの整数の間にある場合、コンパイラは負の無限値に近い方の整数に丸めます。 |
'Undefined' | コンパイラは 0 または負の無限値方向に丸めません。つまりコンパイラの丸め動作は未定義です。 |
ProdLongLongMode
— long long データ型のサポート
true
(既定値) | false
C コンパイラの long long
データ型のサポート。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
true | この値が既定値です。 コード ジェネレーターは生成されたコードで C の |
false | コード ジェネレーターは生成されたコードで C の |
ほとんどの C99 コンパイラは long long
をサポートします。
ヒント:
ProdLongLongMode
は、指定された製品ハードウェアが C のlong long
データ型をサポートする場合にのみ有効になります。コンパイラで C の
long long
がサポートされていない場合、このパラメーターは選択しないでください。
依存関係:
ProdLongLongMode
では、ProdBitPerLongLong
プロパティを使用できます。
ProdShiftRightIntArith
— 符号付き整数の右シフトを算術右シフトとして実装
true (既定値) | false
製品ハードウェア用 C コンパイラによる、算術右シフトとしての符号付き整数の右シフトの実装。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
true | この値が既定値です。 C コンパイラが符号付き整数の右シフトを算術右シフトとして実装することを示します。算術右シフトは、右シフトによって空いたビットを最上位ビットの値で埋めます。最上位ビットは数値の符号を示します。 |
false | C コンパイラが符号付き整数の右シフトを算術右シフトとして実装しないことを示します。 |
ProdWordSize
— マイクロプロセッサのネイティブ ワード サイズ
64 (既定値) | 8 ~ 64 の範囲の 8 の倍数
製品ハードウェアに対するマイクロプロセッサのネイティブ ワード サイズ。8 ~ 64 範囲の整数値として指定します。値は 8 の倍数でなければなりません。
ターゲット ハードウェアのプロパティ
TargetBitPerChar
— C の char
データ型のビット長
8 (既定値) | 8 ~ 32 の範囲の 8 の倍数
ターゲット ハードウェアがサポートする C char データ型のビット長。8 ~ 32 の範囲の整数値として指定します。値は 8 の倍数でなければなりません。
TargetBitPerDouble
— C の double
データ型のビット長
64
このプロパティは読み取り専用です。
ターゲット ハードウェアがサポートする C の double データ型のビット長。
TargetBitPerFloat
— C の浮動小数点データ型のビット長
32
このプロパティは読み取り専用です。
ターゲット ハードウェアがサポートする C の浮動小数点データ型のビット長。
TargetBitPerInt
— C の int
データ型のビット長
32 (既定値) | 8 ~ 32 の範囲の 8 の倍数
ターゲット ハードウェアがサポートする C の int
データ型のビット長。8 ~ 32 の範囲の整数値として指定します。値は 8 の倍数でなければなりません。
TargetBitPerLong
— C の long
データ型のビット長
32 (既定値) | 32 ~ 128 の範囲の 8 の倍数
ターゲット ハードウェアがサポートする C の long
データ型のビット長。32 ~ 128 の範囲の整数値として指定します。値は 8 の倍数でなければなりません。
TargetBitPerLongLong
— C の long long
データ型のビット長
64 (既定値) | 64 ~ 128 の範囲の 8 の倍数
ターゲット ハードウェアがサポートする C の long long
データ型のビット長。64 ~ 128 の範囲の整数値として指定します。値は 8 の倍数でなければなりません。
C の long long
データ型は、ご使用の C コンパイラが long long
をサポートしている場合にのみ使用してください。
依存関係:
TargetLongLongMode
では、TargetBitPerLongLong
プロパティを使用できます。
TargetBitPerPointer
— ポインター データのビット長
64 (既定値) | 8 ~ 64 の範囲の 8 の倍数
ターゲット ハードウェアがサポートするポインター データのビット長。8 ~ 64 の範囲の整数値として指定します。値は 8 の倍数でなければなりません。
TargetBitPerPtrDiffT
— ptrdiff_t
データのビット長
64 (既定値) | 8 | 16 | 24 | 32 | 40 | 64 | 128
ptrdiff_t
データのビット長。8、16、24、32、40、64 または 128 として指定します。値は ProdBitPerInt
の値以上でなければなりません。
TargetBitPerShort
— C の short
データ型のビット長
16 (既定値) | 8 ~ 32 の範囲の 8 の倍数
ターゲット ハードウェアがサポートする C の short
データ型のビット長。8 ~ 32 の範囲の 8 の倍数として指定します。
TargetBitPerSizeT
— size_t
データのビット長
64 (既定値) | 8 | 16 | 24 | 32 | 40 | 64 | 128
ターゲット ハードウェアがサポートする size_t
データのビット長。8、16、24、32、40、64 または 128 として指定します。値は ProdBitPerInt
の値以上でなければなりません。
TargetEndianess
— データ ワードの最初のバイトの意味
'LittleEndian'
(既定値) | 'BigEndian'
| 'Unspecified'
ターゲット ハードウェアのデータ ワードの最初のバイトの意味。この表のいずれかの値として指定します。
値 | 説明 |
---|---|
'LittleEndian' | この値が既定値です。 最下位バイトがバイト順で最初に表示されます。 |
'BigEndian' | 最上位バイトがバイト順で最初に表示されます。 |
'Unspecified' | コードによってハードウェアのバイト順 (エンディアン) が決定されます。この値を指定すると効率がよくないコードが生成されます。 |
TargetHWDeviceType:
— ターゲット (テスト) ハードウェア ボードのメーカーと種類
'Generic->MATLAB Host Computer'
(既定値) | 文字ベクトル
ターゲット (テスト) ハードウェア ボードのメーカーと種類。文字ベクトルとして指定します。
TargetHWDeviceType
プロパティを指定すると、ターゲット ハードウェアにデバイス固有のプロパティの値が設定されます。デバイス固有のプロパティは、指定されたハードウェアに対して有効な場合にのみ変更できます。
codegen
は ASIC または FPGA のコードを生成できません。ProdHWDeviceType
を 'ASIC/FPGA->ASIC/FPGA'
に設定すると、ProdEqTarget
は false
になり、コード ジェネレーターはターゲット (テスト) デバイスのプロパティを使用します。'ASIC/FPGA->ASIC/FPGA'
は TargetHWDeviceType
に対して有効な値ではありません。
TargetIntDivRoundTo
— 2 つの符号付き整数の除算の丸め
'Zero'
(既定値) | 'Undefined'
| 'Floor'
2 つの符号付き整数の除算結果のテスト ハードウェア用コンパイラによる丸め。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
'Zero' | この値が既定値です。 商が 2 つの整数の間にある場合、コンパイラは 0 に近い方の整数に丸めます。 |
'Floor' | 商が 2 つの整数の間にある場合、コンパイラは負の無限値に近い方の整数に丸めます。 |
'Undefined' | コンパイラは 0 または負の無限値方向に丸めません。つまりコンパイラの丸め動作は未定義です。 |
TargetLongLongMode
— long long データ型のサポート
true
(既定値) | false
C コンパイラの long long データ型のサポート。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
true | この値が既定値です。 コード ジェネレーターは生成されたコードで C の |
false | コード ジェネレーターは生成されたコードで C の |
GPU Coder™ を使用する場合、コード ジェネレーターは生成されたコードで常に C の long long
データ型を使用します。
ほとんどの C99 コンパイラは long long
をサポートします。
ヒント:
TargetLongLongMode
は、指定された製品ハードウェアが C のlong long
データ型をサポートする場合にのみ有効になります。コンパイラで C の
long long
がサポートされていない場合、このパラメーターは選択しないでください。
依存関係:
TargetLongLongMode
では、TargetBitPerLongLong
プロパティを使用できます。
TargetShiftRightIntArith
— 符号付き整数の右シフトを算術右シフトとして実装
true (既定値) | false
製品ハードウェア用 C コンパイラによる、算術右シフトとしての符号付き整数の右シフトの実装。次の表のいずれかの値として指定します。
値 | 説明 |
---|---|
true | この値が既定値です。 C コンパイラが符号付き整数の右シフトを算術右シフトとして実装することを示します。算術右シフトは、右シフトによって空いたビットを最上位ビットの値で埋めます。最上位ビットは数値の符号を示します。 |
false | C コンパイラが符号付き整数の右シフトを算術右シフトとして実装しないことを示します。 |
TargetWordSize
— マイクロプロセッサのネイティブ ワード サイズ
64 (既定値) | 8 ~ 64 の範囲の 8 の倍数
製品ハードウェアに対するマイクロプロセッサのネイティブ ワード サイズ。8 ~ 64 範囲の整数値として指定します。値は 8 の倍数でなければなりません。
例
C コード生成のハードウェア固有のパラメーターの指定
スタンドアロン コード生成用の構成オブジェクトを作成します。たとえば、スタティック ライブラリ生成用の構成オブジェクトを作成します。
cfg = coder.config('lib');
coder.config
は、構成オブジェクトの HardwareImplementation
プロパティを、MATLAB ホスト コンピューターの既定のパラメーター値をもつ coder.HardwareImplementation
オブジェクトに設定します。
別のハードウェア デバイスを指定して、デバイス固有のプロパティをカスタマイズするには、coder.HardwareImplementation
オブジェクトの ProdHWDeviceType プロパティを使用可能なデバイスのいずれかに設定します。次に例を示します。
cfg.HardwareImplementation.ProdHWDeviceType = 'AMD->Athlon 64'
コード生成に coder.HardwareImplementation
オブジェクトを使用するには、-config
オプションを使用して coder.HardwareImplementation
オブジェクトに関連付けられたコード生成構成オブジェクトを指定します。
codegen -config cfg myFunction
ダイアログ ボックスによるハードウェア実行プロパティへのアクセス
coder.HardwareImplementation
オブジェクトを参照する構成オブジェクトのダイアログ ボックスを開きます。次に例を示します。
cfg = coder.config('lib'); open('cfg');
ダイアログ ボックスで、[ハードウェア] タブをクリックします。
ハードウェア ボードのサポート パッケージをインストールしている場合 (Embedded Coder が必要)、[ハードウェア ボード] のオプションからボードを選択します。インストールしていない場合は、[ハードウェア ボード] を [なし - 以下のデバイスを選択]
に設定します。次に、[デバイス ベンダー] と [デバイス タイプ] を設定します。
ハードウェア実行設定には、指定されたデバイスの値があります。これらの設定を表示または変更するには、[ハードウェア実行のカスタマイズ] リンクをクリックします。指定されたデバイスに対して有効にした場合のみ設定を変更できます。
コマンド ライン ワークフローで対話的に構成パラメーターを指定を参照してください。
ヒント
ProdHWDeviceType
プロパティを設定するには、coder.HardwareImplementation
オブジェクトを参照する構成オブジェクトのダイアログ ボックスを開いて使用可能なオプションからデバイスを選択します。ダイアログ ボックスによるハードウェア実行プロパティへのアクセスを参照してください。
代替機能
coder.HardwareImplementation
オブジェクトを直接作成し、それをcoder.CodeConfig
オブジェクトまたはcoder.EmbeddedCodeConfig
オブジェクトに割り当てることができます。hw_cfg = coder.HardwareImplementation; hw_cfg.ProdHWDeviceType = 'AMD->Athlon 64'; cfg = coder.config('lib'); cfg.HardwareImplementation = hw_cfg;
ハードウェアにサポート パッケージをインストールしている場合、
coder.EmbeddedCodeConfig
オブジェクトのHardware
プロパティをcoder.Hardware
オブジェクトに設定してハードウェア固有のコード生成パラメーターをカスタマイズできます。coder.Hardware
オブジェクトを作成するには、coder.hardware
を使用します。次に例を示します。cfg = coder.config('lib'); hw = coder.hardware('Raspberry Pi'); cfg.Hardware = hw;
バージョン履歴
R2011a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)