Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

コード生成用の AUTOSAR 要素のマッピング

Simulink® では、コード マッピング エディターと AUTOSAR ディクショナリを個別にまたは組み合わせて使用して、AUTOSAR ソフトウェア コンポーネントをグラフィカルに設定し、Simulink モデル要素を AUTOSAR コンポーネント要素にマッピングできます。詳細については、AUTOSAR コンポーネントの構成を参照してください。

Simulink モデルのパースペクティブで Simulink モデル要素を AUTOSAR コンポーネント要素にマッピングするには、コード マッピング エディターを使用します。このエディター表示は、[関数][入力端子][出力端子] など、表形式で情報を表示する複数のタブで構成されます。それらのテーブルから Simulink 要素を選択し、対応する AUTOSAR 要素にマッピングします。マッピングの設定内容は、生成される AUTOSAR 準拠の C コードとエクスポートされる ARXML 記述に反映されます。

コード マッピング エディターは、AUTOSAR ソフトウェア コンポーネント モデルから参照されるサブモデルのマッピングも提供します。詳細については、AUTOSAR コンポーネント モデルから参照されるサブモデルのキャリブレーション データのマッピングを参照してください。

Simulink から AUTOSAR へのマッピングのワークフロー

Simulink モデル要素を AUTOSAR ソフトウェア コンポーネント要素にマッピングするには、以下の手順に従います。

  1. AUTOSAR システム ターゲット ファイル [autosar.tlc] が選択されているモデルを開きます。

  2. マッピングされた AUTOSAR モデルのビューを作成するか開きます。モデル ウィンドウで、次のいずれかを行います。

    • [アプリ] タブから、AUTOSAR コンポーネント デザイナー アプリを開きます。

    • 右下隅にあるパースペクティブ コントロールをクリックし、[コード] を選択します。

    モデルがまだ AUTOSAR ソフトウェア コンポーネントにマッピングされていない場合、AUTOSAR コンポーネントのクイック スタートが開きます。AUTOSAR コンポーネント開発用のモデルを構成するには、クイック スタートの手順に従い、[終了] をクリックします。詳細については、マッピングされた AUTOSAR コンポーネントのクイック スタートでの作成を参照してください。

    AUTOSAR コードのパースペクティブでモデルが開きます。このパースペクティブには、モデルに加え、モデルのすぐ下にコード マッピング エディターが表示されます。

    コード マッピング エディターでは、AUTOSAR マッピング情報を図として得られます。一括編集や要素のフィルターが可能なほか、モデル要素や AUTOSAR のプロパティに簡単に移動することができ、モデル要素のトレーサビリティも備えています。要素の追加の AUTOSAR 属性を表示および変更するには、要素を選択し Icon to configure additional code mappings properties アイコンをクリックします。

  3. コード マッピング エディターのタブを切り替えて次の操作を行います。

    • Simulink のエントリポイント関数を AUTOSAR のランナブルにマッピングします。

    • Simulink の入力端子または出力端子を特定のデータ アクセス モードで AUTOSAR の受信ポートまたは送信ポートと送信側/受信側データ要素にマッピングします。

    • Simulink モデルのワークスペース パラメーターを AUTOSAR コンポーネントのパラメーターにマッピングします。

    • Simulink データ ストアを AUTOSAR 変数にマッピングします。

    • Simulink ブロック信号または状態を AUTOSAR 変数にマッピングします。

    • Simulink のデータ転送ラインを AUTOSAR のインターランナブル変数 (IRV) にマッピングします。

    • Simulink の関数呼び出しを AUTOSAR のクライアント ポートとクライアント/サーバー オペレーションにマッピングします。

    [コンテンツのフィルター] フィールド (使用可能な場合) を使用して、現在のビューに一部の要素のみを表示し、その他の要素を省略します。

  4. モデル要素をマッピングしたら、[検証] ボタン をクリックして AUTOSAR コンポーネントの構成を検証します。エラーが報告された場合は、対処した上で検証を再試行します。

エントリポイント関数の AUTOSAR ランナブルへのマッピング

