車載アプリケーション用コンパイラの選択
図1: 「未来の自動車」は、それほど先のことではない!
車載アプリケーション用のコンパイラ機能
コンパイラ機能に求められることは、自動車業界の製品によって異なります。一部のコンパイラは、オープンソースのコンパイラがベースとなっています。一見すると、これらは有能で安価に見えます。しかし、「有能」と「安価」は、両立する場合がほとんどなく、ここでも同様です。安価ではあるが、大きな欠点がいくつかあり、実際の製品のコードを開発するときには,以下のような頭痛の種がたくさん出てくる可能性があります。
- コンパイラが、再販業者の管理下にない。バグが蔓延、増殖する可能性がある
- オープンソースのコンパイラは、しばしばハードウェアを意識していない。ハードウェアが提供するパフォーマンスや安全性を全て利用できない場合がある。
- 一般に、カスタムコンパイラの生成するコードの方が優れている。より速くサイズが小さい。
コード最適化を行わないコンパイラを検討している場合、結局は自分をごまかすことにもなりかねません。コード最適化では、コードを単純に、サイズを小さくし、実行を速くする方法を探すようコンパイラに指示できます。また、一部のコンパイラは、独自のアセンブリ命令を使って、C/C++にない関数をインクルードすることによって、コードのアクセラレーションも行います。
優れたコンパイラは、デバッグが簡単にできることも必要です。完璧なコードを書く人間はいません! 一部のコンパイラは、実際にデバッガーを実行するよりも、しばしば時間がかかる、骨の折れるセットアップを必要とします。セットアップが素早く簡単にでき、選択したデバッガと連携できるコンパイラが必要です。
安全性
自動車業界では、安全性より重要なものはありません。車間距離、緊急ブレーキ、車線逸脱など、安全運転機能を搭載した製品が、既に生産されています。間もなく車は、自動運転機能を搭載し、無線でソフトウェア更新データを受信するようになります。つまり、ハードウェアとソフトウェアが、安全基準を満たす必要があります。
順守する必要のある基準や、満たす必要のある安全要件は、多くあります。まずはハードウェアです。ほとんどのハードウェアは、チップに安全機能を搭載しています。その機能は、最終製品の安全性を確保します。
ただし、使用するコンパイラが、これらの安全機能を認識していない場合、うまくいってもアセンブリコードを書くのに行き詰まり、最悪の場合、ハードウェア機能を適切に作成できない可能性もあります。
考慮すべきもう1つの要因は、コンパイラの認定です。ASPICE認定ソフトウェア開発ツールでは、早期にエラーを修正でき、製品開発 コストを時には大幅に削減できます。
図2: 高品質のハードウェアを、トップエンドのソフトウェア開発ツールと組み合わせると、高速で効率の良いコードが生成される
適切な選択
安全機能やパフォーマンス機能を全て活用できるよう、ハードウェアと緊密に連携するコンパイラを選択することが、必要不可欠です。
コンパイラや組み込みソフトウェア開発ツールの選択について理解を深めてください。TriCore Apps向けDevToolsに関する専門家のアドバイスを受けてください。