2. 概念
2.13 RTE/SCHM コード生成方針
2.13.5 ビルドサポート
RTEのソースコードは,ビルド時にSW-C,およびBSWMとリンクするために本節の規則を守る必 要がある.
RTE/SCHM内部メモリに対するメモリマッピング
RTE/SCHMが割り当てるメモリオブジェクト(関数,およびグローバル変数)は,"Rte"を接頭辞とす
るメモリマッピングのマクロでラップして定義する【rte_sws_5088】.メモリマッピングについては,
関連文書Specification of Memory Mappingを参照.
AUTOSARデータプロトタイプ実装のメモリオブジェクトのメモリマッピング
AUTOSARデータプロトタイプ(AutosarDataPrototype)の実装のためのメモリオブジェクトに対す るメモリマッピングの定義は以下のルールに従う.
・ 〔rte_sws_7592〕の場合を除き,メモリ確保キーワードの<SEGMENT>は,ソフトウェアアドレ ッシング方式(SwAddrMethod)のショートネームとなる【rte_sws_7589】.
・ ソフトウェアアドレッシング方式(SwAddrMethod)の定義されていないAUTOSARデータプロト タイプ(AutosarDataPrototype)の実装のためにメモリオブジェクトが生成される場合,メモリ確 保キーワードの<SEGMENT>は,RTEGENが任意に決めてよい【rte_sws_a_0051】.
・ ソフトウェアアドレッシング方式(SwAddrMethod)のメモリ確保キーワードポリシ
(memoryAllocationKeywordPolicy)がAddrMethodShortNameである場合,メモリ確保キーワ ードの<ALIGNMENT>接尾辞は省略する【rte_sws_7047】.
・ ソフトウェアアドレッシング方式(SwAddrMethod)のメモリ確保キーワードポリシ
(memoryAllocationKeywordPolicy)がAddrMethodShortNameAndAlignmentである場合,メモ リ確保キーワードの<ALIGNMENT>接尾辞は〔rte_sws_7049〕,および〔rte_sws_7050〕で規 定されるアラインメントとなる【rte_sws_7048】.
・ AUTOSARデータプロトタイプ(AutosarDataPrototype)のソフトウェアアラインメント
(swAlignment)は,〔rte_sws_7050〕で規定される実装データ型(ImplementationDataType)のア ラインメントに優先して使用する【rte_sws_7049】.
・ プリミティブ実装データ型であるAUTOSARデータプロトタイプ(AutosarDataPrototype)のア ライメントは,ソフトウェアベース型(SwBaseType)のベース型サイズ(baseTypeSize)となる
【rte_sws_7050】.
・ RTEGENがAUTOSARデータプロトタイプ(AutosarDataPrototype)の実装のために複数のメモ
リオブジェクトを生成する場合,追加のメモリオブジェクトの<SEGMENT>はRTEGENが任意 に決めてよい【rte_sws_7592】.
・ 提供側ポートのAUTOSARデータプロトタイプ(AutosarDataPrototype)のソフトウェアアドレ ッシング方式(SwAddrMethod)は,要求側ポートのAUTOSARデータプロトタイプ
(AutosarDataPrototype)のソフトウェアアドレッシング方式(SwAddrMethod)に優先して使用す る【rte_sws_7590】.
・ 以下の全ての条件を満たす場合,本RTEGENでは,メモリ確保キーワードの<SEGMENT>は
〔nrte_sws_0180〕に準拠し,〔nrte_sws_0180〕におけるグローバル変数の所属パーティション は要求側ポートのAUTOSARデータプロトタイプ(AutosarDataPrototype)の所属するパーティ ション(EcucPartition)のショートネームとする【nrte_sws_0162】.
〔rte_sws_7592〕〔rte_sws_a_0051〕のいずれかを満たす.
パーティション構成である.
メモリオブジェクトがグローバル変数である.
・ 以下の全ての条件を満たす場合,本RTEでは,メモリ確保キーワードの<SEGMENT>は
〔nrte_sws_0181〕に準拠する【nrte_sws_0163】.
〔rte_sws_7592〕〔rte_sws_a_0051〕のいずれかを満たす.
非パーティション構成である.
メモリオブジェクトがグローバル変数である.
・ 以下の全ての条件を満たす場合,本RTEGENでは,メモリ確保キーワードの<SEGMENT>は
〔nrte_sws_0164〕に準拠し,〔nrte_sws_0164〕における関数の所属パーティションは AUTOSARデータプロトタイプ(AutosarDataPrototype)の所属するパーティション (EcucPartition)とする【nrte_sws_0178】.
〔rte_sws_7592〕を満たす.
パーティション構成である.
追加のメモリオブジェクトが関数である.
・ 以下の全ての条件を満たす場合,本RTEでは,メモリ確保キーワードの<SEGMENT>は
〔nrte_sws_0165〕に準拠するものとする【nrte_sws_0179】.
〔rte_sws_7592〕を満たす.
非パーティション構成である.
追加のメモリオブジェクトが関数である.
RTEGENが生成するその他のメモリオブジェクトのメモリマッピング
RTEGENが生成するその他のグローバル変数のメモリマッピングの定義は以下のルールに従う.
・ パーティション構成の場合,本RTEGENでは,メモリ確保キーワードの<SEGMENT>は
"VAR_<PID>_INIT"とする【nrte_sws_0180】.ここで,<PID>は,グローバル変数の所属する パーティション(EcucPartition)のショートネーム.
・ 非パーティション構成の場合,本RTEGENでは,メモリ確保キーワードの<SEGMENT>は
"VAR_INIT"とする【nrte_sws_0181】.
RTEGENが生成するその他の関数のメモリマッピングの定義は以下のルールに従う.
・ パーティション構成の場合,本RTEGENでは,メモリ確保キーワードの<SEGMENT>は
"CODE_<PID>"とする【nrte_sws_0164】.ここで,<PID>は,関数の所属するパーティション (EcucPartition)のショートネーム.
・ 非パーティション構成の場合,本RTEGENでは,メモリ確保キーワードの<SEGMENT>は
"CODE"とする【nrte_sws_0165】.
3. API仕様