コード マッピング エディターの [関数] タブでは、AUTOSAR ランナブル エンティティ (ランナブル) の Simulink でのモデル化をサポートしています。AUTOSAR コンポーネントの内部動作を実装する AUTOSAR ランナブルと AUTOSAR イベントを AUTOSAR ディクショナリを使用して作成した後、コード マッピング エディターを開きます。[関数] タブを使用して、Simulink エントリポイント関数を AUTOSAR ランナブルにマッピングします。

詳細については、AUTOSAR ランナブルとイベントの設定を参照してください。

コード マッピング エディターの [関数] タブでは、それぞれの Simulink エントリポイント関数が AUTOSAR ランナブルにマッピングされます。モデルで Simulink エントリポイント関数の読み込みや更新を行うには、[更新] ボタン をクリックします。

[関数] タブでは、次のことを実行できます。

  • エントリポイント関数を選択してから AUTOSAR コンポーネントに表示されるリストから AUTOSAR ランナブルのメニュー値を選択して、Simulink エントリポイント関数をマッピングできます。

  • ランナブル関数コードと内部データのソフトウェア アドレス メソッド (SwAddrMethod) を指定します。SwAddrMethod 名を指定する場合、コード生成で名前を使用してランナブル関数とデータ定義をメモリ セクションでグループ化します。詳細については、SwAddrMethod の設定を参照してください。

    SwAddrMethod 名はモデル内で定義する必要があります。たとえば、モデル例 autosar_swc_counter は、CODE および VAR という名前の SwAddrMethod を定義します。

    ランナブルの SwAddrMethod を指定するには、対応するエントリポイント関数を選択し、Icon to configure additional code mappings properties アイコンをクリックします。ダイアログには、選択した関数のコード属性 [SwAddrMethod][Internal Data SwAddrMethod] が表示されます。各プロパティでリストされている有効な値から SwAddrMethod 名を選択します。

    Stateflow® チャートを含むランナブルの場合、Stateflow チャートによって生成された実行関数は、親ランナブルから SwAddrMethod を継承します。 (R2023b 以降)

    コンポーネントで追加の SwAddrMethod 名を作成するには、AUTOSAR ディクショナリの [SwAddrMethods] ビューを使用します。詳細については、AUTOSAR SwAddrMethod の設定を参照してください。

メモ

ランナブル内部データ SwAddrMethod のコード生成では、モデル コンフィギュレーション オプション [コード生成][インターフェイス][エントリポイント関数ごとに個別の内部データを生成] (GroupInternalDataByFunction) を on に設定します。

入力端子と出力端子の AUTOSAR 送信側/受信側ポートおよびデータ要素へのマッピング

コード マッピング エディターの [入力端子] タブと [出力端子] タブでは、AUTOSAR 送信側/受信側 (S-R) 通信の Simulink でのモデル化をサポートしています。モデルに含まれる AUTOSAR の S-R ポート、S-R インターフェイス、S-R データ要素を AUTOSAR ディクショナリを使用して作成した後、コード マッピング エディターを開きます。[入力端子] タブと [出力端子] タブを使用して、Simulink のルートの入力端子と出力端子を AUTOSAR の受信ポートと送信ポートおよび AUTOSAR S-R データ要素にマッピングします。

詳細については、AUTOSAR 送信側/受信側通信の設定およびAUTOSAR のキューに登録されている送信側/受信側通信の設定を参照してください。

コード マッピング エディターの [入力端子] タブでは、それぞれの Simulink ルート入力端子が AUTOSAR 受信ポートおよび S-R インターフェイス データ要素にマッピングされます。[入力端子] タブでは次のことが可能です。

  • 入力端子を選択してから AUTOSAR コンポーネントに表示されるリストから AUTOSAR ポートと AUTOSAR 要素のメニュー値を選択して、Simulink 入力端子をマッピングします。

  • ポートの AUTOSAR データ アクセス モードを選択します。[ImplicitReceive][ExplicitReceive][ExplicitReceiveByVal][QueuedExplicitReceive][ErrorStatus][IsUpdated][EndToEndRead]、または [ModeReceive]

追加のポート通信仕様 (ComSpec) 属性を表示するには、入力端子を選択し、Icon to configure additional code mappings properties アイコンをクリックします。

  • AUTOSAR のキューに登録されていない受信ポートについて変更可能な ComSpec 属性は AliveTimeoutHandleNeverReceivedInitValue です。

  • キューに登録されている受信ポートについて変更可能な ComSpec 属性は QueueLength です。

