クロスコンパイラ / Eclipseベースの統合開発環境

HighTec社 Power Architecture 開発プラットフォーム

HighTec社 Power Architecture 開発プラットフォーム

クロスコンパイラ / Eclipseベースの統合開発環境

HighTec社 Power Architecture 開発プラットフォームUAD2のコンパイラ、デバッガは、フリースケール製 MPC57xx、MPC 551x、MPC553x、MPC555x、MPC556x、MPC560x、MPC563x、MPC564x、MPC567x、STマイクロ製 SPC560、SPC563、SPC564、SPC56ELをサポートしています。

EclipseベースのTriCore開発プラットフォーム

Power Architecture開発プラットフォームは、強力なウイザードを持ち、最新のPower Architectureファミリをサポートしています。プロジェクトの設定や、コンパイラ、アセンブラ、リンカ、さらにはハードウエアの初期化設定など、ビルドプロセス全体を管理します。マイコン種別を選択してボタンを押すだけで、スタートアップコードの生成、必要な周辺ハードウエアの初期化処理、適切なメモリ配置、SFRなどのハードウエア定義ヘッダファイルの生成を伴ったプロジェクトが作成されます。プロジェクトには簡単なmain関数が含まれており、直ぐにコード実装をスタートさせることができます。Eclipseのモデル駆動型のGUIにより、メモリレイアウトの設定、マイコン種別に対する設定確認を簡単に行うことができます。
【Power Architecture 開発プラットフォームの構成】
 ・Power Architecture向け 最適化C/C++マルチコアコンパイラ
 ・Eclipse(TM) 統合開発環境
【主な機能】
 ・プロジェクト管理
 ・セットアップウィザード
 ・バージョンコントロール
 ・グラフィカルなメモリ配置設定機能


C/C++ コンパイラスイート

Power Architecture向けGNUベースC/C++コンパイラスイートは、業界最速のビルドシステムの1つです。並列コンパイルにより、ビルド処理をスピードアップするために、同時に複数の起動を行うことができます。
Power Architectureの強力な32ビットアーキテクチャの優位性をフル活用することで、HighTecのコンパイラスイートは、柔軟性を持った先端の最適化技術と必要なハードウエア制御を実現します。コンパイラはループの最適化、インライン関数、グローバルオプティマイズなどの最適化機能を持ちます。コンパイラは標準PowerPC命令と可変長エンコード命令(VLE=variable length encoding )を生成することができます。VLE命令は、モジュールごとに指定して生成可能です。
Power Architectureのアーキテクチャは、サイズ、または実行速度に対する最適化のために、豊富なアドレッシングモードを持ち、コンパイル時にアドレス演算を省略したり、アセンブラ命令にアドレスをエンコードすることが可能です。HighTecコンパイラは、ソースコードの#pragma記述により異なるアドレシングモード使用することで、適切なメモリへのコード、データの分散やアロケーションを制御することができます。
AUTOSAR オペレーティングシステムに合わせて、ベンダーは排他的な使用のために個別のTriCoreレジスタを予約する必要があります。このために、コンパイラはいわゆるFixedレジスタ(コンパイラが通常使用しないレジスタ)を指定するためのオプションを提供しています。HighTecのコンパイラは、EABIや関連する言語仕様、ISO標準規格に完全に準拠しています。
自動車ソフトウエアは、複数のプラットフォームへのポータビリティーを要求します。HighTec コンパイラは、配置独立コード(PIC=position-independent code)、配置独立データ(PID=position-independent data)の生成をサポートしています。これは、開発やテストプロセスにおいて、自動車ECUソフト開発に有用な機能です。
【主な機能】
 ・ロバスト性に優れ、コンパクトで高速な実行コード
 ・AUTOSAR MCAL ドライバをサポート
 ・ANSI/ISO 準拠
 ・マルチコアサポート(ISO/EABI 準拠)
 ・VLE、SPE をサポート
 ・長期間に渡る安心のサポート
 ・商用の標準、マスライブラリ(非オープンソース)
 ・異なるアドレシングモード


