3. API 仕様
3.11 SCHM API
C言語I/F void SchM_Enter_<bsnp>_<name>(void)【rte_sws_7250】
パラメータ[in] - パラメータ[in/out] - パラメータ[out] - 返り値 - 同期/非同期 同期 リエントラント ×
生成有無の設定 排他エリア(ExclusiveArea)に対し,明示的排他エリア入場 (canEnterExclusiveArea)が存在する場合,本APIを生成する
【rte_sws_7251】.
機能 排他エリアに入場する.
・ <bsnp>はBSWMディスクリプションのショートネーム〔rte_sws_7593〕.
・ <name>は排他エリアのショートネーム.
API呼出しの制限
本APIは,明示的排他エリア入場(canEnterExclusiveArea)の関連付けを持つBSWMエンティティ からのみ使用されなければならない【rte_sws_ext_7285】.
SCHMは同じ排他エリアに対するSchM_Enterのネストされた呼出しをサポートしない.
SchM_Enter/SchM_Exitは,複数の異なる排他エリアに対する入退場が行われ,各排他エリアへの
SchM_Exit呼び出し順序がSchM_Enter呼び出し順序とは逆順になっている場合のみ,ネストされた
呼び出しをサポートする【rte_sws_7252】【rte_sws_ext_7529】.
機能仕様
本APIは排他エリアへの入場を行う.
SchM_Enter/SchM_Exit は,SCHMが起動していなくても,OSの初期化後であれば呼び出し可能
でなければならない【rte_sws_7578】.
SchM_Enter/SchM_Exit は,以下のコンテキストで呼び出し可能でなければならない
【rte_sws_7579】.
・ OSタスク
・ C1ISR
・ C2ISR
ただし,呼び出しコンテキストは排他エリアの実現メカニズムによって制約される.たとえば,実現 メカニズムが「全割込みのブロック」である場合は,すべてのコンテキストで呼び出し可能であるが,
「OSリソースの獲得」の場合は,呼び出しコンテキストはOSタスクとC2ISRのみが有効である.
AUTOSAR仕様との違い
AUTOSAR仕様では,SchM_Enterに,BSWMのベンダID(vendorId)とベンダAPI接中辞 (vendorApiInfix)を接頭辞に含めている【rte_sws_7250】.
しかし,A-RTEGENでは,SCHMのマルチインスタンスはサポートしないため,ベンダID(vendorId)
とベンダAPI接中辞(vendorApiInfix)は使用しない〔irte_sws_0009〕.
3.11.2 SchM_Exit
C言語I/F void SchM_Exit_<bsnp>_<name>(void)【rte_sws_7253】
パラメータ[in] - パラメータ[in/out] - パラメータ[out] - 返り値 - 同期/非同期 同期 リエントラント ×
生成有無の設定 排他エリア(ExclusiveArea)に対し,明示的排他エリア入場 (canEnterExclusiveArea)が存在する場合,本APIを生成する
【rte_sws_7254】.
機能 排他エリアから退場する.
・ <bsnp>はBSWMディスクリプションのショートネーム〔rte_sws_7593〕.
・ <name>は排他エリアのショートネーム.
API呼出しの制限
本APIは,明示的排他エリア入場(canEnterExclusiveArea)の関連付けを持つBSWMエンティティ からのみ使用されなければならない【rte_sws_ext_7189】.
機能仕様
本APIは排他エリアからの退場を行う.
AUTOSAR仕様との違い
AUTOSAR仕様では,SchM_Exitに,BSWMのベンダID(vendorId)とベンダAPI接中辞 (vendorApiInfix)を接頭辞に含めている【rte_sws_7253】.
しかし,A-RTEGENでは,SCHMのマルチインスタンスはサポートしないため,ベンダID(vendorId)
とベンダAPI接中辞(vendorApiInfix)は使用しない〔irte_sws_0009〕.