詳細については、AUTOSAR 送信側/受信側ポートの ComSpec の設定を参照してください。

コード マッピング エディターの [出力端子] タブでは、それぞれの Simulink ルート出力端子が AUTOSAR 送信ポートおよび S-R インターフェイス データ要素にマッピングされます。[出力端子] タブでは次のことが可能です。

  • 出力端子を選択してから AUTOSAR 端子と AUTOSAR 要素のメニュー値を選択して、Simulink 出力端子をマッピングします。

  • ポートの AUTOSAR データ アクセス モードを選択します。[ImplicitSend][ImplicitSendByRef][ExplicitSend][QueuedExplicitSend][EndToEndWrite] または [ModeSend]

追加のポート通信仕様 (ComSpec) 属性を表示するには、AUTOSAR のキューに登録されていない送信ポートにマッピングされた出力端子を選択し、Icon to configure additional code mappings properties アイコンをクリックします。ダイアログで、ComSpec 属性 InitValue を変更できます。詳細については、AUTOSAR 送信側/受信側ポートの ComSpec の設定を参照してください。

モデル ワークスペース パラメーターの AUTOSAR コンポーネント パラメーターへのマッピング

コード マッピング エディターの [パラメーター] タブでは、Simulink モデル ワークスペース パラメーターを AUTOSAR 実行時キャリブレーションの AUTOSAR パラメーターにマッピングできます。マッピングできるモデル ワークスペース パラメーターの例には、次が含まれます。

  • Simulink パラメーター オブジェクト

  • Simulink ルックアップ テーブル オブジェクト

  • Simulink ブレークポイント オブジェクト

ルックアップ テーブル オブジェクトとブレークポイント オブジェクトを AUTOSAR キャリブレーション パラメーターにマッピングすることで、AUTOSAR パラメーターを統合ルックアップおよび分散ルックアップ用にモデル化できます。詳細については、AUTOSAR キャリブレーションおよび測定用のルックアップ テーブルの設定を参照してください。

たとえば、モデル ワークスペース パラメーターを作成した後、モデル エクスプローラーを使用して、コード マッピング エディターを開き、[パラメーター] タブを選択します。Simulink モデル ワークスペース パラメーターを選択し、それらを以下にマッピングします。

  • 定数メモリや共有パラメーター、インスタンスごとのパラメーターなどの AUTOSAR コンポーネント内部パラメーター。

  • パラメーター データに対するポートベースのアクセス用パラメーター受信コンポーネントで使用される AUTOSAR ポートベースのパラメーター。

詳細については、AUTOSAR 定数メモリの設定AUTOSAR 共有パラメーターまたはインスタンスごとのパラメーターの設定およびパラメーター コンポーネントと通信するための AUTOSAR ポート パラメーターの設定を参照してください。

