メインコンテンツに移動

車載マルチデバイスのデバッグ/プロファイリングソリューション

画像
Yoshihito Ogawa
Yoshihito Ogawa
Sr Staff Software Engineer
掲載: 2023年8月8日

アーキテクチャの進化と車載ソフトウェア

近年、自動車産業は大きな変革期を迎えております。この変革の中でトレンドやニーズも大きく変化しており、コネクティビティ、自動運転、運転支援、電動化など必要な機能が年々増加しています。機能の増加に伴い搭載されるECUも増加を続けており、複雑化するシステムに対応するため、自動車の電気・電子アーキテクチャ(E/Eアーキテクチャ)も進化を続けています。
こうしたシステムを制御するには、ECUを構成する複数のデバイスによる協調動作が必要になります。

車載ソフトウェア開発における課題

複数のデバイスによる協調動作が必要なマルチデバイス環境向けソフトウェア開発には、次のような課題があります。

1.どのデバイスのソフトウェアに問題があるか判断が難しい
複数のデバイス上の様々なソフトウェアが連携して動作するシステムでは、不具合のあるソフトウェアの動作により他のデバイス上のソフトウェアでエラーが発生することがあります。このような場合、エラーの発生したソフトウェアをデバッグするだけでなく、他のデバイスで同時に動作していたソフトウェアの挙動を理解しなければ問題の原因を特定することはできません。
2.どのタイミングでシステムの負荷が高いか特定が難しい
マルチデバイスのシステムでは、特定のタイミングに負荷が集中してハードウェア性能を最大限に活用したシステムを実現できていない場合があります。既存の性能測定ツールを使用することで単一デバイスのプロファイリングは可能ですが、特定のタイミングに着目してシステム全体の負荷を把握することは容易ではありません。
画像

ルネサスの取り組みとソリューション

ルネサスでは、前述したマルチデバイス向けソフトウェア開発の課題を解消するためのソリューション開発に取り組んでおります。今回はそのソリューションの1つであるSynchronous Logging (以後、Sync Loggingといいます)について紹介します。
Sync Loggingは、複数のデバイスで構成されたシステムのデバッグやプロファイリングのためのソリューションで、各デバイスで同じ時刻にどのような処理が行われていたかを把握するための手段を提供します。各デバイスの挙動を把握するために、straceやperf toolなどのLinuxツールや、ソフトウェアに組み込まれたログメッセージを利用します。ログメッセージの時刻情報によって、エラーの発生した時刻に他のデバイス上で動作するソフトウェアの挙動を確認できるため、エラーの原因を特定しやすくなります。
また、各デバイスのリソース使用状況を把握するための手段として、perf toolやtop、vmstatなど時刻情報を持つログを出力できるLinuxのコマンドやツールを使用します。時刻情報を持つログメッセージの時刻を同期させてリソース使用状況の情報を分析できるので、特定の時刻におけるシステムの負荷状況を把握できます。

画像

Sync Loggingは、Host PC上で動作するTrace Managerとデバイス上で動作するTrace Monitorの2つのツールで構成されます。デバイス上で動作するソフトウェアやツールが出力するデータは、Trace Monitorを経由してHost PC上のTrace Managerへ送られます。Trace Managerは、複数のデバイスから送られてきたデータを時刻順に並べて出力します。この出力データを解析することで、同じ時刻に各デバイス上のソフトウェアがどのような処理を実施していたか、システムの負荷がどの程度かといった情報を把握することができます。

開発状況と今後の展開

Sync Loggingは、R-Car S4とR-Car V4Hの評価環境を対象として開発しました。今後は次世代のR-Car製品や車載向けMCU製品も対象としてサポートを拡充していく予定です。また、サポートするツールの拡充や取集したデータを分かりやすく表示するなど、機能追加や使い勝手の向上に継続的に取り組んでおります。
マルチデバイス向けソフトウェア開発環境にご興味がありましたら窓口の方からお問い合わせください。

この記事をシェアする