ウインドリバー 組込みとモバイルソフトウェアの世界的なリーダー
人気ブログご紹介
ブックマーク/共有
ホーム : ウインドリバースクエア : 人気ブログご紹介 : Simics上でのLDRAツールによるコードカバレッジ取得

人気ブログご紹介  US本社で人気の高い記事をピックアップしてご紹介します。

Simics上でのLDRAツールによるコードカバレッジ取得

投稿者:Jakob Engblom, 2012/4/20

Simicsのようなシステム開発ツールが全く単独で利用されることはあまりありません。Simicsを取り入れる企業や開発チームは通常、既に多種類のツールを利用しており、それらをSimicsと併用することを想定しています。また、Simics単独で、あらゆる人のあらゆる問題を解決することを期待するのは、合理的ではありません。むしろ、Simicsを外部ツールと接続し、統合型ソリューションを提供することが必要なのです。

今回のブログでは、LDRAのJay Thomas(ジェイ・トーマス)と共に、この種のツール統合の具体的事例を検討します。特に、大半のハードウェア・プラットフォーム上でより効率的に、安全の鍵を握るソフトウェアのコード分析を行うための、LDRAによるコードカバレッジ及び認証ツールとSimicsの併用方法を検討します。

ヤコブ・エングブロム(JE):基本中の基本から始めましょう。まず、自己紹介から。

ジェイ・トーマス(JT):私の名前はジェイ・トーマスです。LDRAの組込み対象統合リーダーです。多数のシミュレーション環境を含む多種多様な組込み対象とLDRAをインターフェースするのが私の仕事です。というわけで、私は、お客様が組込み対象と通信しやすくなるようなツールを常に探しています。それにより、自分の仕事もやりやすくなりますからね。

JE:LDRAはどういう会社ですか?

JT:LDRAは、認証サポートツール一式を提供しています。これらのツールは、まず要求事項をソースコードと照らし合わせ、次にテストケースと照らし合わせ、テストケースを対象に対して実行し、結果を出します。この結果は、認証済みソフトウェア開発プロセスにおけるソフトウェアのレベル認定に使えます。例えばDO178B/C、ISO 62304、IEC61508などに使用できます。

JE:コードカバレッジ分析は、認証済みシステムの開発者にとって、どのくらい重要ですか?

JT:コードカバレッジは、複数の理由により非常に重要です。第一に、大半の安全基準は一定のカバレッジを明確に要求しています。第二に、カバレッジは、コードがすべてのケースで意図された動作をすることを保証するために不可欠です。最後に、これらの要素−即ち、安全性と、コードの意図された動作を、規格要求適合をトレースできる形で証明すること−を繋ぎ合わせると、結果として得られるインフラストラクチャは、製品の信頼性と安全性を大幅に向上することが示されています。これは特に、故障が人命に関わるような製品について言えます。

JE:Simicsでこれまでに行ったことを説明してください。

JT:御社の力を借りて、LDRAとSimicsを接続するインターフェース・レイヤを追加しました。これにより、ユーザは、認定されるカバレッジをSimicsシミュレーション環境から得られ、また、ユニットテスト実行のためにSimicsをコントロールできます。これにより、お客様は、生産性を下げる要因となりやすいプログラミングやデータ抽出の遅延を経験することなく、シミュレーションされたハードウェア上でユニットテストをシームレスに実行できます。

JE:では、私の方から、そのSimics側の説明をしましょう。

Simicsでは、対象の仮想ハードウェア設定に、小型の追跡デバイスを追加します。この追跡デバイスは、対象のメモリーマップに1バイトのロケーションをマッピングし、このロケーションに書き込まれる総てのバイトが、ホスト上のファイルに送信されます。Simicsのラン実行後、LDRAツールがこのファイルを読み、結果を処理します。

LDRAツールが挿入する対象ソフトウェアの計測部分が、対象ソフトウェアのプログラム実行時に、追跡デバイスに書き込みします。追跡デバイスを、シリアルポートやイーサネットのようなより一般的な通信チャンネルの代わりに使用するわけです。追跡デバイスのドライバは最小限のもので、対象のソフトウェア・スタック内で必要とされるソフトウェアサポートはごく僅かになります。これはSimicsの対象ソフトウェアに簡単に追加でき、標準的なRAM上にマッピングすることさえできるので、ソフトウェアが何らかの特権的メモリーエリアにアクセスする必要もありません。

JT:つまり、お客様は、データを取るためにOSまたはアプリケーションレイヤ上にフックを追加することを考えなくてもよいということです。シミュレーションのハードウェア・レイヤにSimicsがこのサポートを追加するので、実ハードウェアを使用する場合よりも、実行が簡単かつ高速になります。

JE:ありがとうございます。ハードウェアからデータを取るのがそんなに難しいとは、今まで知りませんでした。

JT:これは、非常にばらつきがある点です。例えば、JTAGプログラマを持っている場合は、それほど難しくありませんが、それでも、プログラマがROMのフラッシュと実行を完了するまで待たなければなりません。これには数分かかる場合があります。他の例では、例えば、シリアルポートでロードするインターフェースしかない場合、もっと時間がかかります。対象の環境が開発領域からテスト領域に移るときには、しばしば、多くの外部インターフェースを外します。ですから、適切なインターフェースがないと、非常に困難になります。そして、認証環境では、IOリソースが限られる状況がごく当たり前なのです。

というわけで、対象に何らかのIOの限界がある場合、Simicsがテストケース実行環境の代役を果たせるのです。特に対象のFLASHをプログラムするのに時間がかかり、かつ、IOに限界がある場合、Simicsをシステムテストとユニットテストの両方のテスト実行プロセスを高速化するためのドロップイン・コンポーネントとして使用できます。つまり、Simicsは、お客様が認証手続きを迅速に完了し、製品の市場投入を早める支援をするのです。

JE:では、LDRAのTBrunツールのユーザには、このコネクションは実際どのように活躍するのですか?

JT:実際には、ユーザは「ドライバを実行する」を選択します。すると、通常どおりにコンパイラを自動的に呼び出しますので、JTAGプログラマやその他のデバイスをコントロールする代わりに、LDRA TestbedとTBrunがSimicsを実行し、ユニットテストからシステムテストまで、各種のテストケースを走らせます。実行が完了したら、Simicsは終了し、テスト結果をLDRA TestbedとTBrunが待っているホストのファイルシステムに返送します。

下の画像は、LDRA TBrunがSimicsの仮想マシン上でシミュレーションを実行し、ダイナミックなカバレッジを取得しているところを示しています。

注:Simicsに関する詳細情報は、お客様の地域のウィンドリバー営業担当者にご連絡ください。LDRAのツールとそれらのSimicsとの統合に関しては、お客様の地域のLDRA営業担当者にお問い合せください。

原文はこちら:http://blogs.windriver.com/tools/2012/04/getting-code-coverage-with-ldra-tools-on-simics.html
本社ブログサイト:http://blogs.windriver.com/

人気ブログご紹介 »
ページの先頭へ戻る »