概 要
Linux用Tracealyzerは、マルチスレッドLinuxアプリケーションとシステムの開発者に、これまでにないランタイムのビジュアライゼーションを提供します。Tracealyzerは、開発効率とソフトウェア品質を大幅に向上させるデバッグ、検証、プロファイリング、トレーニング、ドキュメンテーションを容易にします。
Linux用Tracealyzerは、OpenEmbedded / YoctoとBuildrootだけでなく、多くの一般的なディストリビューションに含まれている、広く使われているLTTngトレースフレームワークを使って、カーネルトレースとユーザー空間トレースの両方を可能にします。
Linux用Tracealyzerは、LTTngトレースフレームワークを活用し、カーネルとユーザースペーストレース(UST)の両方をサポートします。LTTngはv2.6.32以降のLinuxカーネルバージョンをサポートし、v2.6.38ではカーネルパッチを必要としません。これは純粋なソフトウェアソリューションであるため、Tracealyzerを使用するために追加のハードウェアは必要ありません。
LTTngユーザー空間トレーサを使用すると、アプリケーションのどこにでもトレースポイントを挿入することができ、ライブラリのソースコードを変更せずに標準ライブラリ呼び出しを行うことさえできます。Tracealyzer for Linuxでは、サービスコールや一般的なユーザイベント、パラメータ、フォーマットなど、各トレースポイントの解釈方法を設定することができます。これについては、ユーザマニュアルで詳しく説明しています。
Tracealyzerは実験室ツールとして使用できますが、死後分析にも使用できます。一部のお客様は、リリースビルドでレコーディングを有効にしているため、分析が困難な現実の問題について非常に貴重なトレース診断が可能です。トレースレコーダLTTngは、最新のイベント履歴をRAMリングバッファに保存したり、トレースをデバイスファイルシステムに継続して保存したり、開発用コンピュータに直接ストリームしたりする「フライトレコーダ」として設定できます。
仕 様
〈タスク、ISR、RTOSコール、ユーザイベントのトレース〉
メイントレースビューには、タスクの実行タイミング、割り込み、システムコール、およびカスタムユーザーイベントを含む、記録されたすべてのイベントが垂直のタイムラインで視覚化されて表示されます。タスクと割り込みトレースは色付きの長方形で示されています。イベントはフローティングテキストラベルとして表示されます。クリック&ドラッグによる選択は非常に簡単で、測定ツールとしても機能します。タスクやイベントをクリックしてハイライト表示すると、タイミングやイベントの依存関係などの追加情報が得られます。右下隅には強力なフィルタがあり、Finderダイアログにはさらに強力なフィルタが用意されています。ズームアウトすると、このビューは自然にパターンを学習できる概要に変換されます。
〈CPU負荷〉
このビューは、合計CPU使用量、およびタスク/割り込みごとのCPU使用率を示す水平のタイムラインを表示します。 CPU Load Graphは、CPU負荷グラフのダブルクリックがクリックされた間隔でメイントレースビューをフォーカスするため、メイントレースビューをナビゲートできます。 このビューでは、他のビューとは独立してズームが許可され、個々のタスクや割り込みに焦点を当てるためのフィルタが使用できます。
〈タスクのタイミングのバリエーション〉
これは、いくつかのアクターインスタンスグラフの例であり、それぞれアクターの特定のタイミングプロパティ、つまりタスクまたは割り込みルーチンの分布を示しています。これには、実行時間、応答時間、フラグメンテーションなどが含まれます。各データポイントは、タスクまたは割り込みハンドラの特定の1つの実行を表します。このグラフ「応答時間」は、選択した2つのタスクの応答時間の変動を示しています。応答時間が長いタスクインスタンスは、リソースの競合を明らかにする可能性があります。たとえば、ビジーな間隔で複数のタスクまたは割り込みがCPU時間を争う場合などです。このビューを使用すると、最適化の問題または可能性を示すような場所を簡単に特定できます。
〈同期された複数のビュー〉
水平方向のすべてのビューは、同期されたスクロールを使用して1つの親ウィンドウに結合できます。これにより、応答時間が他のイベントにどのように依存するかなど、個々のビューを使用して見えにくいパターンを検出することができます。また、これにより、ユーザーインターフェイスのカスタマイズも可能になります。
〈コミュニケーションの流れ〉
多くのシステムコールは、タスク間の通信や同期を可能にします。Tracealyzerはこれらの依存関係を理解しており、Communication Flowグラフは有向グラフの形でトレースに含まれるすべての依存関係の要約です。これは、セマフォやメッセージキューなどの使用されるカーネルオブジェクトを含む、タスクと割り込みの間の通信依存性の概要を示します。すべてのビューと同様に、ノードをダブルクリックすると、特定のオブジェクトに関連する関連ビューが開きます。カーネルオブジェクト(セマフォなど)をダブルクリックすると、特定のカーネルオブジェクトのすべてのイベントのリストであるオブジェクト履歴ビュー(下に表示)が開きます。タスクまたは割り込みをダブルクリックすると、アクタのすべての実行を示すアクタの履歴ビューが開きます。
〈カーネルオブジェクト履歴〉
このビューは、メッセージキュー、セマフォーまたはミューテックスなど、特定のカーネルオブジェクトのすべてのイベントを表示します。イベントはリストとして表示され、リスト項目をダブルクリックすると、メイントレースビューに対応するシステムコールが表示されます。送信/受信操作を使用するメッセージキューや同様のオブジェクトの場合は、受信時に送信する特定のメッセージに従うか、またはその逆にすることができます。また、キュー内のメッセージをいつでも調べることもできます。
〈独自のユーザーイベント作成〉
ユーザー定義イベントまたはユーザーイベントを使用すると、埋め込みアプリケーション内のイベントまたはデータをログに記録できます。これにより、古典的なデバッグ "printf"呼び出しの柔軟性が得られますが、ビューア内ですべての文字列書式がオフラインで行われるため、はるかに高速です。カーネルトレースと同じタイムラインでイベントを取得するので、アプリケーションイベントを他のビューと関連付けるのは簡単です。
〈コードからデータを視覚化〉
「User Events」を記録するときに、時間の経過とともにデータを視覚化するためにデータ引数を含めてプロットすることもできます。プロット内の任意のデータポイントをクリックすると、対応するユーザーイベントがメイントレースビューで強調表示されます。
プロットは、プロットされたデータを他のタイムラインビューと相関させてプロット内の異常の原因を見つけることができるため、制御アルゴリズムの解析に非常に役立ちます。
Tracealyzerとは
◆ 世界NO1のトレース機能を持つTracealyzer
おそらく以前にいくつかのトレースツールを使用されているかもしれまsんが、これは単なるトレースビューア以上のものです。これは、2004年以降に開発された最先端のビジュアライゼーションであり、トレースをもっと分かりやすくするために設計されています。ビジュアライゼーションは、ほとんどのRTOSイベントの意味を実際に理解し、関連するイベントやビューを接続してビジュアライゼーションを改善する高度な分析を実行します。これにより、データから結論を引き出し、問題を理解し、解決策を検証することがずっと簡単になります。
◆ 世界NO1のシステムデバッガ
Tracealyzerは、IAR、Keil、Eclipseツールなどの従来のデバッガと並行して使用でき、システムレベルでいくつかの追加ビューを備えた詳細なデバッガビューを補完し、従来のデバッガでは不十分なリアルタイムの問題を理解するのに理想的です。例えば、モータ制御のようなリアルタイムシステムでは、デバッグのためにシステムを停止させることができないことが多い。ソフトウェアトレースを使用することで、システムの実行中にリアルタイムで組み込みソフトウェアと関心のある変数を記録できます。
◆ Tracealyzer4
〈racealyzer4機能概要〉
Tracealyzer 4に は、タスクスケジューリングと割り込みハンドラ/ ISR実行、タスクタイミング(実行時間とその他のメトリック)、タスク優先度、CPU負荷、メモリ使用量、タスク間の相互作用など、実行時動作の 30以上のビューが用意されていますメッセージキュー、セマフォおよびミューテックスオブジェクトを介してハンドラ/ ISRを中断する。このようにして、タスクの優先順位、実行時間、およびタイムアウトが適切かどうかを確認して、タスクの優先またはブロックによるタイムアウトエラーを回避できます。例えば、USBタスクは応答時間を短縮し、セマフォータイムアウトを回避するために、TCP / IPタスクをプリエンプトする必要がありますか?おそらく、いくつかのミューテックスが多くのタスクで使用されるため、頻繁に実行がブロックされ、遅延が発生する可能性があります。
また、アプリケーションコードから「ユーザーイベント」のカスタムロギングを実行して、他のビューと並行して、時間とともに状態と変数を表示することもできます。これは、モータ制御ループなど、アルゴリズムのリアルタイム動作を解析してデバッグするために使用できます。ソフトウェアロジック自体とそのパフォーマンス。たとえば、実行時間はどれくらい必要ですか?より速い速度でコントロールループを実行できますか?タスクのタイミングは安定していますか?
〈プロファイリングビュ〉
プロファイリングビュあなたが最もリソースを使用するシステム(例えばプロセッサ時間とヒープメモリ)の何の部分を見ることができます。非効率的なコードのために、動機付けされたものよりもはるかに多くのCPUサイクルを使用しているのでしょうか?メモリ使用量ビューでは、メモリリークの可能性を特定することもできます。「残っているだけを表示する」オプションを使用して、メモリリークの可能性があるすべてのイベントを表示して、「フリー」イベントと一致するすべての「malloc」イベントをフィルタリングできます。
〈メモリリーク解析〉
すべてのビューは巧みに相互接続されているため、1つのビューでデータポイントをクリックし、関連する別のビューで対応する場所を表示できます。さらに、すべてのタイムラインビューを同期させることができますので、サイドビューをスクロールしてズームすることができます。このように、複数の視点から同時に利益を得ることができ、トレースをよりよく理解することができます。
トレースは、サポートされているデバッグプローブを使用するか、USBやTCP / IPなどのカスタムターゲットホストインタフェースを使用して、リアルタイムでストリーミングできます。今のところこれはFreeRTOS、Micrium、SafeRTOSでサポートされていますが、追加のストリーミングサポートが予定されています。
特別なトレースハードウェアは必要ありませんTracealyzerは最小のオーバーヘッドで効率的なソフトウェア計測に依存しているためです。この方法では、本質的にどのプロセッサまたはマイクロコントローラでも動作しますが、トレースレコーダモジュールでは数キロバイトが使用可能であると仮定します。これは、STMicroelectronics STM32、NXP LPCおよびKinetisシリーズ、Renesas Synergy、Silicon Labs EFM32、Cypress PSoC、Atmel SAM、TI MSP432、TI TMC4、およびInfineon XMC4などのARM Cortex-M MCUを含む32ビットターゲットプロセッサ向けです。 。また、Renesas RX、Renesas RZ、Microchip PIC32、Atmel AVR32、ARM Cortex-R、ARM Cortex-A、Xilinx Zynq、Xilinx Microblaze、Altera Nios IIおよびSynopsys ARCプロセッサもサポートしています。また、プロセッサファミリがまだ直接サポートされていない場合でも、独自のポートを簡単に開発できます。主に現在の時刻を読むために、いくつかのマクロを定義するだけです。
デプロイされたシステムでもそれを使用して、それ以外の場合は非常に再現しにくい散発的なエラーからトレースを取得することさえできます。トレースを有効にして製品を出荷する顧客があります。検出されたエラーに最新のトレースを保存することにより、導入された顧客操作の問題に関する貴重な情報を得ることができます。
〈統合開発環境への対応〉
IAR Embedded Workbench、KeilμVision(MDK)、Atmel Studio、Microchip MPLAB X IDE、Wind River Workbench、EclipseベースのIDE(Atollic TrueStudio、SW4STM32、Code Composer Studio(TI CCS)など)など、いくつかの主要なIDEが明示的にサポートされています。)、NXP LPCxpresso / MCUxpressoなど)。
Tracealyzerは、RAMの内容をホスト側のファイル(.binまたは.hex)に保存するか、ホストにトレースデータをストリーミングするためのターゲットホストインターフェイスを使用できる限り、任意のIDEで使用できます。ただし、Keil RTX5バージョンではデータアクセスにKeilμVision(Keil MDK)バージョン5.23以降が必要です。
〈RTOSとフリーOSへの対応〉
他のトレースツールとは異なり、FreeRTOS、Amazon FreeRTOS(a:FreeRTOS)、SafeRTOS、MicriumμC/ OS、ThreadX、Keil RTX5、VxWorksなど、複数のRTOSおよびLinuxプラットフォームがサポートされています。したがって、後でプラットフォームを変更することにした場合、Tracealyzerを使い続けることができます。
トレースの利点
なぜトレースするのですか?〉
Percpeio CEO Johan Kraft氏のプレゼンテーションであるEmbedded Systemsの効率的なデバッグのためのトレースビジュアライゼーションは、ソフトウェアトレースの世界への優れた導入、トレースデータのビジュアル化が重要視されていること、
パワフルなビジュアライゼーションと組み合わせたソフトウェアトレースは、これまでにない洞察を可能にします。ソフトウェア開発の生産性と品質を改善し、プロジェクトのリスクを軽減し、市場投入までの時間を短縮します。
ソースコードだけでは、マルチタスクソフトウェアシステムが実行時に実際にどのように動作するかを完全に把握することはできません。リアルタイムの振る舞いは、タスクや割り込みのタイミング、その相互作用や入力など、他の多くの要素にも依存します。Tracealyzerのような洗練されたトレースツールを使用する と、システムの実行時の世界をよりよく理解し、開発、デバッグ、検証を高速化できます。
マルチタスク組み込みシステムの設計とデバッグの課題については、このホワイトペーパーを読むことをお勧めします。
〈より迅速なトラブルシューティング〉
Tracealyzerは、まれにしか発生しない散発的なエラーをキャプチャすることができます。必要とされる時間のほんの一部で、多くの組み込みソフトウェアの問題を解決できます。Tracealyzerのレコーディングは、研究室の既存のデバッガと並行して使用することも、まれな散発的なエラーを捕捉するフィールドシステムに展開することもできます。
〈より良いソフトウェア品質〉
Tracealyzerは、特定の困難な問題に使用するだけの「消火器」ではありません。また、タイムアウトに近いシステムコールをブロックするなど、潜在的な将来の問題を発見して回避することもできます。さらに、Tracealyzerは現在のシステムランタイムのダイナミクスをよりよく理解するため、新しいフィーチャを設計するときに、タイミング、CPU使用率、スケジューリングまたは他のタスクのやりとりに関連する問題を引き起こす可能性のある不適切な設計を避けることができます。
〈よりよい性能〉
改善された洞察により、組み込みソフトウェアのパフォーマンスを改善する新しい方法を見つけることもできます。タスクタイミングの小さな変化がパフォーマンスを大幅に向上させる可能性のある「ぶら下がった果物」があるかもしれません。Tracealyzerは、リソースの競合を減らすために、優先度の高いタスクが遅れて実行され、タスクが少し遅れて実行される「ホットスポット」を見つける方法をいくつか提供しています。適切な視覚化がなければ、そのような最適化を見つけるのは非常に困難です。このようにして、より応答性の高いソフトウェアシステムを入手したり、同じハードウェアプラットフォームに多くのソフトウェア機能を組み込むことができます。
〈制御システムのチューニング〉
コントロールシステムの開発者は、ユーザーイベントと呼ばれるカスタムアプリケーションデータをプロットするサポートから利益を得ることができます。制御性能の異常をよりよく理解するために、制御信号(センサ入力およびアクチュエータ出力)のプロットをソフトウェアタイミングと相関させることができます。さらに、タスクタイミング(例えば、周期性)のプロットを使用して、制御性能に影響を及ぼすソフトウェアタイミング変動を調べることができる。
〈他の利点〉
改善された洞察力により、新しい開発者の迅速な導入が可能になり、組み込みデータベース、タッチスクリーンドライバ、通信スタックなどの新しいサードパーティ製ソフトウェアのパフォーマンスを評価する可能性も高まります。最後に、組み込みソフトウェア用のいくつかの一般的なオペレーティングシステムをサポートしているため、別のオペレーティングシステムに切り替える場合でもTracealyzerのサポートを維持することができます。
ライセンス
◆ Percepio Tracealyzerホストアプリケーションは、開発席またはチームごとにライセンスされています。以下のライセンスタイプが利用できます。
・ ノードロックライセンス:特定のコンピュータにバインドされたライセンスキー。個々のユーザーを対象
・ フローティングネットワークライセンス:最大同時ユーザー数、単一のサイトで無制限のインストールが可能です。中小規模のチームを対象としています。
・ サブスクリプションライセンス:サポートされているほとんどのRTOSでTracealyzerを使用できるフローティングライセンス。毎年更新が必要です。
・ アカデミックライセンス:学術機関および学生のための低コストおよびフリーライセンス。非営利目的でのみ使用可能なライセンス。
◆ 無料評価
限られた時間の間、Tracealyzerを無料で評価することができます。ダウンロードページで評価用に登録すると、数分でライセンスキーが電子メールで送信されます。これはノードロックライセンスであり、自動化されたフォームを使用して拡張することはできません。評価に時間がかかる場合は、ポジティブワンまでご連絡ください。
評価ライセンスは評価用であり、商用プロジェクトの実際の問題には使用できません。
◆ 購買
・ ポジティブワンまで問い合わせください。
・ すべて組み込み開発ツールとプロセスに特化しており、Tracealyzerを稼働させるのに役立ちます。
◆ ライセンス条項
利用規約のページ およびプライバシーポリシーを確認ください。アプリケーションの使用は、エンドユーザー使用許諾契約の対象です。
◆ ノードロックされたライセンス
個々の開発者を対象としています。Tracealyzerを1台のコンピュータで実行できます。1年間のサポートと無料のアップデートが含まれています。その後、毎年メンテナンス契約を購入してアップデートを引き続き受けることができます。
◆ フローティングライセンス
中小規模のワークグループ向けです。ライセンスは、グループまたは組織内で共有され、インストール数に制限はありませんが、同時に使用できるユーザー数に上限があります。1年間のサポートとアップデートが含まれており、年間メンテナンス契約でこれを拡張することができます。
◆ サブスクリプションライセンス
並行して実行される多くのRTOSプロジェクトが存在する大規模な開発グループに合わせたソリューション。また、複数のRTOSを評価していて、どのRTOSを使用するかをまだ決めていない場合にも便利です。サブスクリプションライセンスは、サポートされているすべてのオペレーティングシステム*でTracealyzerを使用できるフローティングライセンスです。1年間有効で、無料のサポートとアップデートだけでなく、Percepioがその期間中にリリースするTracealyzerアドオン製品も含まれています。
◆ サポート付き大学パッケージ
大学などの高等教育機関では、共通の共有ライセンスキーを持つマルチユーザライセンスであるUniversity Packageを提供しています。
◆ アカデミックユーザの無料ライセンス
教育や学術研究のユーザー向けに、すべてのTracealyzer製品に無料のアカデミックライセンスを提供しています。学校や施設はサイトライセンスを要求できますが、個々の学生は単一のライセンスを要求できます。どちらの場合でも、学術ライセンスは非商用使用のみに制限されていますが、機能的かつ無制限の更新を完全に提供します。サポートは含まれていません。
学術ライセンスを取得するには、大学の電子メールと電子メールの主題 「アカデミックライセンス要求」として問い合わせください。