green hills compiler - adac:アドバンスド・デー...

8
Green Hills Compiler Integrated Development Environment Green Hills Software

Upload: phamkhanh

Post on 29-Apr-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Green Hills Compiler - ADaC:アドバンスド・デー …‚¹タンダードモードは、通常のC/C++よりも厳格 なコーディング基準を強制するコンパイラ警告とエラー

Green Hills Compiler

Integrated Development Environment

G r e e n H i l l s S o f t w a r e

Page 2: Green Hills Compiler - ADaC:アドバンスド・デー …‚¹タンダードモードは、通常のC/C++よりも厳格 なコーディング基準を強制するコンパイラ警告とエラー

GHSの開発・デバッグツールを導入することで、バグを素早く

発見修正し、優れた製品をより早くリリースできるようになり

ます。

31302928272625242322212019181716151413121110987654321SatFriThuWedTueMonSun

バグを素早く修正

GHSの革新的なデバッガの各機能は、今までのツー

ルでは悩んでしまう問題を素早く解決するために作ら

れています。タスク間でのデータ破損、リアルタイム

要求の未達成、外部ハードウェアイベントなどの問題

では、追跡して原因を突止めるまでに数週間、数ヶ月

かかってしまうこともよくあります。GHSの動的実

行解析ツールTimeMachineTMツールスイートなら、

このような問題も数時間、または数分で解決できま

す。あるお客様は、以前は解決に2人月かかっていた

バグが、TimeMachineを使うことで、わずか2時間で

解決してしまいました。

TimeMachineは自動でプログラム実行データをキャ

プチャし、MULTIデバッガインタフェースを革新的

な再生デバッグ機能にリンクさせます。デバッグに

TimeMachineを使用すれば、コードを前後にステッ

プ、実行、デバッグしながら、問題の根本原因をピン

ポイントで突止めることができます。

TimeMachineでキャプチャしたポイントでは、次の

作業が可能です。

▲ ソースレベルでタスクのインタラクションを

デバッグ

▲ 強力な実行・データブレークポイント機能で

データポイントを特定

▲ RTOSのデータ構造を解析

▲ 仮想メモリアプリケーションをデバッグ

TimeMachineツールスイートの非常に重要な部分で

あるPathAnalyzerTMには、アプリケーションのコー

ルスタックを時間と共に表示する機能があります。

業界を主導

Green Hills Software社(GHS)は数十年もの間、常

に業界に先駆けてデバッグの生産性を飛躍的に高める

ソリューションを発表してきました。このことは、お

客様にとって次の2つの価値があります。

1. 信頼性の優れた製品。バグの検出が早いほど、修

正できるバグも多くなります。

2. 開発コストの削減。デバッグの時間を節約できれ

ば、市場投入までの期間を短縮すると同時に優れ

た製品を開発できます。

GHSのツールには、次のようなメリットがあります。

▲ バグを素早く修正

GHSのMULTI®デバッガはC/C++デバッガとして

最高の商用ツールです。

▲ バグを自動検出

静的解析とランタイム・エラーチェックで、通常

では発見しにくいバグを自動検出します。

▲ 複雑なシステムの理解

システム全体の総括的な全体図から、レジスタや

機械語命令の各ビットというミクロレベルまで、

伸縮自在の表示機能を搭載しています。

▲ 新たな問題発生の防止

クリーンなコーディング規約を導入することで、

コードが複雑になりすぎてバグが混入してしまう

のを防ぎます。

▲ 多くの設計時間を確保

ビルドの設定がシンプルで、シームレスに統合さ

れたツールなので、開発に多くの時間を注ぎ込め

るようになります。

開発コストの削減、全体の信頼性を向上市場投入までの期間を短縮しながら優れた製品を開発すること。不可能と考えていませんか?Green Hills Softwareのツールを使用すれば、不可能ではありません。

2

MULTIGreen Hills Software 統合開発環境

