概要
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 |
|---|---|
| 対象 | 任意のC/C++ソフト(RTOS有無不問) |
| 用途 | 未対応RTOS統合・独自API可観測化 |
| 基盤 | Percepio TraceRecorder |
主要機能
Tracealyzer SDK の主要な可視化機能を、実際の解析画面とともにご紹介します。各機能がどんな不具合の発見に役立つかまでを明記しています。これらのビューは全ての対応OSで共通です。

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

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

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

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

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

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

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

ユーザイベント/ライブ
ユーザイベントで記録した任意データを時系列で表示し、J-Link RTT・ITM・TCP/IP・UDP等で長時間トレースをリアルタイム表示(printfの数百倍高速)。スナップショット方式にも対応し、再現性の低い間欠不具合を長時間ストリーミングで捕捉できます。
TraceRecorder の構造と主要API
| 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)またはスケジューラ停止で保護。ミューテックスでの保護は再帰呼出の恐れがあり不可 |
| 主要API | xTraceObjectRegisterWithoutHandle(登録)/xTraceTaskSwitch・xTraceTaskReady(スケジューリング)/xTraceEventCreate0〜6(汎用・コード0–4095)/xTraceISRBegin・End(ISR) |
ホスト側XML定義・配布とサポート
| ホスト側XML | PlatformExtension(EventCodes+TargetPlatform)でイベントコードと意味を定義。TRC_PLATFORM_CFG(最大8文字)+バージョンで「NAME-vX.Y.Z.xml」を探索 |
|---|---|
| ステータス色分け | StatusOK/Blocks/Timeout/Error → 白(非ブロック成功)・赤(ブロック)・緑(復帰)・橙(タイムアウト/エラー)で自動表示 |
| ObjectClass | Actor・Queue・Semaphore・Mutex・Heap・IOChannel へマップし、Object History・通信フローに自動反映 |
| 配布(インテグレーター) | kernel port は自社チャネルで配布。導入ガイドは percepio.com の gettingstarted に掲載可。パートナー契約でXMLをTZインストーラへ同梱可(年2〜4回リリース) |
| サポート | サードパーティ統合の一次サポートはインテグレーターが担当(別途契約がない限り) |
主な用途
- 自社独自のRTOS・ミドルウェアの記録を、解析ツールで見られるようにする
- 既存の解析基盤に、独自イベントを追加する
- 製品固有の可視化を作り込む
導入メリット
- 解析ツールの表示基盤を流用でき、可視化を自作せずに済む
- 独自のソフトウェア構成でも、同じ操作系で解析できる
- 顧客・パートナーへ配布する解析環境を統一できる
よくある質問
対応済みRTOS(FreeRTOS・Zephyr等)でも SDK は必要ですか?
最小限どこまで実装すれば動きますか?
Tracealyzer SDK の入手方法は?
この製品が含まれるソリューション
この製品は、複数製品を組み合わせた次の構成の要素です。構成全体での位置づけは各ソリューションページをご覧ください。
- RTOS 可観測性・ランタイム解析 — この製品の役割: 補完ランタイム可視化 × トレース取得 × 出荷後の異常検知
関連製品
お問い合わせ
対象MCU・数量・安全要件などをお聞かせください。最適な構成と概算をご提案します。
Tracealyzer — ランタイム可視化のリーダー
Percepio の全製品を見る →