colagumの日記

備忘録、日記

AUTOSAR勉強4 スケジュールテーブル

2.13 スケジュールテーブル

  • タスク起動やイベントセットなどの一連の処理を、静的なテーブルに記述されたタイミングで実行するためのOSオブジェクト
  • カウンタに接続し、カウンタによって動作する
  • スケジュールテーブルを使用する利点
    • アラームでは停止とセットの組み合わせで実現しなければならないタスク起動やイベントセットなどの一連の処理を、静的な定義により実現することができる。

2.13.1 スケジュールテーブルの構成要素

要素名 概要
周期 スケジュールテーブルの処理が一回りするティック数
満了点 スケジュールテーブル内で、タスク起動、イベントセットする時刻
スケジュールテーブルは少なくとも一つの満了点を持つ
1つの満了点には、少なくとも一つの満了点処理をもつ
全ての満了点は、一意なオフセットで満了時刻を指定する
満了時刻は、スケジュールテーブルの先頭からのオフセットで指定する
初期オフセット スケジュールテーブルの先頭から、先頭満了点までのティック数
初期オフセットは0か、もしくは接続されたカウンタの最小周期以上、かつカウンタの最大値以下でなくてはならない
遅延 満了点間のティック数
カウンタの最小周期以上、カウンタの最大値以下でなくてはならない
最終遅延 スケジュールテーブルの最終満了点からスケジュールテーブル終端までのティック数
カウンタの最小周期以上、カウンタの最大値以下でなくてはならない
例外として、単発動作指定時のみ、最終遅延を0以上、カウンタの最大値以下としてもよい
スケジュールテーブル時刻 スケジュールテーブルの現在のティック

2.13.2 スケジュールテーブルを制御するカウンタ

  • 駆動カウンタ
    • スケジュールテーブルと接続されたカウンタ
    • OSオブジェクト
  • 同期カウンタ
    • 明示同期スケジュールテーブルで使用する絶対時刻の供給源
    • OSオブジェクトのカウンタではない

2.13.3 スケジュールテーブルの種別 3種

  • 同期なしスケジュールテーブル
    • 同期機能を使用しないスケジュールテーブル
  • 暗黙同期スケジュールテーブル
    • 駆動カウンタと常に同期しているスケジュールテーブル
    • OSは暗黙同期のスケジュールテーブルに対して特別な機能を提供しない
  • 明示同期スケジュールテーブル
    • ユーザが同期カウンタの絶対時刻をOSに供給し、OSが駆動カウンタをと同期カウンタを同期させるスケジュールテーブル

2.13.4 スケジュールテーブルの状態

  • 停止状態
    • スケジュールテーブルを停止している状態
    • 満了点処理は実行されない
  • 動作状態
    • カウンタのティックに従って、満了点処理を実行する状態
    • 同期無しスケジュールテーブルにおいては、満了点処理は実行されるが、同期カウンタとは非同期である
  • 切り替え待ち状態
    • スケジュールテーブルの切り替え待ち要求を受けた状態
    • 具体的には、現在動作しているスケジュールテーブル(A)が、スケジュールテーブルの切り替え要求を受けた際、切り替え後のスケジュールテーブル(B)に指定され、現在動作しているスケジュールテーブル(A)の終了を待っている状態
    • 満了点処理は実行されない
  • 同期待ち状態
    • 明示同期スケジュールテーブルにおいて、同期カウンタのティック供給を待っている状態
    • 満了点処理は実行されない
  • 同期動作状態
    • 明示同期スケジュールテーブルにおいて、駆動カウンタと同期カウンタが同期しており、駆動カウンタのティックに従って満了点処理を実行する状態
    • 暗黙同期スケジュールテーブルにおいては、カウンタのティックに従って満了点処理を実行する状態
  • 動作開始待ち状態
    • スケジュールテーブルの開始要求を受けた後指定されたティックとなるまでの間の状態
    • 状態は動作状態であるが、満了点処理は実行されない