Page 3: Green Hills Compiler - ADaC:アドバンスド・デー …‚¹タンダードモードは、通常のC/C++よりも厳格 なコーディング基準を強制するコンパイラ警告とエラー

ランタイム・エラーチェックはDoubleCheckの補完

機能で、静的解析だけでは特定できないバグを検出し

ます。特に悪質なバグというのは、長期間経過した後

の故障で初めて姿を現すものです。ランタイム・エラー

チェックは、問題が発生したときにその原因を警告で

知らせます。バグも直接見れば、修正するのは簡単な

ことです。

ランタイム・エラーチェックで特定できる問題は、ポ

インタ経由の不正なメモリアクセスや、範囲外の値の

代入、switch文で未処理のケース、ゼロ除算などです。

複雑なシステムの理解

複雑なシステムのデバッグも、システムのステータス

を知るのに必要な情報がすぐ手に入れば、ずっと簡単

な作業になります。GHSのツールは重要なシステム情

報を直感的な方法で表示することで、問題をより早期

に発見できます。

▲ OSAエクスプローラはカーネルのオブジェクト、

タスク、リソースの状態を網羅的に表示します。

▲ デバッガは完成したアプリケーションを完全に

デバッグができるツールで、スタックの詳細分析、

オブジェクト閲覧、メモリやレジスタの表示など

が可能です。

▲ EventAnalyzerTMは、システムイベントの時間を

マイクロ秒間隔で表示します。

これを活用すれば、コードが期待される経路をどこか

ら逸れていくのかをすぐに見極めたり、異常なバグを

追跡して予期しない割込みなどの原因を素早く突止め

たりすることができます。高抽象度の実行フローを解

析したり、個々の関数呼出しのレベルにフォーカスし

たりすることが可能です。

あるお客様は、PathAnalyzerを数秒間使っただけ

で、3ヶ月間苦しめられていた、ごく稀にターゲット

をハングさせるバグを発見しました。問題は、割込み

が時折起動コードのクリティカルセクションを直撃し

ていたことでした。稀にしか発生しないので、通常の

デ バ ッ グ 手 法 で は 見 つ か り ま せ ん で し た が 、

PathAnalyzerにより、簡単に発見できました。

バグを自動検出

G H S の 静 的 ソ ー ス コ ー ド 解 析 ツ ー ル で あ る

DoubleCheckTMは、プログラムの実行前でもプログ

ラミングエラーを特定できるツールで、時間と費用の

節約に役立ちます。DoubleCheckは、最適化コンパ

イラであるGreen Hills Compilerの一部のため、個別

にセットアップする必要もありません。オプションを

設定するだけで、DoubleCheckがコンパイルのたび

に ソ ー ス コ ー ド を チ ェ ッ ク し ま す 。 さ ら に 、

DoubleCheckは従来の静的解析ツールよりも高速な

ので、開発者はいつでも使うことができます。

DoubleCheckは従来のコードレビューよりも信頼性

が高く、通常のシステムテストでは決して出現しない

ようなバグも検出できます。あるお客様は、「コード

ベースをDoubleCheckにかけたところ、隠れていた

問題点が発見されました。1日足らずでこの問題を修

正して、100%クリーンなコンパイルができるように

なりました」と報告しています。

DoubleCheckはコードをハードウェアやシミュレータで

実行する前に問題を特定し、開発コストの削減に貢献します。

Deploy

Test

Debug

Develop

Fix bugs found afterdeployment

$$$$$$

Fix bugs thatsystem testing finds

$$$$

Fix bugs that unittesting finds

$$

Fix bugs thatDoubleCheck finds

No - cost

PathAnalyzerでは、複雑なシステム実行のフローを分かりやすく

表示できるので、バグを素早く発見できるようになります。

3

Page 4: Green Hills Compiler - ADaC:アドバンスド・デー …‚¹タンダードモードは、通常のC/C++よりも厳格 なコーディング基準を強制するコンパイラ警告とエラー