[パラメーター] タブに、AUTOSAR パラメーターにマッピングできる各 Simulink モデル ワークスペース パラメーターがリストされます。[パラメーター] タブで、次を実行します。

  • Simulink モデル ワークスペース パラメーターがモデル引数として設定されない (つまり、マルチインスタンス モデルの各インスタンスに一意でない) 場合、パラメーターを選択してから、AUTOSAR パラメーター タイプのメニュー値を選択して、パラメーターをマッピングできます。このワークフローでは、有効なパラメーター タイプは [ConstantMemory][SharedParameter] または [自動] です。ソフトウェア マッピングの既定値を受け入れる場合は、[自動] を指定します。

    たとえば、モデル例 autosar_swc_counter[パラメーター] タブを次に示します。

  • Simulink モデル ワークスペース パラメーターがモデル引数として設定される (つまり、マルチインスタンス モデルの各インスタンスに一意である) 場合、パラメーターを選択してから、AUTOSAR パラメーター タイプのメニュー値を選択して、パラメーターをマッピングできます。このワークフローでは、有効なパラメーター タイプは [PerInstanceParameter][PortParameter] または [自動] です。ソフトウェア マッピングの既定値を受け入れる場合は、[自動] を指定します。

    たとえば、モデル例 autosar_swc_throttle_sensor[パラメーター] タブを次に示します。モデル例 autosar_composition には autosar_swc_throttle_sensor の 2 つのインスタンスが含まれます。

  • [自動] 以外のパラメーター タイプを選択する場合、Icon to configure additional code mappings properties アイコンをクリックして、パラメーターの他のコードとキャリブレーション属性を表示および変更できます。

    属性目的
    Const ([ConstantMemory] のみ)このオプションをオンまたはオフにして、AUTOSAR パラメーターの生成コードに C 型修飾子 const を含めるかどうかを指定します。詳細については、AUTOSAR 静的メモリと定数メモリの C 型修飾子の指定を参照してください。
    Volatile ([ConstantMemory] のみ)このオプションをオンまたはオフにして、AUTOSAR パラメーターの生成コードに C 型修飾子 volatile を含めるかどうかを指定します。詳細については、AUTOSAR 静的メモリと定数メモリの C 型修飾子の指定を参照してください。
    AdditionalNativeTypeQualifier ([ConstantMemory] のみ)AUTOSAR パラメーターの生成コードに含める AUTOSAR の追加のネイティブ型の修飾子を指定します。例: my_qualifier。詳細については、AUTOSAR 静的メモリと定数メモリの C 型修飾子の指定を参照してください。
    SwAddrMethodAUTOSAR パラメーターで有効としてリストされている中から SwAddrMethod 名を選択します。たとえば、モデル autosar_swc_counter は VAR を定義します。コード生成では、SwAddrMethod 名を使用して、メモリ セクションで AUTOSAR パラメーターをグループ化し、キャリブレーション ツールおよび測定ツールからアクセスできるようにします。詳細については、SwAddrMethod の設定を参照してください。
    SwCalibrationAccessキャリブレーション ツールと測定ツールで AUTOSAR パラメーターにアクセスする方法を指定します。有効なアクセス値には、[ReadOnly][ReadWrite]、および [NotAccessible] があります。詳細については、SwCalibrationAccess の設定を参照してください。
    DisplayFormatAUTOSAR パラメーターの表示形式を指定します。例: %5.1f。AUTOSAR の表示形式仕様は、キャリブレーション データおよび測定データを表示する幅と精度を制御します。詳細については、DisplayFormat の設定を参照してください。
    Port ([PortParameter] のみ)AUTOSAR ディクショナリで構成されたパラメーター受信ポートの名前を選択します。
    DataElement ([PortParameter] のみ)AUTOSAR ディクショナリで構成されたパラメーター インターフェイス データ要素の名前を選択します。
    LongNameパラメーターの説明を指定します。

データ ストアの AUTOSAR 変数へのマッピング

コード マッピング エディターの [データ ストア] タブで、Simulink Data Store Memory ブロックを AUTOSAR 実行時キャリブレーションの AUTOSAR 変数にマッピングできます。Data Store Memory ブロックをモデルで作成したら、コード マッピング エディターを開いて [データ ストア] タブを選択します。データ ストアを選択して、それらを AUTOSAR 型のインスタンスごとのメモリや AUTOSAR の静的メモリなどの AUTOSAR 変数にマッピングします。

詳細については、AUTOSAR のインスタンスごとのメモリの設定およびAUTOSAR の静的メモリの設定を参照してください。

