ホーム / 製品一覧 / Percepio / Tracealyzer SDK
TRACE — task timeline T0T1T2T3T4 CPU LOAD % BUILD · コンパイラ・IDE/開発ツール
Percepio 主力 No.5

Tracealyzer SDK

型番 / ID: TZ-SDK
カスタム統合SDKTraceRecorderXML定義
Percepio の製品一覧 →

概要

Tracealyzer SDK は、顧客・パートナーが Tracealyzer のカスタム統合を自作するための開発キットです(2023年9月提供開始)。Percepio が統合を提供していないRTOSでも、事実上あらゆるC/C++ソフトウェアに Tracealyzer の可視化を組み込めます。RTOSベンダー(例:PX5 RTOS)は自社ユーザーへの Tracealyzer 対応を提供でき、アプリ開発者は通信スタック等の重要APIに独自トレースを追加、半導体ベンダーはBSPやペリフェラルドライバに適用できます。

構成は、オープンソースの計測ライブラリ TraceRecorder(GitHub・Apache 2.0)に統合ガイド文書とコード例を加えたもので、Tracealyzer の有効なサブスクリプションがあれば無償で利用できます。デモは IAR Embedded Workbench(Armシミュレータ)と GCC(x86_64)向けが提供され、開発ボードなしでデスクトップ上で試せます。

SDKの核心は「カーネルイベント」です。単なるAPI名と引数のログではなくセマンティックな操作情報が付与されるため、Tracealyzer が『タスクXがミューテックスYの取得でブロックされ、Zµs後にタイムアウトした』という意味まで理解し、赤/緑ラベルや通信フロー図に自動反映します。64bitシステム対応は v4.8 で追加されています。

移植は、①プロセッサ固有定義(TRC_HWTC_* によるタイムスタンプ)→②基本カーネルトレース(オブジェクト登録・タスクスイッチ・Actor Ready)→③API呼出トレース(xTraceEventCreate0..6)→④stream port 定義→⑤ホスト側XML定義、の5段階です。同梱の Bare Metal ポートが雛形、Zephyr ポートが参考実装です。

主要仕様

Tracealyzer SDK
種別Tracealyzer 拡張開発SDK
対象任意のC/C++ソフト(RTOS有無不問)
用途未対応RTOS統合・独自API可観測化
基盤Percepio TraceRecorder
FEATURE OVERVIEW

主要機能

Tracealyzer SDK の主要な可視化機能を、実際の解析画面とともにご紹介します。各機能がどんな不具合の発見に役立つかまでを明記しています。これらのビューは全ての対応OSで共通です。

LIVE UIタスク実行トレース
TRACE VIEW

タスク実行トレース

タスク/スレッド・割込み・カーネルAPI呼出・ユーザイベントを時系列のタイムラインで可視化。スケジューリングが意図通りかを一目で確認でき、優先度逆転・想定外のプリエンプション・タスクの取りこぼしを発見できます。

LIVE UICPU負荷グラフ
CPU LOAD

CPU負荷グラフ

タスク/割込みごとのCPU使用率と総負荷を時系列で表示。負荷の高いホットスポットを特定して最適化の的を絞れるほか、負荷スパイクから処理の詰まり・ビジーループ・割込み過多を突き止められます。

LIVE UIカーネル・アウェアネス
KERNEL

カーネル・アウェアネス

セマフォ・ミューテックス・メッセージキュー・イベントフラグなどRTOSオブジェクトの状態遷移(Running/Ready/Blocked/Waiting)を可視化。どのタスクがどの資源で待たされているかが分かり、デッドロック・長時間ブロック・優先度逆転の原因特定に直結します。

LIVE UIヒープ/スタック解析
MEMORY

ヒープ/スタック解析

動的メモリ確保(malloc/free)とタスク別スタック使用量の推移を表示。右肩上がりのヒープ推移からメモリリークを、スタックの余裕不足からスタックオーバーフローの予兆を早期に発見でき、断片化の傾向も掴めます。

LIVE UI通信フロー/シーケンス
COMMUNICATION

通信フロー/シーケンス

スレッド間のIPC・同期イベントの相互作用をシーケンス図で集約表示。どのタスクが特定のキューやセマフォを介してやり取りしているかを俯瞰でき、想定外の依存関係・過剰なメッセージ往復・同期の取りこぼしを可視化します。

LIVE UIトレース統計・タイミング
STATISTICS

トレース統計・タイミング

実行時間・応答時間・周期などのタイミング指標を統計化し、性能グラフとともに表示。最大・最小の外れ値をクリックすると該当ジョブへドリルダウンでき、ワーストケースのレイテンシやジッタ、周期の乱れといった問題箇所へ即座に到達できます。