マルチコアシステムでは、デバッガのターゲットリストを使用して、

アプリケーション実行を、あるコンテキストから別のコンテキスト

へと追跡したり、さまざまなスレッド間で通信し合うのを監視した

り、複雑な相互依存関係を簡単に整理することができます。

MULTIのプロジェクトマネージャは、アプリケーションのビルド

やアップデート方法をより単純化するツールです。タブで分けら

れたブロック図やメモリレイアウトの表示など、一目でアプリケ

ーション構造が分かる仕組みが用意されています。

多くの設計時間を確保

貴重な時間を次の製品設計に回せるように、構造を単

純化しました。GHSのビルダを活用すれば、複雑な

ビルド基盤を維持する必要もなく、ビルドの設定も簡

単に変更できます。ビルダは自動でプロジェクト全体

の依存性を解析し、できる限り多くのファイルを並列

にコンパイルしてリンクし、最新のマルチコアシステ

ムを十分に活用します。

ビルダなどの高度な機能は、プロジェクト開発のオー

バーヘッドを大幅に削減できます。プロジェクトマ

ネージャ、エディタ、フラッシュプログラマ、命令

セットシミュレータなどがシームレスに統合されてい

るため、開発が後押しされ、作業効率が向上できま

す。

生産性の向上

GHSでは、毎日自分たちが開発したツールを使って

います。GHSのコンサルタントチームは豊富な専門

知識と実体験から、お客様がGHS製品の機能を最大

限活用できるようアドバイスします。お客様の要件に

合わせたツールの設定、製品の最適な使用法について

のトレーニング、使用法を点検し、さらに生産性を高

める方法の提案などをサポートします。

マルチコアシステムのデバッグ

複数の実行スレッド、マルチコア、複数のボードを備

えたプロジェクトや、これらを組合わせたプロジェク

トでは、統合されているターゲットリストでシステム

コンポーネントの階層を表示してデバッグを単純化す

ると共に、アプリケーション、アドレス空間、タスク、

スレッド同士の関係を分かりやすくできます。すべて

のコンポーネントについてステータス情報が表示され

るので、システムの状態を素早くチェックできます。

新たな問題発生の防止

クリーンなコードはエラーを混入しにくく、またテス

トや理解、修正も簡単です。こうした性質はすべてバ

グの削減や信頼性向上にとってプラスとなります。

Green Hills Compilerは、業界規格によるクリーンな

コーディング規約を適用することができます。たとえ

ばMISRA 2004コーディング規格には、安全なプログ

ラミングを実現するための100以上のルールがありま

す。こうしたルールの一部を固有の要件に合わせてカ

スタマイズして適用することも可能です。

GHSスタンダードモードは、通常のC/C++よりも厳格

なコーディング基準を強制するコンパイラ警告とエラー

を集めたものです。このモードの土台となっているの

は、長年にわたってGHSがソフトウェアを導入してき

た経験と、同じ高水準の信頼性を達成したお客様との

協力です。GHSでも、自社ツール開発の際に社内で

GHSスタンダードモードを適用しています。

4

MULTIGreen Hills Software 統合開発環境

Page 5: Green Hills Compiler - ADaC:アドバンスド・デー …‚¹タンダードモードは、通常のC/C++よりも厳格 なコーディング基準を強制するコンパイラ警告とエラー

Freescale kinetis*K70 90nm150 MHz

Freescale kinetis*K70 90nm120 MHz

Freescale kinetis+K60 90nm100 MHz

Freescale kinetis*K60 90nm100 MHz

0

.5

1.0

1.5

2.0

2.5

3.0

3.5

Core

Mar

k® S

core

s

*Running out of flash+Running out of RAM

IAR v6.30

IAR v6.10.5

Keil μVision v4.20

Green HillsCompiler 2012

R

EEMBC CoreMarkスコアの最高得点

