HighTec 社 は、GCC および LLVM ベースのオープンソース テクノロジを利用して、主要なマイクロコントローラ ファミリおよび組み込みマイクロプロセッサ向けの機能安全認定済み C/C++ コンパイラ スイートを開発しています。TriCore(Infineon AURIX microcontroller family TC2x, TC3x and TC4x)、Power Architecture (PowerPC)、ARM、RISC-V など、自動車および産業用アプリケーション市場をリードするマイクロコントローラをサポートして、組み込みソフトウェア開発のための最も信頼性が高くセキュアなツールを提供します。HighTec EDV Systeme は、1982 年の設立以来非公開企業であり、世界最大の商用オープンソースコンパイラベンダーです。
C/C++ Development Platform
C/C++ compiler suites for automotive and industrial
主な特徴
- マルチアーキテクチャ対応
- 最先端の最適化技術を備えたC/C++コンパイラ
- リンカレベルでの高度なマルチコアサポート(ソースコードの変更不要)
- 専用の C コンパイラによる GTM/MCS や HSM モジュールなどのアーキテクチャ固有の機能ブロックのサポート
- ISO 26262クオリフィケーションキット
- Frozen:固定ツールバージョンのサポート
- 拡張されたプロジェクト設定とリンカ記述構成用のグラフィカルインターフェイスを備え、デバッガ統合のために簡単に拡張できる Eclipse IDE
- TriCore, AURIX, AURIX 2G, Power Architecture (PowerPC), ARM, RISC-V
一般的な最適化機能
HighTecのコンパイラの最も高度な最適化技術は、最小のフットプリントで最速のコードを生成します。 コンパイラは、バッチ処理のためにコマンドラインインターフェースを介して、またはEclipseベースのHighTecによるSafe Multi-Core PlatformなどのIDE内で使用することができます。 当社のコンパイラは、市場で最速のビルドシステムであり、並列コンパイルプロセスをサポートしています。コンパイラは、次の要素で構成されます。
- 言語固有のフロントエンド
- グローバルオプティマイザ
- ターゲット固有のオプティマイザ
- 商用ライブラリ(オープンソースなし)
HighTec C / C++コンパイラは、完全にEABIに準拠しており、最新のANSI / ISO CおよびC++コンパイラ標準(C89、C99など)に準拠しています。 ユーザーは、プログラミング言語、ターゲットアーキテクチャ、パフォーマンスレベル - 速度やコードサイズの最適化、デバッグレベルなど、さまざまな機能を選択できます。
マルチアーキテクチャ対応
HighTecコンパイラは幅広い組み込みアーキテクチャをサポートしており、あるアーキテクチャから別のアーキテクチャにいつでも移行できます。 異なるアーキテクチャーに対応できる開発ツールであれば、学習の時間を短縮し、生産性を高め、市場投入までの時間を短縮します。 以下のアーキテクチャがサポートされています。
- Infineon AURIX TMマイクロコントローラー ファミリ TC2x、TC3x、TC4xで使用されるTriCore
- ARM v8-M、ARM v8-R 32 ビット、および ARM v8 64 ビット
- STおよびNXPマイクロコントローラで使用されるPowerPCアーキテクチャ
- ARC EVx AURIX TC4x ファミリに統合された PPU
- GTM/MCS
- RISC-V
- AURIX マイクロコントローラー ファミリのスタンバイコントローラーとして使用される8051/SCR
ターゲット固有の最適化
- TriCore / AURIX:絶対アドレス指定モード、サーキュラー
- 可変長符号化のPowerPC NON-VLE命令とVLE命令の混合
- レガシーNON-VLEコードは、同等のVLEコードでPowerPCアセンブラによって変換されます
- サポートされているPowerPC機能:VLE、SAT、LSP、パイプライン最適化によるデュアル発行
- HSMコンパイラおよびGTMアセンブラ
小さなデータ領域の最適化は、AURIX、Power Architecure、RISC-V などの特定のアーキテクチャで使用できます。これらのコントローラは、アドレス計算を省略できるため、コードサイズと実行時の動作を最適化するさまざまなアドレッシングモードを提供します。
豊富なリンクコマンド言語により、コードとデータのメモリ内のレイアウトを最適な方法できめ細かく制御できます。特に、マルチコアのターゲットでは、コードとデータのレイアウトによって実行時の動作が大幅に改善されます。 HighTecコンパイラは、既存のソースコードを変更することなく、各要素が別のサブセクションに配置されるように、プラグマセクションのステートメントを分解するコマンドラインオプションを提供します。サブセクションの分割により、ユーザーは各要素を最適なメモリ位置に配置することができます。例えば、マルチコア・アプリケーションでのデータ・アクセスの頻度を考慮すると、セクションの頻繁に使用されるいくつかのデータ要素をグローバル・メモリよりもはるかに高速なコアのローカル・メモリに配置することは有益です。マルチコアでの性能向上は10%以上にもなります。 HighTecまたはパートナーのGliwaとTiming Architectsがマルチコア・アプリケーションの全体的なパフォーマンスを最適化するために、追加のコンサルティング・サービスを提供しています。
任意のアドレスにロードできる位置独立コード(PIC)と位置独立データ(PID)は、High-Tecコンパイラでサポートされています。
主要半導体パートナーとの優れたコラボレーションに基づいて、最新の車載マイクロコントローラに対応したハイテックのコンパイラは、Elektrobit、ETAS、Vectorなどの主要なAUTOSARオペレーティングシステムベンダーによるMCALドライバとともにサポートされています。
高度なマルチコアサポート
自動車のマルチコアアプリケーションでは、いわゆる共通リンクが使用されます。つまり、異なるコアに分散されたアプリケーションは、データやコードを共有できます。自動車アプリケーションのほとんどは、もともとマルチコア環境で使用するように設計されていなかったレガシーコードを含んでいます。そのため、ソースコードを変更せずにシングルコアからマルチコアにアプリケーションを移行することが強く望まれます。
この需要に応えるため、HighTecはソースコードを変更することなくリンカレベルでコードとデータを異なるコアに簡単にマッピングする、いわゆるアドバンストマルチコアサポートを提供しています。この機能により、お客様はプログラミングの自由度が得られ、既存のコードを最小限の労力で簡単に再利用することができます。
異なるコア間のデータ交換は、リンカレベルでコア間のユーザー定義のインターフェイスを指定する 'hide-and-visibility' コンセプトよって処理されます。データとコードは、他のどのコアにも表示されるように明示的に指定する必要があります。
リンカは、異なるコアアーキテクチャ用のオブジェクトファイルを相互にリンクし、その結果の出力ELFファイルを生成することができます。このマルチコア機能は、Lauterbach などの主要なデバッガベンダーによってサポートされています。
ISO 26262
革新のCompiler Qualification Kit(QKit)は、お客様が機能安全規格への準拠ためのコンパイラツール認定(クオリフィケーション)をシンプルかつ簡単に実行することができるツールを提供します。 QKitは、Validas AGおよび自動テストフレームワークと協力して開発されたクオリフィケーション支援ツール(QST)で構成されています。 QSTにはコンパイラツールチェーンの詳細なモデルが含まれており、ツール認定に必要なテストとドキュメントを顧客のユースケースから生成します。
機能安全規格ISO26262の要件を満たすためにブランチカバレッジ分析が必要です。通常、カバレッジ解析ツールは、この目的のためにソースコードに対するインスツルメンテーションを使用します。しかし、これによりアプリケーションのバイナリコードを変更するため、分析されたアプリケーションと最終的なアプリケーションが異なります。 HighTecは、ブランチカバレッジ分析を実行するための代替アプローチを提供します。
ソースコードをインストルメントする代わりに、HighTecコンパイラは、アプリケーションの制御フローをアプリケーションの別のデバッグセクションに出力します。この情報は、デバッガと共に使用されて、最終アプリケーションのブランチカバレッジ分析を実行できます。
もう1つの重要な安全対策は、最終イメージのポストビルド検査です。機能安全に関わるアプリケーションでは、メモリレイアウトの検証や最終的なELFファイルの整合性などのエラーチェックが不可欠です。この目的のために、HighTecは以下の拡張を提供します:
- 詳細マップファイル
- ELFファイルのダンプ
生成されたデータは、標準のXML形式で出力され、コードとデータのコア割り当てに関する情報も含まれています。 コア間通信は、Mapfileの相互参照テーブルにリストされています。 この情報に基づいて、ユーザーはアプリケーションの出力と一貫性を検証する追加のスクリプトを実装することができます。
固定ツールバージョンのサポート
安全関連のアプリケーションでは、コンパイラのような開発ツールを含め、製品のライフサイクルを完全にコントロールする必要があります。 HighTecは、お客様がライフサイクルをコントロールできるように固定バージョンのコンパイラブランチを提供しています。 Frozen Branch Maintenanceを使用すると、コンパイラの変更がコードに及ぼす影響を最小限に抑えることができます。これにより、顧客は、どのアップデートやカスタマイズされたバグ修正を取り入れるかなど、新しいQAサイクルの実行時期を決定することができます。

日本語版チュートリアル
コンパイラとデバッガ入門
HighTec 社統合開発環境を用いてプロジェクトをコンパイル・リンクして実行形式ファイルを生成することと、ローターバッハ社TRACE32 の最も重要なデバッグ機能やデバッガの使用に役立つ多くのヒントとコツを紹介します。
単体テストツールとコンパイラ/デバッガの連携
国際スタンダード認証に最も実績のあるLDRA 社テストツールは、あらゆるターゲット環境をサポートします。これについて、HighTec 社 コンパイラとローターバッハ社デバッガを用いて紹介します。 動画デモ、スライド資料も公開中