統合開発環境
MULTI
Green Hills Software社(GHS)の統合開発環境MULTIは、プログラミングからデバッグまで、一連の組込みソフトウェア開発における各作業フェーズを、統一されたグラフィカルユーザインタフェース(GUI)で効率よくサポートする統合開発環境です。
統合開発環境
Green Hills Software社(GHS)の統合開発環境MULTIは、プログラミングからデバッグまで、一連の組込みソフトウェア開発における各作業フェーズを、統一されたグラフィカルユーザインタフェース(GUI)で効率よくサポートする統合開発環境です。
開発元である、米国 Green Hills Softwareは、組込み開発環境のサプライヤとしては世界一位の独立系ソフトウェアベンダです。MULTIは、航空宇宙・防衛、自動車、医療、ネットワーク、デジタル家電、工業オートメーションなど、幅広い分野において数多くの実績を持っています。
半導体技術の進歩に伴い、組込み機器に搭載されるマイクロプロセッサは年々高速化していますが、Green Hills コンパイラは、昨今の組込みソフトウェア開発において様々な分野で使われている実績があり、ツールとして機能安全認証を取得しています。
Green Hills コンパイラでは、数百種類もの最適化技術を駆使し、メモリサイズの小さいマイコンでもハードウェア性能を最大限に引出し、プログラムの性能を高めることが可能です。コンパイル時に行われる様々な最適化はもとより、複数のファイル間での関数呼出しをも対象とするプロシージャ間最適化、さらに、リンク時の最適化技術コードファクタ(CodeFactor)最適化では、サブルーチンコールやテールマージなどでコードの冗長なセグメントを削除することで、実行速度を高めると同時に、サイズを削減することが可能です。
30年にわたり、コンパイラの技術でトップを走り続けるGHSは、最適化技術をひとつひとつ綿密に調べ、何百ものベンチマークと照らし合わせてテストを実施しています。緻密な実装と最新技術のおかげで、多くのプログラムでGNUコンパイラやLLVMコンパイラと比較して20%以上速度を向上し、サイズを削減することができます。
Green Hills コンパイラは、デフォルトのオプション設定でも良好なコードを生成しますが、ソースコードにより有効な最適化もあれば、効きにくい最適化もあります。そこで、いろいろな最適化の組合せを試したり、プロジェクト単位またはファイル単位で個別に最適化を設定したりすることで、コンパイラの出力を細かく調整することができます。
最高水準の性能を達成するために、GHSでは組込みシステムの専門知識を駆使し、お客様ごとにパフォーマンスチューニングサービスを提供しています。また、アプリケーションの評価に基づいてカスタムで最適化を行うこともできます。
MULTIは、最高水準のツール安全性認証とC/C++ランタイム認証を取得しています。
この認証により、お客様には以下のような利点があります。
よくあるコーディングミスを防ぐため、Green Hills コンパイラは、C/C++言語規格オプションに加え、MISRA 2004ガイドラインなどの業界のコーディングルールや、「GHS Standard Mode」などの独自のガイドラインを適用することができます。GHS Standard Modeは、GHSが長年にわたりお客様に提供してきたコード事例や、お客様の協力に基づく信頼のおけるコードの蓄積により作られました。GHSは、自社ツールの開発にも「GHS Standard Mode」を適用しています。
Green Hills コンパイラに統合された静的ソースコード解析ツールDoubleCheckは、プログラムのビルド時にコーディングの問題を特定し、通常のテストでは見つからないバグも発見します。コンパイラとは独立して動作する従来の静的解析ツールとは違い、DoubleCheckはコンパイラに組込まれているため、以下の利点があります。
ランタイムエラーチェックは、静的コード解析だけでは発見できないバグを見つけ、DoubleCheckによる解析を補完します。特に厄介なバグは、実際に故障するまで長い間顕在化しないものですが、ランタイムエラーチェックは、問題が発生した時点でその原因を知らせます。直接見えるバグは比較的簡単にデバッグできます。
組込みソフトウェアのエンジニアは、多くの時間をデバッグとテストにとられます。OSタスク同士の競合によるメモリ破壊、リアルタイム処理の遅延、外部ハードウェア処理などの問題の原因を突き止めるのに数週間、数ヶ月かかってしまうこともあります。Green Hillsの動的実行解析ツールTimeMachineツールスイートでは、プロセッサのトレース機能を利用して、プログラムの実行データをトレースし、MULTIデバッガと連携してそのような問題を数時間、または数分で解決できます。TimeMachineを使用したデバッグでは、実行コードを1ステップずつ進めたり戻ったり、ブレークポイントをセットして順方向・逆方向に実行したりすることで、問題の原因をピンポイントで見つけることができます。
システムの状況を理解するために必要な情報が手元にあることで、複雑なシステムのデバッグはよりシンプルになります。MULTIでは、重要なシステム情報を以下のように分かりやすい方法で提供し、早期の問題発見に役立てます。
GHSは、マルチコアデバッグ向けのデバッガとJTAGプローブを最初にリリースした会社のひとつです。MULTIを使用することで、シングルコアと同様にマルチコアシステムのデバッグが可能です。
中でも重要な機能は、同期実行制御です。いずれかのコアがデバッグ条件に合った場合に、すべてのコアを一群として停止させる機能です。例えば、あるコアがブレークポイントにヒットすると、ターゲット・リストに以下の情報が明示されます。
どのコア(群)がブレークポイントにヒットしたか、その時、そのコアで、どのスレッドが実行されていたかシステム内のその他のコアは何をしていたかマルチコアのターゲットへのダウンロードは、複雑かつ面倒な作業になります。MULTIは、リアルタイムOS INTEGRITYのダウンロードを自動的に処理します。それ以外のOSやアプリケーションについては、設定ファイルでダウンロードや設定処理を自動化することができます。
従来から、組込みLinuxのデバッグには、GDBやそのフロントエンドとしてEclipseなどが使用されてきましたが、設定が面倒で使いにくく、時折信頼性に欠けることもありました。その結果、組込みLinuxの開発者は、原始的なデバッグ手段であるprintfやprintkコマンドを使用したログ出力に頼らざるを得ませんでした。しかし、残念ながら、これでは複雑なLinuxシステムのほんの一部の状況しか見ることが出来ませんでした。
MULTI for Linuxは、組込みLinuxシステムの開発に必要なデバッグ機能を、総合的に備えた製品です。Linuxカーネル、カーネルスレッド、割込みサービスルーチン、ユーザモードのスレッドやプロセスなど、組込みLinuxシステムのさまざまな側面を可視化して効率的にデバッグできます。
MULTIは、以下の32ビット/64ビットプロセッサに対応しています。