通信以外のクラスタが提供するサービスをSW-Cから利用する際には、BSW群の中の最上位部分であるServices Layer BSWモジュール(クラスタ全体として提供するサービスの窓口役)が提供するサービスを、RTEを経由して利用することとなります。
Watchdogスタックは、WdgM(Watchdog Manager)、WdgIf(Watchdog Interface)、Wdg(Watchdog Driver)から構成されますが、このうちServices Layer BSWに相当するのはWdgMです。
このスタックは、その名称とは異なり、ハードウェアウォッチドッグを制御するだけではありません。
1)動作の監視(Supervision Functions):Alive supervision(Heartbeat)、Deadline supervision(処理完了のDelay/Timeout検出)、Logical supervision(Graphに基づくControl Flow Monitoring)の3種類の基本的な監視メカニズムを持つ。主な監視対象(Supervised Entity、SE)はSW-Cであるが、監視の単位をREとすることも可能であり、また、BSW動作を監視させることも理論的には可能。監視は、監視対象からの「Checkpointへの到達通知」に基づき行われる。
2)ウォッチドッグデバイスの制御(Watchdog Handling):監視結果に基づき、WatchdogデバイスへのTrigger信号発行制御の指示をWdgMが出し、その内容をWdgIf経由でWdgに伝え、実際のTrigger信号を発行させる。
3)異常検出時の対処(Error Handling/Failure Recovery/Recovery Action):異常検出後の対処を行う。選択肢としては、RTEへの動作モード変更通知、Diagnostic Event記録(Dem:Diagnostic Event Managerへの通知)、Partition Shutdown /Restart(Os APIによる ※R21-11時点ではすでに廃止予定)、ウォッチドッグデバイスへのTrigger停止(その後マイコンにリセットがかかることを想定)、マイコン即時リセットが用意されている。
監視対象SW-C内のREから「Checkpointへの到達通知」を発行するには、Rte_Call() APIが使用されます。
なお、実際の関数名は、Rte_Call_<Port名>_<Operation名>()となります。
「SWSの読み方」の中でも、上記の部分は、SW-CからBSWサービスを利用する際の重要なポイントとなります(自力で読み解こうとすると、「こう読めばよい」と理解するまでには少々時間がかかるようです)、ご参考まで。
前回、「スケジューラは分かるが、リアルタイムOS(RTOS)はいまひとつ」という皆さんに向けてのAUTOSAR CP入門のシリーズは、特にご要望がなければ次回で終了したいと思います、と申し上げましたが、原稿を書き始めてみたところ、すぐにchap.4までのボリュームを大きく見誤っていることに気付きました(疲れがたまっているせいか、目算が狂いました)。今回は区切りの良いところでいったん止め、次回に続けてまいります。
次回は、他のクラスタのBSWの機能を簡単にご紹介してまいります(果たして、次回で終わるのでしょうか!?!?)。
Copyright © ITmedia, Inc. All Rights Reserved.