Wind River Device Managementの特長的な優位点は、実行中のエンベデッドアプリケーションを診断するためのセンサーポイントを作成する機能です。センサーポイントは、アプリケーションのソースコードの書き換え、アプリケーションの再ビルド、デバイスの再フラッシュやデバイスのリブートを行うことなく、実行中のアプリケーションを動的に診断できるソフトウェアです。
センサーポイントは、実行中のデバイスに関数を動的に書き足すことができるほか、診断対象の関数スコープ内でローカル変数やグローバル変数の値を参照したり、遠隔でのデバイスのモニタリング、コンフィギュレーション、アプリケーションの実行を管理することが可能です。センサーポイントを使用しても、デバイスパフォーマンスへの影響はほとんどなく、テスト後に無効にしたり、必要に応じて、テスト中のデバイスの診断や修復の際に有効にすることができます。開発エンジニアが作成したセンサーポイントをテスト・チームが利用し、稼働中のデバイス上のソフトウェア障害を診断したり、修復を行う際にサポートエンジニアが活用することができます。
センサーポイントの活用例
サブシステムや関数をイ効率的にテスト・実行
- 変数に特定値を代入
- 条件分岐で特定コードパスを強制実行
- エラーを挿入してルーチンを評価
- システムの環境値を変更(センサーから読み出された値の変更、CPUや周辺コントローラのレジスタ値の設定、ストリーミングデータの修正など)
問題の再現と解決を迅速化
- システムの環境値を変えて、強制的にエラーを再現
- 問題再現時のグローバル変数、ローカル変数、関数呼び出し、データのトレースを収集
- システム内の任意のポイントにタイムスタンプを設定して、タイミング欠陥の特定や性能の計測を実行
実行中のソフトウェアを動的にデバッグ
- デバッグコード(logやprintfを含む)を挿入して不具合箇所を特定
- コードを挿入して不具合の修正をテスト
- 変数、レジスタ、センサーの値の書き込み・読み出しで修正を検証
- コード変更毎のリブートやテスト向けのセットアップを行うことなく、実行中のシステムを変更可能
負荷試験
- 検証中のデバイスに対するエラー挿入
- デバイスの環境を特定の状態に強制移行(センサーによる高温測定など)
- デバイスの任意の箇所の性能を定量的に評価できるタイムスタンプのログを収集可能
- 長時間の連続動作後に到達する特定の状態にデバイスを設定(空きバッファなし、キューが空、円周率を小数点以下4千万桁まで計算など)
- 高度なテスト装置の使用を回避(データ・パケット内のホップ・カウントを極大値にする、など)