Version 3 (modified by 9 years ago) ( diff ) | ,
---|
コンフィギュレーションクラス
はじめに
- BSWモジュールの各コンフィギュレーションパラメータには、コンフィギュレーションクラスが規定されている
- コンフィギュレーションクラスは大きく3つ存在する
- プレコンパイルタイム
- リンクタイム
- ポストビルドタイム(ポストビルドはさらに以下2つに分類される)
- ローダブル(loadable)
- セレクタブル(selectable)
プレコンパイルタイム
- 概要図:AUTOSAR_TPS_ECUConfiguration.pdf(Figure 2.2)
- 対象パラメータのコンフィギュレーションが変わると、BSWモジュールの再コンパイルが必要となる
- BSWモジュールのコンパイル時にジェネレータで生成したヘッダファイルが必要になる
- プレコンパイルタイムのコンフィギュレーション情報は、
<Module name>_Cfg.h
(必要なら<Module name>_Cfg.c
)に出力される- AUTOSAR_SRS_BSWGeneral.pdf(BSW00346)参照
- Osの例
OsScalabilityClass
、OsStackMonitoring
などOs_Cfg.h
に出力する
- Comの例
ComConfigurationUseDet
、ComVersionInfoApi
などCom_Cfg.h
に出力する
リンクタイム
- 概要図:AUTOSAR_TPS_ECUConfiguration.pdf(Figure 2.3)
- ジェネレータが生成したコードを別途コンパイルして生成したオブジェクトファイルをリンクすることで、コンフィギュレーションを変更する
- 対象パラメータのコンフィギュレーションが変わっても、BSWモジュールの静的コードの再コンパイルは必要ない
- コンフィギュレーション情報を含むファイルの再コンパイルが必要
- コンフィギュレーション情報は、
<Module name>_Lcfg.h
、<Module name>_Lcfg.c
に出力される - Osの例
OsTaskActivation
、OsTaskPriority
などOs_Lcfg.h
、Os_Lcfg.c
に出力する- TOPPERS/ATK2では、プレコンパイルタイムと規定されているパラメータであっても、静的コードのライブラリ提供を可能とするために一部リンクタイムとしている
- Comの例
ComIPduHandleId
、ComPduIdRef
などCom_Lcfg.h
、Com_Lcfg.c
に出力する
ポストビルドタイム
ローダブル(1)
- 概要図:AUTOSAR_TPS_ECUConfiguration.pdf(Figure 2.4)
- ジェネレータが生成したコードを別途コンパイルして生成した.hexファイルをECUに配置し、別途ECUに配置したBSWモジュールからアクセスする
- 複数の.hexファイルを用意し、配置する.hexを変更することで、動的にコンフィギュレーションを変更できる
- コンフィギュレーション情報は、
<Module name>_PBcfg.h
、<Module name>_PBcfg.c
に出力される - Osは該当パラメータが無い
- Comの例
ComIPduDirection
、ComBitPosition
などCom_PBcfg.h
、Com_PBcfg.c
に出力する- TOPPERS/A-COMでは、リンクタイムと規定されているパラメータであっても、実装容易性のためにポストビルドタイムとしている
ローダブル(2)
- 概要図:AUTOSAR_TPS_ECUConfiguration.pdf(Figure 2.5)
- ジェネレータによって直接.hexファイルを生成する
セレクタブル
- 概要図:AUTOSAR_TPS_ECUConfiguration.pdf(Figure 2.6)
- ジェネレータによって複数のコンフィギュレーション情報を含むファイルを生成し、BSWモジュールの初期化時に使用するコンフィギュレーションを選択する
- コンフィギュレーション情報をどういった命名規則で複数のファイルに出力するかは未規定
コンフィギュレーションクラスの指定
- ECUコンフィギュレーションではモジュール毎に、
<IMPLEMENTATION-CONFIG-VARIANT>
タグでコンフィギュレーションクラスを指定する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
を指定されたらリンクタイムとする、という意味となる
Note:
See TracWiki
for help on using the wiki.