Green Hills CompilerはEEMBCベンチマークが1999年に導入されて以来、ずっと最高得点を守っています。Freescale KinetisプロセッサのEEMBC CoreMark(CoreMark/MHz)の最近の認定スコアでは、Green Hills Compilerは2位の競合コンパイラを35.5%上回りました。

EEMBC CoreMarkはプロセッサコアの機能性をテストするためのもので、単一の数字でプロセッサコアの性能をすぐに比較できるようになっています。

大手の各半導体プロセッサメーカーは追加設定なしのコンパイラでCoreMarkを実行し、その最高得点をEEMBCに提出して認定を求めます。CoreMarkをプロセッサの動作周波数で正規化することで(CoreMark/MHz)、コンパイラの性能とプロセッサコアの性能を同時に比較できます。

生成コードの高速化・小型化

優れたコンパイラは、プログラムのパフォーマンスを

最大限に発揮するのに不可欠です。GHSの最適化コン

パイラであるGreen Hills Compilerは、業界でも屈指

のものです。EEMBCベンチマーク(組込み業界で最

も認められているベンチマーク)では、Green Hills Compilerが常に競合他社のコンパイラ性能を上回っ

ており、32ビット・64ビットプロセッサ用では、最

高速かつ最小サイズのコードを生成しています。

Green Hills Compilerは、何百もの最先端のコンパイ

ラ最適化を使用して、プログラムの実行速度を大きく

向上させ、サイズを削減しています。たとえば、高度

なプログラム全体の最適化は、関数呼出しの境界を超

えて、Green Hills Compilerがソース全体を処理でき

るようにします。その結果、コンパイラは不要なコー

ドや変数の削除、モジュールをまたいでのインライン

化、プロシージャ間のエイリアスを、より詳細に解析

することができるようになります。

Green Hills Compilerは、デフォルトの最適化と設定

も優れた基準となっていますが、アプリケーションに

はそれぞれ独自性があることも理解しています。さま

ざまな最適化を組合わせ、最適化をプロジェクト単位、

ファイル単位、関数単位、さらにはソース行単位で適

用することで、コンパイラの出力を細かく調節できま

す。柔軟性の高いGreen Hills Compilerの設定を精密

に調整すると、プロジェクトに関係なく最高のパフォー

マンス結果を生成できます。ほとんどのプログラムで、

Green Hills CompilerはGNUコンパイラよりも20%高速なコードを生成します。

パフォーマンスのボトルネックを正確に突止める

性能を最大化させるための第2の要素は最高のパフォー

マンス解析ツールです。GHSの優れたPathAnalyzer、プロファイラ、EventAnalyzerをうまく活用すれば、

コード性能のネックになっている部分を簡単に特定し

て排除できます。そのため、より高速ですっきりした

アプリケーションが開発できます。

最高性能を求めるなら、時間が最も重視すべき要素と

なります。これはまた、ほとんどのプロファイリング

ツールが投出しがちな要素でもあります。革新的な

PathAnalyzerは、プログラム内部で実行される各関数

を時系列で分かりやすく表示して、プログラムフローの

パターン特定や、時間がかかっている場所の見極めが簡

単にできるようにします。PathAnalyzerは単にプログ

ラム実行の痕跡を表示するだけでなく、その全体像を

表示します。

パフォーマンスの最大化高性能が目標であれば、GHSがその達成法を伝授します。できる限りの最高性能を達成するには、重要な要素が3つあります。1) 最適なコンパイラ、2) 最高性能の解析ツール、3) エキスパートのアドバイスです。私達は3つすべてをご用意しています。是非ご用命ください。

5

Page 6: Green Hills Compiler - ADaC:アドバンスド・デー …‚¹タンダードモードは、通常のC/C++よりも厳格 なコーディング基準を強制するコンパイラ警告とエラー

30年にわたって、ツールの開発と使用を通じてお客様の問題を

解決してきた経験から、熟練のエキスパートがあなたのアプリ

ケーション性能と信頼性を最大限高めるお手伝いをします。