[データ ストア] タブには AUTOSAR 変数にマッピングできる各データ ストアがリストされます。次のことが可能です。

  • データ ストアを選択してから、AUTOSAR 変数型のメニュー値を選択して、Simulink データ ストアをマッピングします。[ArTypedPerInstanceMemory][StaticMemory]、または [自動] を選択します。データ ストアを [自動] に指定すると、コード ジェネレーターが最適化を目的として関連するコードの表現を削除または変更する可能性があります。最適化が不可能な場合、コード ジェネレーターはモデルの既定の構成を適用し、既定の内部データ パッケージ化を使用します。これはsetInternalDataPackagingで設定できます。キャリブレーションまたはその他の特定のアクセスにデータ ストアを使用する場合、明示的にマッピングすることをお勧めします。

    たとえば、モデル例 autosar_bsw_sensor1[Local Data Stores] タブを次に示します。

  • [自動] 以外の変数型を選択する場合、Icon to configure additional code mappings properties アイコンをクリックして、変数の他のコードとキャリブレーション属性を表示および変更できます。

    属性目的
    ShortName

    AUTOSAR 変数の省略名を指定します。例: dsmsig。指定しない場合、ARXML エクスポートで省略名が生成されます。

    Volatile ([StaticMemory] のみ)このオプションをオンまたはオフにして、AUTOSAR 変数の生成コードに C 型修飾子 volatile を含めるかどうかを指定します。詳細については、AUTOSAR 静的メモリと定数メモリの C 型修飾子の指定を参照してください。
    AdditionalNativeTypeQualifier ([StaticMemory] のみ)AUTOSAR 変数の生成コードに含める AUTOSAR の追加のネイティブ型修飾子を指定します。例: my_qualifier。詳細については、AUTOSAR 静的メモリと定数メモリの C 型修飾子の指定を参照してください。
    NeedsNVRAMAccess (ArTypedPerInstanceMemory のみ)このオプションをオンまたはオフにして、AUTOSAR 変数がプロセッサの不揮発性 RAM へのアクセスを必要とするかどうかを指定します。インスタンスごとのメモリを特定の NVRAM ブロックのミラー ブロックとして設定するには、このオプションをオンにします。
    SwAddrMethodAUTOSAR 変数で有効としてリストされている中から SwAddrMethod 名を選択します。コード生成では、SwAddrMethod 名を使用して、メモリ セクションで AUTOSAR 変数をグループ化し、キャリブレーション ツールおよび測定ツールからアクセスできるようにします。詳細については、SwAddrMethod の設定を参照してください。
    RestoreAtStart ([ArTypedPerInstanceMemory] のみ)このオプションをオンまたはオフにして、起動時に状態を読み取るかどうかを指定します。
    StoreAtShutdown ([ArTypedPerInstanceMemory] のみ)このオプションをオンまたはオフにして、シャットダウン時に状態を書き出すかどうかを指定します。
    SwCalibrationAccessキャリブレーション ツールと測定ツールで AUTOSAR 変数にアクセスする方法を指定します。有効なアクセス値には、[ReadOnly][ReadWrite]、および [NotAccessible] があります。詳細については、SwCalibrationAccess の設定を参照してください。
    DisplayFormatAUTOSAR 変数の表示形式を指定します。例: %5.1f。AUTOSAR の表示形式仕様は、キャリブレーション データおよび測定データを表示する幅と精度を制御します。詳細については、DisplayFormat の設定を参照してください。
    LongName変数の説明を指定します。

AUTOSAR 変数へのブロック信号とブロック状態のマッピング

コード マッピング エディターの [信号/状態] タブで、以下を実行できます。

  • Simulink ブロック信号と状態を AUTOSAR 実行時キャリブレーションの AUTOSAR 変数にマッピングする。

  • AUTOSAR コンポーネントの信号マッピングからブロック信号を選択して追加し、削除する。

コード マッピング エディターで、状態オーナー ブロックに対応する Simulink ブロック状態をマッピングに使用できます。

Simulink ブロックの信号をマッピング用に使用できるようにするには、コード マッピング エディターのボタンまたはモデル キューを使用します。

  • モデル キャンバスで、1 つ以上の信号を選択します。コード マッピング エディターを開き、[信号/状態] タブで、[追加] ボタン をクリックします。

  • モデルのキャンバスで、信号を選択します。表示された省略記号にカーソルを置き、モデル キュー [選択した信号をコード マッピングに追加] を選択します。

または、MATLAB® 関数 addSignal を呼び出します。

ブロック信号を選択して AUTOSAR コンポーネントの信号マッピングに追加した後、コード マッピング エディターを開いて、[信号/状態] タブを選択します。ブロック信号と状態を選択して、それらを AUTOSAR 型のインスタンスごとのメモリや AUTOSAR の静的メモリなどの AUTOSAR 変数にマッピングします。

詳細については、AUTOSAR のインスタンスごとのメモリの設定およびAUTOSAR の静的メモリの設定を参照してください。

[信号/状態] タブの [信号] ノードには、AUTOSAR 変数にマッピングできる、各 Simulink ブロック信号がリストされます。[状態] ノードには、それぞれに構成可能な、AUTOSAR 変数にマッピングできる Simulink ブロック状態がリストされます。