ISO26262対応

ISO-26262によると、自動車分野でのアプリケーション開発者は、特定のバージョンのツールにより生成されたソフトウエアを再現することが要求されます。HighTec社は、固定ツールバージョンに対するバグフィックスなどのサポートを提供します。
エラー検出や予防策のために、HughTecは洗練されたバグ検出コンパイラ(bug-finding-compiler)を提供しています。これにより、シリコンのバグやコンパイラバグに対応することができます。このコンパイラは、ユーザーアプリケーションコードを検査し、アプリケーションが前述のバグの影響を受けるかどうか、また、もしも影響を受ける場合には、どのモジュールが影響を受けるかの情報を出力します。ユーザーは、影響のあるモジュールのみのビルドを行うだけで済み、アプリケーションのビルドに対する時間とコストを削減できます。
ツールの信頼性に関しては、GCCベースのコンパイラスイートは20年間に渡り、一般のアプリケーション開発に使用されています。自動車の分野では、HighTecのGCCベースのコンパイラは、Tire-1やOEMのプロジェクトにおいて10年以上の使用実績があります。長期間、広範囲に渡りワールドワイドで使用されている実績や、確立した開発やレビュープロセスによるコンパイラスイートの開発は、ソフトウエアツールの品質の高さの証明です。さらに、商用またはオープンソースのテスト環境が、ツールチエーンの品質確認に使用されています。


マルチコアサポート

HighTecのPower Architectureコンパイラは、ホモジーニアスとヘテロジーニアスのマルチコアアーキテクチャをサポートしています。
HighTecのマルチコアサポートはリンカレベルで行われ、ソースコードへの適用は必要ありません。このISO、EABI準拠のマルチコアサポートは、シングルコア向けのソースコードをマルチコアに移植する作業を容易にします。ユーザーは、リンカレベルで、実行コードとデータを適切なコアにアサインするだけです。他のコアとのデータの交換は、'hide-and-visibility' コンセプトにより行われ、リンカレベルで、コア間のユーザーが定義したインタフェース(i/o)を指定することができます。他のコアから見えるようにするためには、データとコードを明確に指定する必要があります。コア間で共有されているデータやコードは、個別の出力にリストされ、コア間のクロスリファレンスの解析に使用されます。'hide-and-visibility' 機能は、分散型のシステムの複雑さを軽減することになり、結果的に、デバッグにかかる工数を削減し、全体的なソフトウエアシステムの保守性を改善します。
一方で、各々のコア上でのアプリケーションを独立させて実行する機能もサポートされており、ユーザーが指定しない限りは、データとコードの独立性は保証されます。
HighTec HighTecのPower Architecture リンカは、ヘテロジーニアスマルチコアの場合であっても、メモリの再配置を自動的に行います。リンカは、異なるコアアーキテクチャのオブジェクトファイルを相互にリンクし、1つのELFフォーマットのオブジェクトファイルを生成することができます。
1つのコアへのデータとコードの指定は、CORE-ID プロパティのフラグとして保存されます。これらのフラグは、リンカーによってチェックされ、1つのコアので使用されるべきデータとコードが、別のコアにアサインされることを防ぎます。データとコードのアサインされたCORE-IDは、シンボル情報に統合され、容易に解析可能です。
スモールモデルのような効率的なアドレッシングモードは、コアごとに使用可能です。各コアに対応するアドレスレジスタは、スタートアップコードで初期化されなければなりません。リンカは、必要な各コアのスモールモデルでアクセス可能な領域のベースレジスタを自動的に初期化します。
このコンパイラスイートは、グローバル、またはコアにローカルな割り込みテーブルやトラップテーブルの定義をサポートしています。
1つのコアの変数は、前もってexternされていれば、他のコアの外部(extern)変数としてアクセスすることが可能です。このマルチコア機能は、Lauterbach社、isystem社、 Hitex社のデバッガでサポートされています。