{{{ #!html
コンフィギュレーションクラス
}}} [[BR]] = はじめに = * BSWモジュールの各コンフィギュレーションパラメータには,コンフィギュレーションクラスが規定されている * コンフィギュレーションクラスは大きく3つ存在する * プレコンパイルタイム * リンクタイム * ポストビルドタイム(ポストビルドはさらに以下2つに分類される) * ローダブル(loadable) * セレクタブル(selectable) ---- = プレコンパイルタイム = * 概要図:[https://www.autosar.org/fileadmin/standards/classic/4-0/AUTOSAR_TPS_ECUConfiguration.pdf#page=21&view=fitv AUTOSAR_TPS_ECUConfiguration.pdf(Figure 2.2)] * 対象パラメータのコンフィギュレーションが変わると,BSWモジュールの再コンパイルが必要となる * BSWモジュールのコンパイル時にジェネレータで生成したヘッダファイルが必要になる * プレコンパイルタイムのコンフィギュレーション情報は,{{{_Cfg.h}}}(必要なら{{{_Cfg.c}}})に出力される * [https://www.autosar.org/fileadmin/standards/classic/4-0/AUTOSAR_SRS_BSWGeneral.pdf#page=64&view=fitv AUTOSAR_SRS_BSWGeneral.pdf(BSW00346)]参照 * Osの例 * {{{OsScalabilityClass}}},{{{OsStackMonitoring}}}など * {{{Os_Cfg.h}}}に出力する * Comの例 * {{{ComConfigurationUseDet}}},{{{ComVersionInfoApi}}}など * {{{Com_Cfg.h}}}に出力する ---- = リンクタイム = * 概要図:[https://www.autosar.org/fileadmin/standards/classic/4-0/AUTOSAR_TPS_ECUConfiguration.pdf#page=23&view=fitv AUTOSAR_TPS_ECUConfiguration.pdf(Figure 2.3)] * ジェネレータが生成したコードを別途コンパイルして生成したオブジェクトファイルをリンクすることで,コンフィギュレーションを変更する * 対象パラメータのコンフィギュレーションが変わっても,BSWモジュールの静的コードの再コンパイルは必要ない * コンフィギュレーション情報を含むファイルの再コンパイルが必要 * コンフィギュレーション情報は,{{{_Lcfg.h}}},{{{_Lcfg.c}}}に出力される * [https://www.autosar.org/fileadmin/standards/classic/4-0/AUTOSAR_SRS_BSWGeneral.pdf#page=64&view=fitv AUTOSAR_SRS_BSWGeneral.pdf(BSW00346)]参照 * Osの例 * {{{OsTaskActivation}}},{{{OsTaskPriority}}}など * {{{Os_Lcfg.h}}},{{{Os_Lcfg.c}}}に出力する * TOPPERS/ATK2では,プレコンパイルタイムと規定されているパラメータであっても,静的コードのライブラリ提供を可能とするために一部リンクタイムとしている * Comの例 * {{{ComIPduHandleId}}},{{{ComPduIdRef}}}など * {{{Com_Lcfg.h}}},{{{Com_Lcfg.c}}}に出力する ---- = ポストビルドタイム = == ローダブル(1) == * 概要図:[https://www.autosar.org/fileadmin/standards/classic/4-0/AUTOSAR_TPS_ECUConfiguration.pdf#page=25&view=fitv AUTOSAR_TPS_ECUConfiguration.pdf(Figure 2.4)] * ジェネレータが生成したコードを別途コンパイルして生成した.hexファイルをECUに配置し,別途ECUに配置したBSWモジュールからアクセスする * 複数の.hexファイルを用意し,配置する.hexを変更することで,動的にコンフィギュレーションを変更できる * コンフィギュレーション情報は,{{{_PBcfg.h}}},{{{_PBcfg.c}}}に出力される * [https://www.autosar.org/fileadmin/standards/classic/4-0/AUTOSAR_SRS_BSWGeneral.pdf#page=64&view=fitv AUTOSAR_SRS_BSWGeneral.pdf(BSW00346)]参照 * Osは該当パラメータが無い * Comの例 * {{{ComIPduDirection}}},{{{ComBitPosition}}}など * {{{Com_PBcfg.h}}},{{{Com_PBcfg.c}}}に出力する * TOPPERS/A-COMでは,リンクタイムと規定されているパラメータであっても,実装容易性のためにポストビルドタイムとしている == ローダブル(2) == * 概要図:[https://www.autosar.org/fileadmin/standards/classic/4-0/AUTOSAR_TPS_ECUConfiguration.pdf#page=26&view=fitv AUTOSAR_TPS_ECUConfiguration.pdf(Figure 2.5)] * ジェネレータによって直接.hexファイルを生成する == セレクタブル == * 概要図:[https://www.autosar.org/fileadmin/standards/classic/4-0/AUTOSAR_TPS_ECUConfiguration.pdf#page=27&view=fitv AUTOSAR_TPS_ECUConfiguration.pdf(Figure 2.6)] * ジェネレータによって複数のコンフィギュレーション情報を含むファイルを生成し,BSWモジュールの初期化時に使用するコンフィギュレーションを選択する * コンフィギュレーション情報をどういった命名規則で複数のファイルに出力するかは未規定 ---- = コンフィギュレーションクラスの指定 = * ECUコンフィギュレーションではモジュール毎に,{{{}}}タグでコンフィギュレーションクラスを指定する * {{{VARIANT-PRE-COMPILE}}},{{{VARIANT-LINK-TIME}}},{{{VARIANT-POST-BUILD}}}の3種類 * このどれを指定されたかによって,パラメータをどのように使用するかがパラメータ毎に規定されている * 例えばプレコンパイルタイムのパラメータは以下のように,どれを選ばれてもプレコンパイルタイムとする,とされている * {{{Pre-compile time:X | All Variants}}} * 以下のパラメータの場合,{{{VARIANT-PRE-COMPILE}}}ならプレコンパイルタイムでいいが,{{{VARIANT-LINK-TIME}}}か{{{VARIANT-POST-BUILD}}}を指定されたらリンクタイムとする,という意味となる * [https://www.autosar.org/fileadmin/standards/classic/4-0/AUTOSAR_SWS_COM.pdf#page=128&view=fitv AUTOSAR_SWS_COM.pdf(COM175_Conf)]