Simulink ブロック信号または状態をマッピングするには、信号または状態を選択してから、AUTOSAR 変数型のメニュー値: [ArTypedPerInstanceMemory][StaticMemory]、または [自動] を選択します。信号または状態を [自動] に指定すると、コード ジェネレーターが最適化を目的として関連するコードの表現を削除または変更する可能性があります。最適化が不可能な場合、コード ジェネレーターはモデルの既定の構成を適用し、既定の内部データ パッケージ化を使用します。これはsetInternalDataPackagingで設定できます。キャリブレーションまたはその他の特定のアクセスに信号または状態を使用する場合、明示的にマッピングすることをお勧めします。

たとえば、モデル例 autosar_swc_counter[信号/状態] タブを示します。

信号または状態を [自動] 以外の変数型にマッピングする場合は、Icon to configure additional code mappings properties アイコンをクリックして、変数の他のコードおよびキャリブレーション属性を表示および変更できます。

属性目的
ShortName

AUTOSAR 変数の省略名を指定します。例: SM_equal_to_count。指定しない場合、ARXML エクスポートで省略名が生成されます。

  • 信号の場合、自動生成される省略名が信号名と異なる場合があります。

  • 状態の場合、自動生成される省略名は状態名 (存在する場合) に基づきます。状態に名前がない場合、生成される名前はブロック名と異なる場合があります。

Volatile ([StaticMemory] のみ)このオプションをオンまたはオフにして、AUTOSAR 変数の生成コードに C 型修飾子 volatile を含めるかどうかを指定します。詳細については、AUTOSAR 静的メモリと定数メモリの C 型修飾子の指定を参照してください。
AdditionalNativeTypeQualifier ([StaticMemory] のみ)AUTOSAR 変数の生成コードに含める AUTOSAR の追加のネイティブ型修飾子を指定します。例: my_qualifier。詳細については、AUTOSAR 静的メモリと定数メモリの C 型修飾子の指定を参照してください。
SwAddrMethodAUTOSAR 変数で有効としてリストされている中から SwAddrMethod 名を選択します。たとえば、モデル autosar_swc_counter は VAR を定義します。コード生成では、SwAddrMethod 名を使用して、メモリ セクションで AUTOSAR 変数をグループ化し、キャリブレーション ツールおよび測定ツールからアクセスできるようにします。詳細については、SwAddrMethod の設定を参照してください。
SwCalibrationAccessキャリブレーション ツールと測定ツールで AUTOSAR 変数にアクセスする方法を指定します。有効なアクセス値には、[ReadOnly][ReadWrite]、および [NotAccessible] があります。詳細については、SwCalibrationAccess の設定を参照してください。
DisplayFormatAUTOSAR 変数の表示形式を指定します。例: %5.1f。AUTOSAR の表示形式仕様は、キャリブレーション データおよび測定データを表示する幅と精度を制御します。詳細については、DisplayFormat の設定を参照してください。
LongNameAUTOSAR 変数の説明を指定します。

AUTOSAR コンポーネントの信号マッピングから Simulink ブロック信号を削除するには、コード マッピング エディター ボタンまたはモデル キューを使用します。

  • モデル キャンバスまたは [信号/状態] タブで、1 つ以上の信号を選択します。[信号/状態] タブで、[削除] ボタン をクリックします。

  • モデルのキャンバスで、信号を選択します。表示された省略記号にカーソルを置いて、モデル キュー [選択した信号をコード マッピングから削除] を選択します。

または、MATLAB 関数 removeSignal を呼び出します。

データ転送の AUTOSAR インターランナブル変数へのマッピング

コード マッピング エディターの [データ転送] タブでは、AUTOSAR インターランナブル変数 (IRV) の Simulink でのモデル化をサポートしています。ランナブルを接続して AUTOSAR コンポーネントの内部動作を実装する AUTOSAR IRV を AUTOSAR ディクショナリを使用して作成した後、コード マッピング エディターを開きます。[データ転送] タブを使用して、Simulink データ転送ラインを AUTOSAR IRV にマッピングします。

