• 検索結果がありません。

2. 概念

2.5 エクスキュータブル動作管理

2.5.4 エクスキュータブル動作の実現方式

表 2-3 エクスキュータブル実行インスタンスの状態遷移表

遷移 エクスキュータブルの状 態

起動 開始 プリエンプト 再開 終了

休止状態 (初期状態) 開始待ち状態 - - - -

開始待ち状態 - 実行状態 - - -

開始済 状態

実行状態 - - 実行可能状態 - 休止状態 実行可能状態 - 実行状態 - 実行状態 休止状態

ランナブル起動の 実現方式

説明

OSタスク起動 OSタスクの起動によりランナブルを起動し,タスクボディからの関数呼出し によりランナブルを開始する.ランナブルはマッピング先OSタスクのコン テキスト内で動作する.

OSタスクの起動契機(OSアラームの満了等)で,OSタスク内にマッピングさ れる全てのランナブルの起動契機が実現できる場合に使用できる(図 2-7).

OSイベント設定 OSイベントの設定によりランナブルを起動し,タスクボディからの関数呼出 しによりランナブルを開始する.ランナブルはマッピング先OSタスクのコ ンテキスト内で動作する.

OSイベントにより起動契機が識別できるため,OSタスクにマッピングされ るランナブル間で起動契機が異なる場合にも使用できる(図 2-7).

直接関数起動 RTE API内から直接関数呼出しにより,ランナブルを起動,および開始する.

ランナブルは,RTE APIの呼出し元ランナブルの,マッピング先OSタスク のコンテキストで動作する.

OS

OSタスク1

OSタスク2

ランナブル1 ランナブル2

OSイベント1 OSイベント2

ランナブル3 ランナブル4 OSタスク起動

OSイベント設定

ランナブル実行順番 の昇順でランナブル を開始する.

ランナブル実行順番の昇順 に,起動契機となるOSイベ ントが設定されているなら,

ランナブルを開始する.

OSタスクの起動契機で,OSタスク内にマッピングされる全ての ランナブルの起動契機が実現できる場合のみ使用可能

異なるOSイベントを設定することで,OSタスク内にマッピングされる ランナブルの起動契機が異なる場合でも使用可能

図 2-7 OSタスクにマッピングされたランナブルの起動

OSタスク起動の挙動

マッピング先OSタスクが起動された場合,タスクボディから,OSタスクにマッピングされるラン

ナブルを開始する(エントリポイント関数を呼び出す)【rte_sws_a_0009】.あるOSタスクから複数の ランナブルが起動する場合,RTEは,エクスキュータブル実行順番の昇順で,ランナブルを開始する

【rte_sws_a_0010】.

OSイベント設定の挙動

マッピング先OSタスクのタスクボディから,複数の使用OSイベントに対するOSイベント待ちを 要求する.いずれかの使用OSイベントが設定された場合,使用OSイベントが設定されているランナ ブルを開始する(エントリポイント関数を呼び出す)【rte_sws_a_0011】.ランナブルの実行が完了した 後,OSタスクを終了させずにOSイベント待ちを再度要求する【rte_sws_a_0012】.

あるOSタスクから複数のランナブルが起動する場合,RTEは,エクスキュータブル実行順番の昇順 で,ランナブルが開始するか(使用OSイベントが設定されているか)の判定,および開始を順に行う

【rte_sws_a_0013】.

直接関数呼出しの挙動

RTE API内から,ランナブルを開始する(エントリポイント関数を呼び出す)【rte_sws_a_0014】.

ランナブルのライフサイクル管理

本RTEの機能仕様範囲では,EcuStateManager およびOSのライフサイクル管理により,RTEが 行うべきランナブルのライフサイクル管理が実現可能である.このため,本RTEでは,ランナブルの ライフサイクル管理を行わない【nrte_sws_0051】.

2.5.4.3 BSWスケジューラブル起動

BSWスケジューラブル起動の実現方式は,以下のいずれかである.どの方式によりBSWスケジュ ーラブルを起動するかは,コンフィギュレーションにより選択できる.

BSWスケジューラ ブル起動の実現方 式

説明

OSタスク起動 OSタスクの起動によりBSWスケジューラブルを起動し,タスクボディから の関数呼出しによりBSWスケジューラブルを開始する.BSWスケジューラ ブルはマッピング先OSタスクのコンテキスト内で動作する.

OSタスクの起動契機(OSアラームの満了等)で,OSタスク内にマッピングさ れる全てのBSWスケジューラブルの起動契機が実現できる場合に使用でき る.

OSイベント設定 OSイベントの設定によりBSWスケジューラブルを起動し,タスクボディか らの関数呼出しによりBSWスケジューラブルを開始する.BSWスケジュー ラブルはマッピング先OSタスクのコンテキスト内で動作する.

OSイベントにより起動契機が識別できるため,OSタスクにマッピングされ るBSWスケジューラブル間で起動契機が異なる場合にも使用できる.

OSタスク起動の挙動

マッピング先OSタスクが起動された場合,タスクボディから,OSタスクにマッピングされるBSW スケジューラブルを開始する(エントリポイント関数を呼び出す)【rte_sws_a_0054】.あるOSタスク から複数のBSWスケジューラブルが起動する場合,SCHMは,エクスキュータブル実行順番の昇順で,

BSWスケジューラブルを開始する【rte_sws_a_0055】.

OSイベント設定の挙動

マッピング先OSタスクのタスクボディから,複数の使用OSイベントに対するOSイベント待ちを 要求する.いずれかの使用OSイベントが設定された場合,使用OSイベントが設定されているBSW スケジューラブルを開始する(エントリポイント関数を呼び出す)【rte_sws_a_0056】.BSWスケジュ ーラブルの実行が完了した後,OSタスクを終了させずにOSイベント待ちを再度要求する

【rte_sws_a_0057】.

あるOSタスクから複数のBSWスケジューラブルが起動する場合,SCHMは,エクスキュータブル 実行順番の昇順で,BSWスケジューラブルが開始するか(使用OSイベントが設定されているか)の判定,

および開始を順に行う【rte_sws_a_0058】.

BSWスケジューラブルのライフサイクル管理

本SCHMの機能仕様範囲では,EcuStateManager およびOSのライフサイクル管理により,

SCHMが行うべきBSWスケジューラブルのライフサイクル管理が実現可能である.このため,本 SCHMでは,BSWスケジューラブルのライフサイクル管理を行わない【nrte_sws_0206】

【nrte_sws_ext_0021】.

2.5.5 エクスキュータブル動作の設定