LIVE UIシステム構成
ARCHITECTURE

システム構成

アプリケーション・カーネル・ドライバ・ハードウェアの階層構造を俯瞰。システム全体の見通しを得られ、各層の関係を把握することで、問題がどの層で起きているかの切り分けを助けます。

LIVE UIユーザイベント/ライブ
STREAMING

ユーザイベント/ライブ

ユーザイベントで記録した任意データを時系列で表示し、J-Link RTT・ITM・TCP/IP・UDP等で長時間トレースをリアルタイム表示(printfの数百倍高速)。スナップショット方式にも対応し、再現性の低い間欠不具合を長時間ストリーミングで捕捉できます。

SDK ARCHITECTURE

TraceRecorder の構造と主要API

Tracealyzer SDK
kernel portプラットフォームに追加する計装コードを定義。BareMetal port が雛形、Zephyr port が参考実装
hardware portタイムスタンプ等のプロセッサ定義(TRC_HWTC_COUNT/TRC_HWTC_FREQ_HZ/TRC_IRQ_PRIORITY_ORDER)。µs以下の分解能を推奨
stream portホスト出力の定義。デバッグIF(J-Link等)・TCP/UDPも可。RingBuffer でスナップショット(Detect/DevAlert 連携)
クリティカルセクション割込み禁止(PRIMASK/BASEPRI)またはスケジューラ停止で保護。ミューテックスでの保護は再帰呼出の恐れがあり不可
主要APIxTraceObjectRegisterWithoutHandle(登録)/xTraceTaskSwitch・xTraceTaskReady(スケジューリング)/xTraceEventCreate0〜6(汎用・コード0–4095)/xTraceISRBegin・End(ISR)
HOST-SIDE XML

ホスト側XML定義・配布とサポート

Tracealyzer SDK
ホスト側XMLPlatformExtension(EventCodes+TargetPlatform)でイベントコードと意味を定義。TRC_PLATFORM_CFG(最大8文字)+バージョンで「NAME-vX.Y.Z.xml」を探索
ステータス色分けStatusOK/Blocks/Timeout/Error → 白(非ブロック成功)・赤(ブロック)・緑(復帰)・橙(タイムアウト/エラー)で自動表示
ObjectClassActor・Queue・Semaphore・Mutex・Heap・IOChannel へマップし、Object History・通信フローに自動反映
配布(インテグレーター)kernel port は自社チャネルで配布。導入ガイドは percepio.com の gettingstarted に掲載可。パートナー契約でXMLをTZインストーラへ同梱可(年2〜4回リリース)
サポートサードパーティ統合の一次サポートはインテグレーターが担当(別途契約がない限り)

主な用途

  • 自社独自のRTOS・ミドルウェアの記録を、解析ツールで見られるようにする
  • 既存の解析基盤に、独自イベントを追加する
  • 製品固有の可視化を作り込む

導入メリット

  • 解析ツールの表示基盤を流用でき、可視化を自作せずに済む
  • 独自のソフトウェア構成でも、同じ操作系で解析できる
  • 顧客・パートナーへ配布する解析環境を統一できる

よくある質問

対応済みRTOS(FreeRTOS・Zephyr等)でも SDK は必要ですか?
不要です。FreeRTOS・Zephyr・ThreadX 等の統合は TraceRecorder の /kernelports に同梱されています。SDK は未対応RTOSへの統合や、通信スタック・独自APIなどRTOSイベントを超えた可観測性の拡張が必要な場合に使用します。
最小限どこまで実装すれば動きますか?
基本のタスクトレースは、①オブジェクト登録(xTraceObjectRegisterWithoutHandle)②Actor Ready(xTraceTaskReady)③タスクスイッチ(xTraceTaskSwitch)の3種の計装と、対応するXML定義から始められます。ブロッキング表示が必要なAPIには KernelServiceEntry/Return の2イベントを定義します。
Tracealyzer SDK の入手方法は?
percepio.com の Tracealyzer SDK ページおよび GitHub から入手できます。Tracealyzer の有効なサブスクリプションがあれば無償で利用可能です。サブスクリプションのご相談・見積もりはPositive ONE Groupが承ります。

この製品が含まれるソリューション

この製品は、複数製品を組み合わせた次の構成の要素です。構成全体での位置づけは各ソリューションページをご覧ください。

関連製品

まずはデモ貸出・無償評価で体験

フル機能の評価版を無償でお試しいただけます(サンプルトレース同梱)。

デモ貸出・無償評価を申し込む →

お問い合わせ

対象MCU・数量・安全要件などをお聞かせください。最適な構成と概算をご提案します。

Tracealyzer — ランタイム可視化のリーダー

Percepio の全製品を見る →