EventAnalyzerは、INTEGRITY RTOSイベントの時間と頻度を表示

するので、最適化作業をどこに集中すべきか簡単に判断できます。

プロファイラは、実行時間の最も大きな割合を占めるコード部分を

正確に示すことで、最適化が集中すべき場所を把握できます。

エキスパートのアドバイスによるメリット

最大性能を達成する第3の鍵は、最適化コンパイラを

使いこなす方法と、プログラムを微調整するためのパ

フォーマンス解析ツールについて、よく理解すること

です。

可能な限り最高のパフォーマンスを達成したいのであ

れば、GHSのパフォーマンスチューニングのエキス

パートにお問合わせください。この30年間、GHSは

豊富な知識と最高級のツールを活用することで、公表

されるプログラム速度のベンチマークで競合を上回っ

てきました。

GHSが内部で使っている同じ技法で、お客様のアプ

リケーションを高速化できます。総合的な知識に基づ

き、プログラムの部分ごとにコンパイラ最適化オプ

ションを設定していきます。最近では、GHSの熟練

のエキスパートチームがFreescale社と協力して、ベ

ンチマーク結果の新記録を達成することに成功しまし

た。Green Hills CompilerとGHSエキスパートチーム

のアドバイスから、Freesca le社は2位の競合より

32%以上高速なベンチマークスコアを獲得しました。

GHSのパフォーマンスチューニングサービスは商品

ではなく、カスタムサービスです。お客様のアプリ

ケーションを調査し、それに基づいてコンパイラ最適

化オプションを特別に作成します。そして組込みシス

テムに関するGHSの専門知識を活用してプログラム

を高速化します。GHSのサービスで、お客様のアプ

リケーション性能が300%以上アップすることも珍し

くありません。

MULTIのパワフルなプロファイラは、プログラムの挙

動を最も詳細に解析できるツールです。プロファイラ

はタスク、関数、ソース行、アセンブリ言語の命令ご

とに、プロセッサ時間の消費量を判定できます。この

情報を元に、トータル実行時間の中で無用に大きな割

合を占める部分のコードを改善すれば、ソフトウェア

のパフォーマンスを大きく改善することができます。

EventAnalyzerは、INTEGRITY® RTOSイベントの時

間と頻度を表示します。それを元に、最も時間がかかっ

ている処理がどこで、どこに最適化を集中すればよい

かを素早く判断できます。EventAnalyzerを活用すれ

ば、高レベルな性能の問題、たとえば不適切なタスク

優先順位、過剰な割込みレベル処理、オペレーティン

グシステムへのコールの過多、予期しないタスクのコ

ンテキストスイッチなどに取組みやすくなります。

6

MULTIGreen Hills Software 統合開発環境

Page 7: Green Hills Compiler - ADaC:アドバンスド・デー …‚¹タンダードモードは、通常のC/C++よりも厳格 なコーディング基準を強制するコンパイラ警告とエラー

MULTIのMemory Allocationsツールでは、ランタイムでも

メモリリークを一掃できます。

プロセッサコストの削減

性能要件の増加分を達成するために、必ずしも前回よ

り高速なプロセッサが必要というわけではありません。

GHSの優れたコンパイラ最適化機能を調整すれば、

どんなチップを採用するにしてもその最高性能を引出

すことができます。さらに、GHSのPathAnalyzer、プロファイラ、EventAnalyzerといった性能解析ツー

ルを導入すれば、プログラムを俯瞰的に見てどこで時

間がかかっているかを把握することができ、最適化を

集中させて、アプリケーションを高速化できるように

なります。同じリアルタイム要件を実現するのに、安

いプロセッサを使えれば、いくら節約できるでしょう

か?または、新製品をリリースするのに、最新型の

ハードウェアのプラットフォームを用意する必要がな

くなればどうでしょうか?

アプリケーションの性能を改善すれば、プロセッサ自

体にかける費用を節約できるだけでなく、クロック速