詳細については、AUTOSAR コンポーネントの動作のモデル化を参照してください。レートベースおよび関数呼び出しベースのランナブルでの IRV の使用例については、AUTOSAR ソフトウェア コンポーネントのモデル化のモデル例を参照してください。

コード マッピング エディターの [データ転送] タブでは、それぞれの Simulink データ転送ラインが AUTOSAR IRV にマッピングされます。モデルで Simulink データ転送の読み込みや更新を行うには、[更新] ボタン をクリックします。

[データ転送] タブでは、信号名を選択してから AUTOSAR コンポーネントに表示されるリストから IRV アクセス モードのメニュー値 ([暗示的] または [明示的]) と AUTOSAR IRV 名を選択して、Simulink データ転送ラインをマッピングできます。

たとえば、モデル例 autosar_swc_slfcns[データ転送] タブを次に示します。

関数呼び出しの AUTOSAR クライアント/サーバー ポートおよびオペレーションへのマッピング

コード マッピング エディターの [Function Caller] タブでは、AUTOSAR クライアント/サーバー (C-S) 通信のクライアント側の Simulink でのモデル化をサポートしています。モデルに含まれる AUTOSAR のクライアント ポート、C-S インターフェイス、C-S オペレーションを AUTOSAR ディクショナリを使用して作成した後、コード マッピング エディターを開きます。[Function Caller] タブを使用して、Simulink 関数呼び出しを AUTOSAR クライアント ポートおよび AUTOSAR C-S オペレーションにマッピングします。

詳細については、AUTOSAR クライアント/サーバー通信の構成を参照してください。

コード マッピング エディターの [Function Caller] タブでは、それぞれの Simulink 関数呼び出しが AUTOSAR クライアント ポートおよび AUTOSAR C-S インターフェイス オペレーションにマッピングされます。モデルで Simulink 関数呼び出しの読み込みや更新を行うには、[更新] ボタン をクリックします。

[Function Caller] タブでは、関数呼び出しの名前を選択してから AUTOSAR コンポーネントに表示されるリストから AUTOSAR クライアント ポートと AUTOSAR オペレーションのメニュー値を選択して、Simulink 関数呼び出しをマッピングできます。

AUTOSAR 静的メモリと定数メモリの C 型修飾子の指定

AUTOSAR コンポーネントの場合、C 型修飾子を構成して、AUTOSAR 静的メモリと定数メモリ用に生成された AUTOSAR 準拠の C コードをカスタマイズできます。たとえば、constvolatile などの C 型修飾子を適用して、コンパイラの最適化を制御できます。

AUTOSAR モデルで、コード マッピング エディターを使用して、AUTOSAR StaticMemory または AUTOSAR ConstantMemory にマッピングされるモデルの信号、状態、データ ストア、およびパラメーター用に C 型修飾子を構成します。モデルを作成すると、型修飾子が ARXML ファイルにエクスポートされて、型修飾子を使用する AUTOSAR 準拠の C コードが生成されます。

たとえば、コード マッピング エディターの [信号/状態] タブで、信号を [StaticMemory] にマッピングするとします。信号を選択し、Icon to configure additional code mappings properties アイコンをクリックして追加のコード属性を表示します。

Volatile 属性を選択し、AdditionalNativeTypeQualifiermy_qualifier になるように指定するには、次のようになります。

  • エクスポートされた ARXML ファイルは AdditionalNativeTypeQualifier を定義します。

    <ADDITIONAL-NATIVE-TYPE-QUALIFIER>volatile my_qualifier</ADDITIONAL-NATIVE-TYPE-QUALIFIER>
  • 生成された C コードで次のような C 型修飾子が使用される。

    /* Static Memory for Internal Data */
    volatile my_qualifier boolean SM_equal_to_count;

詳細については、AUTOSAR 変数へのブロック信号とブロック状態のマッピングデータ ストアの AUTOSAR 変数へのマッピングおよびモデル ワークスペース パラメーターの AUTOSAR コンポーネント パラメーターへのマッピングを参照してください。

AUTOSAR 内部変数に対する既定のデータ パッケージ化の指定

AUTOSAR Blockset には、AUTOSAR コンポーネント モデルに生成されたコードで、内部変数に使用される既定のデータ パッケージ化を制御する関数が用意されています。

