sifive.jpg HighTec EDV-SystemeとSiFive:
安全でセキュアな自動車および産業用アプリケーション向け
RISC-Vエコシステムを共に強化
htc_novelic.jpg NOVELIC社
ACAM 車内監視ソリューションに
HighTec 開発プラットフォームを採用
pressimage_hightec_embedded-ai.jpg AI 、モデルベース設計をサポートする
Rust、C/C++ 開発プラットフォーム
hightec-pr-image_renesas.jpg LLVMベースのRustおよびC/C++ツールチェーンで
ルネサスRH850/U2x の車載ソフトウェア開発を推進
arm_pr.jpg Rust、C/C++ Arm開発プラットフォーム
v10.0.0 リリース
安全性とセキュリティに重点を置いた
車載ソフトウェア開発を加速
intellias_pr.jpg HighTec と Intellias
AUTOSAR Classic アプリケーションにおける
ハイブリッド C/C++ と Rust の統合を披露
hightec-pr-soafee_v3.jpg HighTec EDV-Systeme が SOAFEE に加盟
安全でセキュアなソフトウェア定義車両を加速
2126-1535-max.jpg HighTec EDV-SystemeとQuintaurisが提携
自動車向けRISC-Vエコシステムの進化に貢献
hightec-pr-certification_v2.jpg HighTecの最新C/C++コンパイラ
Infineon AURIX™ で
ISO 26262 ASIL D認証を取得
hightec_risc-v_infineon.jpg HighTec 車載グレードコンパイラを搭載した
Infineon 車載 RISC-V 仮想プロトタイプをリリース

 

HighTec社 Compiler:欧州車載品質

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)をサポート
  • ビルド時間の短縮、コード密度の高さ、実行速度の速さ
Cコンパイラは、GTM/MCS v3.xおよびv4.xのコアレベルと、以下のような派生バージョンをサポート
  • インフィニオン AURIX 2G - TC3xxシリーズ
  • STマイクロエレクトロニクス Stellar、SPC58NE84E7、SPC58NE84C3
  • NXP S32シリーズ、MPC5777M、MPC58xx
  • ルネサス RH850/P1H-C、RH850/P1M-C
  • およびv4.x GTMコアレベルを搭載した今後のバリアント
アセンブラは、GTM/MCS(バージョン1以降)のすべてのコアレベルをサポート
HighTec社のAURIX、Power Architecture、ARM向けC/C++コンパイラには、GTM/MCSアセンブラが同梱されています。GTM/MCS向けCコンパイラは、オプションでスタンドアロンソリューションとしても利用可能です。 
  • 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は、お客様がライフサイクルをコントロールできるように固定バージョンのコンパイラブランチを提供しています。 Frozen Branch Maintenanceを使用すると、コンパイラの変更がコードに及ぼす影響を最小限に抑えることができます。これにより、顧客は、どのアップデートやカスタマイズされたバグ修正を取り入れるかなど、新しいQAサイクルの実行時期を決定することができます。

リーフレット

ライセンスモデル

HighTecの製品ではライセンス管理にRLM(Reprise License Manager)を使用しています。ライセンスの形態にはノードロック・フローティングキャッシュ・ローミングの3種類があります。
 

 

HighTec Content ManagerからHighTec社のクラウドにアクセスして、多彩なサンプルプロジェクトを入手できます。これらにはアプリケーションノートも付属し、マルチコア、GTM / MCS、MCALなどの情報も得られます。この HighTec Content Manager は評価版にも含まれます。
 

 

特定のソースファイルをHighTec Eclipse IDEでのビルドから除外することが、素早く簡単にできることをご存知ですか?プロジェクトエクスプローラウィンドウで対象とする「*.c」ファイルを右クリックし、メニューからResource Configurations > Exclude from Build... と選択するだけです。同じモジュールで異なるバージョンを試したりコードを変更する場合など、モジュールをビルドから素早く除外する必要があるとき、この機能は最高です。