度の低い安価なプロセッサで、消費電力と発熱を抑え

ることで、バッテリーが長持ちし、製品はより良く低

価格なものとなります。

メモリコストの削減

Green Hills Compilerの最適化で実行ファイルサイズ

を小型化すれば、メモリコストも削減できます。ほと

んどのプログラムで、GNUコンパイラよりも10%以

上改善します。さらに、DoubleCheckでコンパイル

時にメモリリークを検出できる上、MULTIのMemory Allocationsツールでランタイムでも動的にメモリリー

クを探し出します。

最大のコスト削減を達成

GHSのコスト削減エキスパートチームが、機能はそ

のままでメモリやプロセッサの要件を下げる手助けを

します。GHSのチームは、お客様のアプリケーショ

ンのメモリ使用量を30%以上削減し、パフォーマンス

を300%以上改善させた実績があります。

MULTIのサポート

GHSは常時新しいプロセッサとオペレーティング

システムのサポートを追加しています。詳しくは

お問合わせください。

ターゲットプロセッサ

▲ Powerアーキテクチャ ▲ XScale ▲ SH

▲ ARM/Thumb ▲ V800 ▲ SPARC

▲ 68K/ColdFire ▲ Blackfin ▲ ARC

▲ MIPS ▲ DaVinci ▲ FR

▲ Intelアーキテクチャ ▲ TriCore ▲ OMAP

開発ホスト

▲ Windows ▲ Solaris ▲ Linux

オペレーティングシステム

▲ INTEGRITY ▲ Linux ▲ OSE

▲ μ-velOSity ▲ ThreadX ▲ 独自OS

▲ Windows ▲ VxWorks ▲ ベアボード

▲ Solaris

サードパーティとの統合

▲ Eclipse ▲ Subversion

▲ Rhapsody ▲ ClearCase

▲ Emacs ▲ CVS

▲ vi ▲ SourceSafe

▲ DWARFやStabsデバッグ情報を生成する

コンパイラ

開発言語

▲ C ▲ EC++

▲ C++ ▲ Ada(AdaMULTI)

開発コストの削減大量生産においては、単価を数円下げるだけでも全体的なコスト削減額は莫大なものになります。GHSのツールでメモリとプロセッサの要件を大きく引下げ、最終的な収支を大きく改善しましょう。

7

Page 8: Green Hills Compiler - ADaC:アドバンスド・デー …‚¹タンダードモードは、通常のC/C++よりも厳格 なコーディング基準を強制するコンパイラ警告とエラー

Rev. G220231H

本社 〒101-0045 東京都千代田区神田鍛冶町3-4 oak神田鍛冶町 TEL:03 (3251) 3170 FAX:03 (3251) 3167名古屋 〒460-0003 愛知県名古屋市中区錦1-11-11 名古屋インターシティ テクニカルセンター TEL:052 (231) 9980 FAX:052 (231) 0035大阪 〒530-0003 大阪府大阪市北区堂島1-6-20 堂島アバンザ テクニカルセンター TEL:06 (6347) 7780 FAX:06 (6347) 7712URL : www.adac.co.jp E-mail : [email protected] Hills Software, Green Hills ロゴ、および INTEGRITY, INTEGRITY-178B, MULTI, CodeBalance, CodeFactor, GateD は、米国、およびその他の国における Green Hills Software, LLC の登録商標です。

また、AdaMULTI, DoubleCheck, EventAnalyzer, G-Cover, GHNet, GMART, Green Hills Probe, GSTART, Integrate, Multivisor, PathAnalyzer, ResourceAnalyzer, Secure Virtualization, SuperTrace Probe, TimeMachine, μ-velOSity は、米国、およびその他の国における Green Hills Software, LLC の商標です。

文中のその他の名称は、当該各社の商標、登録商標、またはサービスマークです。

Copyright © 2019 Advanced Data Controls Corp. & Green Hills Software, LLC All rights reserved.