AUTOSAR ソフトウェア コンポーネントの単一インスタンスで構成されたモデルでは、内部データ ストア、信号、および状態データのパッケージ化を次のように指定できます。

  • 構造体にパックするかどうか

  • 可視性をプライベートにするかパブリックにするか

複数回インスタンス化されていて再呼び出し可能、再利用可能なコードを生成するように構成されている AUTOSAR ソフトウェア コンポーネントでは、内部変数をパッケージ化して、C 型のインスタンスごとのメモリまたは AUTOSAR 型のインスタンスごとのメモリを使用するように指定できます。

関数 getInternalDataPackaging および setInternalDataPackaging は、AUTOSAR コンポーネント モデルに生成されたコードで、内部データ ストア、信号、および状態に使用されるデータ パッケージ化の既定の設定を返し、設定します。

有効な設定値は次のとおりです。

  • 単一インスタンス モデルの場合:

    • Default — ソフトウェアによって提供されている既定の内部データ パッケージ化の受け入れ。AUTOSAR コンポーネント モデルから参照されるサブモデルに Default を使用します。

    • PrivateGlobalstruct を使用しない内部変数データのパッケージ化およびプライベート化 (model.c からのみ参照可能)。

    • PrivateStructurestruct への内部変数データのパッケージ化およびプライベート化 (model.c からのみ参照可能)。

    • PublicGlobalstruct を使用しない内部変数データのパッケージ化および公開 (model.hextern 宣言)。

    • PublicStructurestruct への内部変数データのパッケージ化および公開 (model.hextern 宣言)。

  • マルチインスタンス モデルの場合:

    • Default — ソフトウェアによって提供されている既定の内部データ パッケージ化の受け入れ。AUTOSAR コンポーネント モデルから参照されるサブモデルに Default を使用します。

    • CTypedPerInstanceMemory — AUTOSAR ソフトウェア コンポーネントの各インスタンスで C 型のインスタンスごとのメモリを使用するための、struct への内部変数データのパッケージ化および公開 (model.h で宣言)。

    • ArTypedPerInstanceMemory — AUTOSAR ソフトウェア コンポーネントの各インスタンスで AUTOSAR 型のインスタンスごとのメモリを使用するための、struct への内部変数データのパッケージ化および公開 (Rte_Type.h で宣言)。モデル参照を含むモデルについては、ArTypedPerInstanceMemory の設定はサポートされていません。

      データのパッケージ化が ArTypedPerInstanceMemory に設定されている場合、コード生成でビットフィールドの最適化はサポートされません。この構成では、コンフィギュレーション パラメーター BooleansAsBitfieldsStateBitsetsDataBitsets を無効にする必要があります。

次の例では、AUTOSAR コンポーネント モデルに生成されたコードで、内部変数に使用されるデータ パッケージ化の既定の設定を変更します。まず、モデルに対する内部データ パッケージ化の現在の設定を返します。次に、コード ジェネレーターが内部変数データを struct にパッケージ化し、プライベート化するように、内部データ パッケージ化を設定します。

hModel = 'autosar_swc';
openExample(hModel);
slMap = autosar.api.getSimulinkMapping(hModel);
pkgSetting1 = getInternalDataPackaging(slMap)
setInternalDataPackaging(slMap,'PrivateStructure')
pkgSetting2 = getInternalDataPackaging(slMap)
pkgSetting1 =
    'Default'

pkgSetting2 =
    'PrivateStructure'

データ パッケージ化が PrivateGlobal または PrivateStructure に設定されている場合、モデル コンフィギュレーション パラメーター [ファイル パッケージ化形式] (Embedded Coder)[コンパクト] に設定されていても、モデルをビルドするとヘッダー ファイル model_private.h が生成されます。

モデル コンフィギュレーション オプション [エントリポイント関数ごとに個別の内部データを生成] (Embedded Coder) が AUTOSAR モデルに対して設定されている場合、タスクベースの内部データ グループ化が AUTOSAR の内部データ パッケージ化の設定をオーバーライドします。ただし、AUTOSAR の設定が、生成された内部データ グループの可視性 (パブリックまたはプライベート) を決定します。

詳細については、getInternalDataPackagingsetInternalDataPackaging のリファレンス ページを参照してください。

関連する例

詳細