HighTec Eclipse IDEでは、プロジェクトのビルドターゲットを複数設定できることをご存知ですか?これによって、単一のプロジェクトで(例えば、デバッグとリリース用、FLASHやRAMのコードの実行用というように)コンパイラの設定を簡単に切り替えることができます。
ビルドから除外されたリソース(前のヒント参照)は、現在選択されているビルドターゲットにも反映されます。このように、別のコードモジュール(ソース)とツールチェーンの別のオプションを使用して、プロジェクトのビルドのバリアントを簡単に設定できます。
新しいビルドコンフィグレーションを作成するには、以下のスクリーンショットに示すようにツールバーのActive Build Configurationアイコンを左クリックします。また、アクティブなビルドコンフィグレーションを選択するには、このアイコンの横の小さな矢印を左クリックし、ドロップダウンメニューから必要とするターゲットを選択します。
 

HighTecのツールには最適化のクラスがいくつかあり、速度向上を重視するもの、より良いメモリフットプリントを目指すものというように、それぞれが異なった最適化のターゲットを提供します。例えば、コードサイズの最適化によってターゲットのハードウェアアーキテクチャ基づいてデータやコードの局所性が向上し、より良いパフォーマンスを与えるということが起こるので、この最適化のクラスは、ツール内で設定でき、適用のためのガイドとなることを意図しています。最高の結果を得るため、アプリケーションに合わせてさまざまな最適化戦略を試してみることをお勧めします。

不均一なメモリ階層を持つ現在のハードウェアアーキテクチャにおいては、コードとデータの局所性が重要になります。コードとデータの配置で鍵となる役割を果たすのは、コードおよびデータをまとめてメモリ領域にマッピングするリンカファイルです。
より良いパフォーマンスを得るには以下のような戦略があります。
 

  • 頻繁に実行されるルーチンを局所的なコード用スクラッチパッドRAM(CSPR)メモリに置く
  • 割込みルーチンをCSPR領域に置く
  • スタック領域を局所的なデータ用スクラッチパッドRAM(DSPR)メモリに置く
  • 演算要求の高いデータをDSPR領域に置く

 
これらはすべて、ツールチェーンをインストールしたときに得られるToolchain User Manualに記載されています。

コンパイルとビルドの設定すべてをワンストップで行うことができます。以下のスクリーンショットのようにツールチェーン設定アイコン(Active Project Properties)を左クリックするだけです。
 

 

商用版のツールチェーンではXML形式でMemoryMapファイルを生成する機能があり、他ツールとの統合が容易になります。

HighTec Compiler Qualification Kit (QKIT)によって、セーフティクリティカルアプリケーションのツールチェーン認定に要する時間を大幅に削減できます。
ISO 26262、IEC 61508、EN50128いずれにおいても、QKITは認定プロセス全体およびドキュメント生成を自動化することで、御社のリソースと時間を節約します。詳細は、こちらをご覧ください。

複数のバージョンやアーキテクチャは、Toolchain Manager で管理することができます。例えば、新しいバージョンをインストールした後に、IDEのメニューから Utilities → License & Toolchain Preferences → Toolchain Manager で開く画面から、Addボタンで追加します。詳しくは、Toolchain manager の資料を参照してください。
 

フリーエントリーツールチェインから商用版への移行は簡単にできることをご存知ですか?
以下の手順になります。
 

  • 新しいツールチェーンを今あるIDEに追加します(上記参照)
  • プロジェクトの設定でツールチェーンを変更します
  • プロジェクトを再ビルドします

日本語版チュートリアル

コンパイラとデバッガ入門

HighTec 社統合開発環境を用いてプロジェクトをコンパイル・リンクして実行形式ファイルを生成することと、ローターバッハ社TRACE32 の最も重要なデバッグ機能やデバッガの使用に役立つ多くのヒントとコツを紹介します。

 

単体テストツールとコンパイラ/デバッガの連携

国際スタンダード認証に最も実績のあるLDRA 社テストツールは、あらゆるターゲット環境をサポートします。これについて、HighTec 社 コンパイラとローターバッハ社デバッガを用いて紹介します。 動画デモ、スライド資料も公開中