2. 概念
2.6 エクスキュータブル周期起動
2.6.3 エクスキュータブル周期起動の実現方式
2.6.3.1 実現方式の構成要素
エクスキュータブル周期起動の実現方式は,以下の要素から構成される.
使用OSアラーム
周期起動エクスキュータブルの起動契機となるOSアラーム.
OSアラームのセットは,ECUインテグレーション時に実施されることを期待する
【nrte_sws_ext_0031】.
使用OSアラーム起動オフセット 使用OSアラームの起動オフセット.
使用OSアラーム起動周期 使用OSアラームの起動周期.
2.6.3.2 起動オフセット,および周期の満了
RTE/SCHMは,起動オフセット,および周期の満了をOSアラームにより実現する.
RTE/SCHMは,使用OSアラームからの間接的な満了通知を受け取り,周期起動エクスキュータブ
ルの起動に変換する【rte_sws_a_0016】.間接的な満了通知とは,使用OSアラームからのOSタスク 起動,もしくはOSイベント設定である.
周期起動エクスキュータブル2
OSタスク 周期起動エクスキュータブル1
エクスキュータブル-OSアラーム間のタイミング調整
エクスキュータブル起動オフセット/起動周期と使用OSアラーム起動オフセット/起動周期が異な る場合,RTE/SCHMは,エクスキュータブル起動オフセット/起動周期を満たすように調整を行う
【rte_sws_a_0017】.以下に,調整の例を図示する.
周期起動エクスキュータブル2
使用OSアラーム
起動オフセット(3ms) 起動周期(1ms) 起動オフセット(5ms) 起動周期(4ms)
RTE/SCHMがエクス キュータブルの起動オフ セット/起動周期になる よう調整する.
周期起動エクスキュータブル1
起動オフセット(3ms) 起動周期(5ms)
図 2-10 エクスキュータブル-OSアラーム間のタイミング調整
使用上の注意
RTE/SCHMは,周期起動エクスキュータブル間で,動作タイミングを同期する機能を提供しない.
RTE/SCHMは,コンフィギュレーションに従った動作を行うのみであり,OSアラームの同期に対す
る責任は持たない.周期起動のタイミングの同期については,RTE/SCHM,およびOSのコンフィギ ュレーションを行うユーザの責任とする.
ユーザは,以下の方法で周期起動のタイミングの同期を実現できる.
・ 全ての周期起動の実現に,同じOSアラームを使用する.
・ 周期起動の実現に,同じOSカウンタに基づいた異なるOSアラームを使用し,ECUインテグレ ーションコード中でOSアラームの開始時間の絶対オフセットの同期をとる.
・ 周期起動の実現に,同じ設定の異なるOSカウンタ(OSカウンタのインクリメント周期,および 最大値が等しい)に基づいた異なるOSアラームを使用する.そして,ECUインテグレーション コード中でOSアラームの開始時間の絶対オフセットの同期をとる.
2.6.4 エクスキュータブル周期起動の設定
2.6.4.1 周期起動エクスキュータブル
周期起動ランナブルは,周期イベント(TimingEvent)により起動されるランナブル(RunnableEntity) として指定する【nrte_sws_0170】.
周期起動BSWスケジューラブルは,周期イベント(BswTimingEvent)により起動されるBSWスケジ
ューラブル(BswSchedulableEntity)として指定する【nrte_sws_0212】.
2.6.4.2 エクスキュータブル起動オフセット,および起動周期
ランナブル起動オフセット,および起動周期の設定
ランナブル起動オフセットは,周期イベント(TimingEvent)を参照するRTEイベント-OSタスクマ ッピング(RteEventToTaskMapping)の起動オフセット(RteActivationOffset)により指定する
【rte_sws_7000】.
ランナブル起動周期は,周期イベント(TimingEvent)の起動周期(period)により指定する
【rte_sws_a_0019】.
BSWスケジューラブル起動オフセット,および起動周期の設定
BSWスケジューラブル起動オフセットは,周期イベント(BswTimingEvent)を参照するBSWイベン ト-OSタスクマッピング(RteBswEventToTaskMapping)の起動オフセット(RteBswActivationOffset) により指定する【rte_sws_7520】.
BSWスケジューラブル起動周期は,周期イベント(BswTimingEvent)の起動周期(period)により指定 する【rte_sws_a_0060】.
2.6.4.3 使用OSアラーム
ランナブルの使用OSアラームは,周期イベント(TimingEvent)を参照するRTEイベント-OSタスク マッピング(RteEventToTaskMapping)の使用OSアラーム(RteUsedOsAlarmRef)により指定する
【rte_sws_7804】【rte_sws_7806】.
BSWスケジューラブルの使用OSアラームは,周期イベント(BswTimingEvent)を参照するBSWイ ベント-OSタスクマッピング(RteBswEventToTaskMapping)の使用OSアラーム
(RteBswUsedOsAlarmRef)により指定する【nrte_sws_0213】.
使用OSアラーム起動オフセットは,使用OSアラームを参照するOSアクティベーション設定 (RteUsedOsActivation)の起動オフセット期待値(RteExpectedActivationOffset)により指定する
【rte_sws_7805】.
しないよう,SW-C/BSWMを開発するユーザがエクスキュータブルの処理内容を設計/実装するか,
RTE/SCHMのコンフィギュレーションを行うユーザがエクスキュータブル周期起動の設定を行う必要
がある.
周期起動エクスキュータブル2
使用OSアラーム
起動周期(1ms) 起動周期(4ms)
エクスキュータブルの実行時 間が使用OSアラーム起動周 期を超えてしまうと,スケ ジューリングが崩れてしまう.
周期起動エクスキュータブル1
起動周期(5ms)
図 2-11 使用OSアラーム起動周期を周期起動エクスキュータブルの実行時間が超える場合