Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

AUTOSAR コード置換ライブラリによるコード生成

モデルが AUTOSAR コード生成用に構成されている場合は、AUTOSAR 4.0 コード置換ライブラリを使用して、AUTOSAR 規格により詳細に準拠する関数を生成できます。

AUTOSAR コード生成のコード置換ライブラリ

AUTOSAR 4.0 コード置換ライブラリにより、コード ジェネレーターをカスタマイズして AUTOSAR 規格により詳細に準拠する C コードを生成できます。次の場合にコード置換ライブラリの使用を検討します。

  • ライブラリで提供されているサービス ルーチンを使用する。

  • サービス ルーチンの置換コードがある。

  • AUTOSAR のファイル命名規則 (任意の指定内容を処理するためのルーチン) に従う置換コードが 1 つのヘッダーファイルに含まれている (Mfl.hMfx.h など)。

  • AUTOSAR ライブラリをコンパイルして生成されたコードとリンクするビルド ハーネス設定がある。AUTOSAR 用のコードをビルドする方法の詳細については、コード生成を参照してください。

メモ

MATLAB® および Simulink® のルックアップ テーブルのインデックスは AUTOSAR MAP のインデックスとは異なります。MATLAB は、行 (u1) および列 (u2) の線形代数アプローチを採用しています。AUTOSAR (および ASAM) は x 軸 (u2) および y 軸 (u1) の直交座標アプローチを採用しています。ここで、u1 および u2 は Simulink 2 次元ルックアップ テーブル ブロックへの入力引数です。この違いにより、コード置換ソフトウェアは AUTOSAR MAP ルーチンの入力引数を転置します。

コード置換とコード置換ライブラリの詳細については、コード置換とは (Embedded Coder)およびコード置換ライブラリ (Embedded Coder)を参照してください。

サポートされている AUTOSAR ライブラリ ルーチンの検索

AUTOSAR コード置換ライブラリでサポートされている AUTOSAR ライブラリ ルーチンを参照するには、コード置換ビューアー (Embedded Coder)を使用します。ビューアーを開くには、コマンド プロンプトで「crviewer('AUTOSAR 4.0')」と入力します。

詳細については、コード置換ライブラリの選択 (Embedded Coder)を参照してください。

AUTOSAR 4.0 コード置換ライブラリを使用するようにコード ジェネレーターを構成

モデルに AUTOSAR コード置換ライブラリを使用するようにコード ジェネレーターを構成するには、[コンフィギュレーション パラメーター] ダイアログ ボックスを開きます。[コード生成][インターフェイス][コード置換ライブラリ][AUTOSAR 4.0] を選択します。

コード置換とコード置換ライブラリの詳細については、コード置換とは (Embedded Coder)およびコード置換ライブラリ (Embedded Coder)を参照してください。

コード置換ライブラリのチェック

コード置換では、入力、ブレークポイント、table、出力のそれぞれの型の組み合わせについて AUTOSAR 仕様と互換性があることが必要です。浮動小数点 (IFL) の置換は single 型のみをサポートしますが、固定小数点 (IFX) の置換は uint8、uint16、int8、int16 および関連付けられている固定小数点型をサポートします。これらのルーチンのブロックを使用する場合、型の組み合わせ要件は変化し、必要に応じて適用されます。

IFX/IFL 関数の置換の AUTOSAR コード置換ライブラリ例

コード置換ビューアーには、ルックアップ テーブルの C コードに生成できる AUTOSAR 浮動小数点内挿 (IFL) ライブラリ ルーチンおよび固定小数点内挿 (IFX) ライブラリ ルーチンがリストされます。ルックアップ テーブルの C コードを IFL ライブラリ ルーチンまたは IFX ライブラリ ルーチンに置き換えるために、AUTOSAR Blockset は AUTOSAR コード生成用に事前構成されたルックアップ テーブル ブロックを提供します。モデルに Curve または Map などのブロックを挿入してから、ブロック ダイアログ ボックスを開き、設計に必要な固有の内挿ルーチンを生成するブロックを設定します。詳細については、AUTOSAR 測定およびキャリブレーション用のルックアップ テーブルの設定を参照してください。

この例では、AUTOSAR のルックアップ テーブル ブロックに対して生成されるコードを、AUTOSAR の IFL ライブラリ ルーチンと互換性のある関数で置換する方法を説明します。IFX ライブラリ ルーチンでコードを置換する場合は、ルックアップ テーブル ブロックのダイアログ ボックスを編集して、ターゲットのルーチン ライブラリを変更できます。

  1. AUTOSAR ルックアップ テーブル ブロック PrelookupCurve Using PrelookupMap Using PrelookupCurve、または Map のいずれかを使用して、Simulink モデルを作成します。たとえば、Curve Using Prelookup に接続されている Prelookup ブロックがあります。

    あるいは、表示されたブロックを含む AUTOSAR モデル例 mAutosarLutObjs.slx を開くこともできます。このモデル ファイルを作業フォルダーにコピーするには、次の MATLAB コマンドを入力します。

    copyfile(fullfile(matlabroot,'help/toolbox/autosar/examples/mAutosarLutObjs.slx'),'.')
  2. 各ルックアップ テーブル ブロックを開いて、AUTOSAR 4.0 コード置換ライブラリ (CRL) からルーチンを生成するように設定します。ブロック設定を変更すると、ブロック ダイアログ ボックスでターゲットの AUTOSAR ルーチンの名前が更新されます。

    この例にあるブロックの設定の詳細については、ルックアップ テーブル オブジェクトとブレークポイント オブジェクトを使用した COM_AXIS ルックアップ テーブルの設定 を参照してください。

  3. モデルに対して AUTOSAR 4.0 CRL を使用するようにコード ジェネレーターを設定します。[コンフィギュレーション パラメーター] ダイアログ ボックスで [コード生成][インターフェイス][コード置換ライブラリ][AUTOSAR 4.0] を選択します。あるいは、コマンド ラインまたはプログラムで実行する場合、set_param を使用して CodeReplacementLibrary パラメーターを 'AUTOSAR 4.0' に設定します。

  4. オプションで、コード置換をトリガーしたブロックについてまとめたコード生成レポートを生成するようにモデルを設定できます。[コンフィギュレーション パラメーター] ダイアログ ボックスの [コード生成][レポート] ペインで、オプション [コードの置き換えをトリガーするブロックをまとめる] を選択します。あるいは、コマンド ラインまたはプログラムで実行する場合、set_param を使用して GenerateCodeReplacementReport パラメーターを 'on' に設定します。

  5. モデルをビルドし、期待どおりにコードが置換されているか、生成されたコードをレビューします。たとえば、ルーチンの接頭辞 Ifl を求めて、生成されたコードを検索します。

関連する例

詳細