車載アプリケーション用コンパイラの選択

Mark Forbes
|  投稿日 June 2, 2017  |  更新日 September 25, 2020

図1: 「未来の自動車」は、それほど先のことではない!

 
 

車載アプリケーション用のコンパイラ機能

コンパイラ機能に求められることは、自動車業界の製品によって異なります。一部のコンパイラは、オープンソースのコンパイラがベースとなっています。一見すると、これらは有能で安価に見えます。しかし、「有能」と「安価」は、両立する場合がほとんどなく、ここでも同様です。安価ではあるが、大きな欠点がいくつかあり、実際の製品のコードを開発するときには,以下のような頭痛の種がたくさん出てくる可能性があります。

  • コンパイラが、再販業者の管理下にない。バグが蔓延、増殖する可能性がある
  • オープンソースのコンパイラは、しばしばハードウェアを意識していない。ハードウェアが提供するパフォーマンスや安全性を全て利用できない場合がある。
  • 一般に、カスタムコンパイラの生成するコードの方が優れている。より速くサイズが小さい。

 

コード最適化を行わないコンパイラを検討している場合、結局は自分をごまかすことにもなりかねません。コード最適化では、コードを単純に、サイズを小さくし、実行を速くする方法を探すようコンパイラに指示できます。また、一部のコンパイラは、独自のアセンブリ命令を使って、C/C++にない関数をインクルードすることによって、コードのアクセラレーションも行います。

 

優れたコンパイラは、デバッグが簡単にできることも必要です。完璧なコードを書く人間はいません! 一部のコンパイラは、実際にデバッガーを実行するよりも、しばしば時間がかかる、骨の折れるセットアップを必要とします。セットアップが素早く簡単にでき、選択したデバッガと連携できるコンパイラが必要です。

安全性

自動車業界では、安全性より重要なものはありません。車間距離、緊急ブレーキ、車線逸脱など、安全運転機能を搭載した製品が、既に生産されています。間もなく車は、自動運転機能を搭載し、無線でソフトウェア更新データを受信するようになります。つまり、ハードウェアとソフトウェアが、安全基準を満たす必要があります。

 

順守する必要のある基準や、満たす必要のある安全要件は、多くあります。まずはハードウェアです。ほとんどのハードウェアは、チップに安全機能を搭載しています。その機能は、最終製品の安全性を確保します。

 

ただし、使用するコンパイラが、これらの安全機能を認識していない場合、うまくいってもアセンブリコードを書くのに行き詰まり、最悪の場合、ハードウェア機能を適切に作成できない可能性もあります。

 

考慮すべきもう1つの要因は、コンパイラの認定です。ASPICE認定ソフトウェア開発ツールでは、早期にエラーを修正でき、製品開発 コストを時には大幅に削減できます。

 

図2: 高品質のハードウェアを、トップエンドのソフトウェア開発ツールと組み合わせると、高速で効率の良いコードが生成される

 

適切な選択

安全機能やパフォーマンス機能を全て活用できるよう、ハードウェアと緊密に連携するコンパイラを選択することが、必要不可欠です。

 

コンパイラや組み込みソフトウェア開発ツールの選択について理解を深めてください。TriCore Apps向けDevToolsに関する専門家のアドバイスを受けてください。

 

筆者について

筆者について

Mark Forbes graduated from Bradley University with a BS in Electrical Engineering and has been in the EDA industry for over 30 years.

最新の記事

ホームに戻る