概 要
エンベデッドビジョンアプリケーションを開発する場合、結果として得られるデータは重要なシステム機能によって必要とされるため、パフォーマンスは非常に重要です。たとえば、自動運転車の場合、これは生と死の違いを意味します。さらに、あなたの視覚処理の性能は、例えばロボット工学において、制御システムの性能に大きな影響を及ぼす可能性があります。より少ない待ち時間でより頻繁な入力はより良い制御と短縮されたサイクルタイムを意味します。
今日の強力なビジョンプロセッサとGPUは優れた性能を可能にしますが、あなたのソリューションが本当にハードウェアを効率的に利用することをどのように保証するのですか?他のコアがほとんどアイドル状態にある間、おそらくあるノードは予想よりもはるかに長い処理時間を必要とし、コアを過負荷にしますか?おそらく、アプリケーションはDMA転送が完了するのを待つのに時間がかかりますか。おそらく、コンピューティングリソースを追加してパフォーマンスを向上させようとしましたが、パフォーマンスの向上は予想よりも小さいですか。このようなボトルネックを修正すると、パフォーマンスが大幅に向上する可能性がありますが、多くの場合、わずかな変更があります。これにはランタイムシステムへの良い洞察が必要です。
仕 様
Tracealyzer for OpenVXは、細かいトレースビューから高レベルのサマリーおよび統計まで、記録された動作のさまざまな観点を示すさまざまなグラフィカルビューを提供します。上のスクリーンショットの左側に表示されているトレースビューは、利用可能なコアおよびアクセラレータ上でのOpenVXグラフ実行のタイムラインを表示するので、スケジューリング、パイプライン化、およびタイミングを非常に詳細に調べることができます。トレースビューはさまざまな方法で調整でき、水平表示と垂直表示の両方をサポートします。
TracealyzerのCPU負荷グラフの2つのインスタンスがあり、プロセッサコアがアプリケーションによってどのように利用されているかを示すことができます。全体的な負荷だけでなく、負荷が時間の経過とともにどのように変化するのか、および各グラフノードによって使用される処理時間の量も確認できます。また、異常を見つけることができるトレースのサマリーも示します。原因を確認するには、CPU負荷グラフをダブルクリックするだけで、対応するセクションをトレースビューに表示できます。Tracealyzerのすべてのビューは同様の方法で相互接続されているため、高レベルの概要から詳細なトレースに簡単にドリルダウンできます。色はOpenVXグラフノードを識別しやすくするために使用されます。
トレースビューを水平モードに変更し、その下にActor Instance Graphのインスタンスを2つ追加しました。Y軸はグラフノードの実行時間を示しています。ノードが通常より長く実行されている場所を確認し、詳細を確認するためにトレースビューを調べることができます。選択はすべてのビューに表示され、当然それらすべてに同じ時間枠が表示されます。ご覧のとおり、上部のトレースビューは短い時間間隔でズームインされ、下部のグラフはズームアウトされます。
Actor Statistics Reportは、各グラフノードの実行時間を含むいくつかのタイミングプロパティの最高値、最低値、および平均値を示しています。このレポートのすべての極端な値(最高/最低)は、実際にはトレースへのリンクなので、値をクリックすると、トレースビュー内の対応する場所がわかります。
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製品に無料のアカデミックライセンスを提供しています。学校や施設はサイトライセンスを要求できますが、個々の学生は単一のライセンスを要求できます。どちらの場合でも、学術ライセンスは非商用使用のみに制限されていますが、機能的かつ無制限の更新を完全に提供します。サポートは含まれていません。
学術ライセンスを取得するには、大学の電子メールと電子メールの主題 「アカデミックライセンス要求」として問い合わせください。