HighTec Rust 開発プラットフォーム
AURIX™ TC3xとTC4xマイクロコントローラ用に設計された斬新なHighTec Rustコンパイラは、先進のオープンソースLLVMテクノロジーを活用して、安全、セキュア、高性能で、かつ迅速にデプロイ可能な要件をもったアプリケーションに向けて、メモリ安全性や並行性、相互運用性といったRust言語の機能すべてを提供します。
HighTec Rustコンパイラは、HighTec社がAURIX™用に提供している確立したC/C++コンパイラツールと連携する最適化されたバックエンドを提供します。このコンパイラは、高速のビルドシステム、高度なコード最適化、そしてAURIX™マイクロコントローラのアーキテクチャに特化した機能を特徴としています。
所有権と借用システムにより、nullポインタやバッファオーバーフローなどのメモリ関連の脆弱性をコンパイル時に防止します。これによってRustアプリケーションは安全でセキュアになります
Rust はスレッドとasync/awaitをサポートしており、ソフトウェア開発者は AURIX™マイクロコントローラのような現代的なマルチコアプロセッサを活用した並行プログラムを書くことができ、パフォーマンスとレスポンスが向上します
強い型システムは、よくあるプログラミングエラーの多くを防ぎ、プログラムの正しさを向上させます
開発者は、パフォーマンスを犠牲にすることなく、効率的な低レベルのマシンコードにコンパイルできる高レベルのコードを記述できます。このため、Rustはパフォーマンスが重要なアプリケーションに適しています
Rustは既存のC/C++アプリケーションに適合させることができます。これにより、開発者はアプリケーション全体を再設計することなく、Rustのメモリ安全性とパフォーマンスの機能を最大限に活用できます
Cargoと呼ばれるシステムで、Rustプロジェクトのビルド、テスト、パッケージングのプロセスを簡素化します
エコシステム
AURIX™ マイクロコントローラを使用する多様なアプリケーションに対して、Rustのモダンで安全な言語機能を提供することで、Rust開発プラットフォームは、堅牢なエコシステムをもたらします。この包括的なエコシステムには、次のものが含まれます。
- Cargoビルドシステムとパッケージ管理
- Rustライブラリ
- ハードウェア抽象化、BSP
- 例題 (周辺装置ドライバの使用法など)
- ドキュメント、入門資料
- Windows と Linux のサポート
- VS Code IDEのサポート
- 3rdパーティデバッガのサポート(Lauterbach)
相互運用性
Rustは、どの層においても、その機能を既存のC/C++ システムにシームレスに統合する便利な方法を提供します。図は、Rustがアプリケーション層だけでなく、ハードウェア初期化や周辺装置アクセスクレート (PAC:Peripheral Access Crate) 層にも統合される、多くの統合の可能性の1つを示すものです。
Rust 開発プラットフォームには、Rust ハードウェア初期化 (HW Init)、周辺装置アクセスクレート(PAC)、ハードウェア抽象化レイヤ (HAL:Hardware Abstraction Layer)、およびボードサポートパッケージ(BSP:Board Support Package)が含まれており、Rust アプリケーションを構築し、既存のC/C++プロジェクトにRustを統合するための包括的なフレームワークを提供します。
メモリ管理
Rustは、高度なメモリ管理機能をもつモダンなプログラミング言語です。メモリの割り当てと解放がコンパイル時に行われるため、最適なパフォーマンスと、安全性、セキュリティが得られます。Rustの所有権モデルは、各値を変数に割り当て、変数がスコープ外になったときにその割り当てを解除することで、適切なメモリ管理を保証します。
Rustに特有の借用システムにより、ある値の所有権を別の変数や関数に一時的に貸すことができます。これによって異なるスレッド間で効率的かつ安全にメモリを共有することで、データ競合やメモリ関連の脆弱性のリスクが完全に排除できます。 HighTec Rust開発プラットフォームを使用することで、AURIX™ マイクロコントローラ上でシームレスに動作する堅牢で安全かつセキュアなアプリケーションを開発することができます。
Rustソースコードのビルドフロー
典型的なRustベースのプロジェクトには4つの主要な層があり、ハードウェア初期化 (HW Init)、 PAC、BSP を使用した HAL、アプリケーションです。これらの層は、AURIX™ マイクロコントローラ用のHighTec Rust 開発プラットフォームを使用して、構文解析、構文と型のチェック、借用チェック、LLVM clangドライバを使用したコード最適化、ライブラリとリンカスクリプトによるリンクという逐次のプロセスでコンパイルされ、実行可能ファイルが作成されます。これにより、AURIX™ アーキテクチャに最適化された安全でセキュアな実行可能ファイルが保証されます。
HighTec Rust 開発プラットフォーム
HighTec Rustコンパイラは、AURIX™ マイクロコントローラに特化して設計・最適化されており、コンパイル時にメモリ関連の脆弱性を排除することで、特にメモリ安全性で優位点があり、自動車や産業用アプリケーションでの高レベルの安全性、セキュリティ、パフォーマンスに対する要求を満たすのに役立ちます。さらに、Rust固有の優れた機能で、コストのかかるエラーや潜在的な安全上の問題のリスクを最小限に抑えながら高信頼で堅牢なシステムを促進し、ビジネスにプラスの影響を与えます。