HighTec 社 は、GCC および LLVM ベースのオープンソース テクノロジを活用して、主要な組み込みマイクロプロセッサ向けの機能安全認定済み C/C++、Rust コンパイラ スイートを開発しています。TriCore(Infineon AURIX microcontroller family TC2x, TC3x and TC4x)、Power Architecture (PowerPC)、ARM、RISC-V など、自動車および産業用アプリケーション市場をリードするマイクロコントローラをサポートしています。HighTec EDV Systeme は、1982 年の設立以来非公開企業であり、世界最大の商用オープンソースコンパイラベンダーです。ASIL-D 認定を、GCC と LLVM ツールチェーンの両方で取得した、最初の企業です。そして、Rust コンパイラでも、初の ASIL-D 認定を受けたパイオニアです。
車載グレードの C/C++, Rust コンパイラを提供するHighTec社の製品概要(約12分)
C/C++ Development Platform
主な特徴
- マルチアーキテクチャ対応
- 最先端の最適化技術を備えたC/C++ コンパイラ
- リンカレベルでの高度なマルチコアサポート(ソースコードの変更不要)
- 専用の C コンパイラによる GTM/MCS や HSM モジュールなどのアーキテクチャ固有の機能ブロックのサポート
- ISO 26262クオリフィケーションキット
- Frozen:固定ツールバージョンのサポート
- 拡張されたプロジェクト設定とリンカ記述構成用のグラフィカルインターフェイスを備え、デバッガ統合のために簡単に拡張できる Eclipse IDE
- TriCore, AURIX, AURIX 2G, Power Architecture (PowerPC), ARM, RISC-V
- 多様なライセンスオプション(ノードロック、フローティング、複数地域、ローミング、ビルドサーバー)
マルチアーキテクチャ対応
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
- AURIXファミリー全機種(TC2x、TC3x、TC4x)を完全にサポート
- TC2xおよびTC3x向けの実績あるGCCベースのC/C++ TriCoreコンパイラ
- 広く利用され、最新かつ効率的なLLVMベースのC/C++ TriCoreコンパイラ(TC3xおよびTC4x向け)
- TriCoreのベンチマーク結果でトップ
- TC4xファミリーのPPU向けC/C++ MetaWareツールおよびソフトウェアセット
- ONNX2Cツールチェーンは、ONNX AIモデルからCコードを生成
- TC2xおよびTC3xにおけるHSM用Cコンパイラ
- TC3xおよびTC4xにおけるGTM/MCSコントローラ用Cコンパイラ
- TC2x、TC3x、TC4xにおけるスタンバイコントローラ(SCR)用のCコンパイラ
- ISO 26262 ASIL D 認定キット
- TriCore独自のハードウェア機能(SIMD、ループ最適化)を活用した、非常に効率的なコード生成
- AUTOSAR MCALドライバーサポート(販売およびオンサイトトレーニングを含む)
- Vector、Elektrobit、ETASなど、関連するすべてのAUTOSARベンダーによるAUTOSAR BSWのサポート
- PXROS-HR安全マルチコアOS、iLLD、MCAL、SafeTlib/SafeTPackなど
- インフィニオン・プリファード・デザイン・ハウス(PDH)として、包括的な技術サポートとトレーニングを提供し、コンパイラとソフトウェアをワンストップで提供
Infineon AURIX向けSynopsys ARC® MetaWare開発キットを提供
- LLVMベースアーキテクチャにより、TriCoreコードとのシームレスな統合を保証
- PPU向けに最適化されたC/C++ LLVMコンパイラで、並列Cの拡張機能も含まれる
- PPU向けの包括的な数学ライブラリ
- PPU用ランタイムシステム
- PPUとTriCoreマルチコアアーキテクチャ間のプロセッサ間通信(IPC)用ソフトウェアパッケージ。シンプルなベアメタル版とAUTOSAR複合デバイスドライバ(CDD)版の2つの実装がある。
- Simulink embedded coder を使用して PPU 最適化コードを生成するMATLAB プラグイン
- AI/機械学習アルゴリズム用のニューラルネットワークを構築するためのxNNソフトウェア開発キット(SDK)
- PPUシミュレータおよびデバッガー
- Cortex Mx/Rx/Ax 用 C/C++ コンパイラ
- NXP S32シリーズ、ST Stellar(Cortex-Mx、Cortex-R52)、Infineon TRAVEO II、TI Cortex-Rxシリーズ、Renesas ARMなど、多数の製品に対応
- オートベクター化およびアドバンストネオン命令(SIMD)
- 適応型AUTOSARサポート(C++14)
- リンク時間最適化
- パイプライン最適化
- 共有ライブラリのサポート
- Thumb2命令セット
- VFPサポート
- Cortex M3/M4のサポート( AURIX HSMを含む)
- GTM/MCS用Cコンパイラ
- RISC-Vコアを完全にサポート
- 最新のLLVMテクノロジー
- ISO 26262 ASIL D安全認証取得済み
- ビット操作のためのZb*拡張機能
- ベクトル命令用のZv*拡張機能
- 言語規格(C++14/C++17)をサポート
- ビルド時間の短縮、コード密度の高さ、実行速度の速さ
- インフィニオン AURIX 2G - TC3xxシリーズ
- STマイクロエレクトロニクス Stellar、SPC58NE84E7、SPC58NE84C3
- NXP S32シリーズ、MPC5777M、MPC58xx
- ルネサス RH850/P1H-C、RH850/P1M-C
- およびv4.x GTMコアレベルを搭載した今後のバリアント
- STMicroelectronics SPC56x、SPC57x、SPC58x
- NXP Qorivva MPC56xx、MPC57xx、MPC58xx
- VLS、SAT、LSP、パイプライン最適化デュアル発行をサポート
- 非VLEとVLEの可変長エンコード命令
- 従来の非VLEから同等のVLEへのコード変換
- スモールデータポインタ機能:コードと実行時間が約20%改善
- SIMDおよびFPUのサポート
- GTM/MCS用Cコンパイラ
- 位置独立コード(PIC)およびデータ(PID)
- STマイクロエレクトロニクス社のAUTOSARライブラリの販売およびサポートパートナー
- LLVMベースのC/C++およびRustコンパイラを最適化
- U2xハードウェア機能を活用するための最適化されたコード生成
- IS20262 ASIL D資格取得キット(開発中)
- AUTOSAR MCALのサポート
- e2 Studioとの統合
LLVMベースのC/C++コンパイラスイート
実績のある既存および新規マイクロコントローラ向けに開発された、最新のLLVMオープンソースコンパイラ技術を採用
- 最も広く使われているC/C++コンパイラと巨大なサポートコミュニティ
- ユーザーフレンドリーなApache 2.0ライセンス条項
- ISO 26262 ASIL D 認定パッケージ
- ベンチマークで優れた結果を出す最適化されたTriCore LLVMバックエンドを開発
- ARMターゲットおよびARCコア向けに高度に最適化
- 優れたClang分析サポート
- C++14、C++17、C++20のサポート
- 高速なビルド時間
- 高度なマルチコアサポート
- WindowsおよびLinuxホストOSのサポート
- プロジェクトウィザードとボードサポートパッケージを備えたIDE
Rust コンパイラ(ASIL-D 認定)を提供
LLVM テクノロジを活用することで、既存のC/C++ コードをRustに統合できるため、開発者はアプリケーション全体を再設計することなく、メモリの安全性、同時実行性、相互運用性など、Rust 言語のあらゆる機能を利用して、安全でセキュア、かつ高性能なアプリケーション開発を支援します。
GCCベースのC/C++コンパイラスイート
広く普及するGCC技術を自動車業界の厳しい要求を満たすように改良
- ISO 26262 ASIL D 認定パッケージ
- 極めて安定した信頼性の高いコード生成を実現し、多くの安全性が重視される自動車用途で多くの実績
- 最適化された商用標準および数学ライブラリ
- 長期サポートおよび固定バージョンのサポート
- TriCoreやPower Architectureなど、さまざまなターゲット向けの高度に最適化
- 高度なマルチコアサポート
- WindowsおよびLinuxホストOSのサポート
- プロジェクトウィザードとボードサポートパッケージを備えたIDE
一般的な最適化機能
HighTecのコンパイラの最も高度な最適化技術は、最小のフットプリントで最速のコードを生成します。 コンパイラは、バッチ処理のためにコマンドラインインターフェースを介して、またはEclipseベースのHighTecによるSafe Multi-Core PlatformなどのIDE内で使用することができます。 当社のコンパイラは、市場で最速のビルドシステムであり、並列コンパイルプロセスをサポートしています。コンパイラは、次の要素で構成されます。
- 言語固有のフロントエンド
- グローバルオプティマイザ
- ターゲット固有のオプティマイザ
- 商用ライブラリ(オープンソースなし)
HighTec C / C++コンパイラは、完全にEABIに準拠しており、最新のANSI / ISO CおよびC++コンパイラ標準(C89、C99など)に準拠しています。 ユーザーは、プログラミング言語、ターゲットアーキテクチャ、パフォーマンスレベル - 速度やコードサイズの最適化、デバッグレベルなど、さまざまな機能を選択できます。
ターゲット固有の最適化
- 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の製品ではライセンス管理にRLM(Reprise License Manager)を使用しています。ライセンスの形態にはノードロック・フローティングキャッシュ・ローミングの3種類があります。
日本語版チュートリアル
コンパイラとデバッガ入門
HighTec 社統合開発環境を用いてプロジェクトをコンパイル・リンクして実行形式ファイルを生成することと、ローターバッハ社TRACE32 の最も重要なデバッグ機能やデバッガの使用に役立つ多くのヒントとコツを紹介します。
単体テストツールとコンパイラ/デバッガの連携
国際スタンダード認証に最も実績のあるLDRA 社テストツールは、あらゆるターゲット環境をサポートします。これについて、HighTec 社 コンパイラとローターバッハ社デバッガを用いて紹介します。 動画デモ、スライド資料も公開中
