TRACE · トレース/ランタイム解析概要
Percepio View for Zephyr は、Zephyr アプリケーション向けの無償トレース可視化ツールです。商用製品 Tracealyzer を基盤としており、固定優先度のスレッドが複雑に相互作用する Zephyr のマルチスレッド挙動を、タイムラインで直感的に理解・デバッグできます。
Percepio は Zephyr Project の活動メンバーとして、計測ライブラリ TraceRecorder を Zephyr へコントリビュートしてきました(現在は Zephyr カーネルに同梱)。View はその成果を Zephyr コミュニティへ無償提供するものです。View・Tracealyzer・TraceRecorder は Zephyr 公式ドキュメントにも記載されています。
View は単なる「イベントビューア」ではありません。ミューテックス・セマフォ・メッセージキューといったRTOSの概念や、Zephyr システムコールの意味を理解した可視化を行います。ブロッキングするシステムコールはラベル色で強調され、赤ラベル(ブロック)を選択すると対応する緑ラベル(復帰)も同時にハイライトされます。
計測は Zephyr 同梱の TraceRecorder を Kconfig で有効化するだけ。カーネルのトレースフックでコンテキストスイッチやシステムコールを記録し、TraceRecorder API で任意のユーザイベント(printf より高速)も同じタイムラインに記録できます。
主要仕様
| 種別 | Zephyr 向けトレースビューア(無償) |
|---|---|
| 表示 | トレースビュー・イベントリスト・通信フロー |
| 上位 | Profile(RTT/プロファイル)/Tracealyzer(全機能) |
画面で見る(Percepio View for Zephyr)

メイン画面(トレース/CPU負荷/イベントログ)
縦型トレースビュー・CPU負荷グラフ・イベントログ・フィルタを1画面に統合。Zephyr の k_sem_take / k_sleep 等のシステムコールが意味づけされて表示され、スレッドごとの実行状況を俯瞰できます。

ブロッキングの相互ハイライト
赤ラベル(ブロックしたシステムコール)を選択すると、対応する緑ラベル(復帰)が自動で強調されます。Selection Details には Blocked/Returned Success の時刻と所要時間が表示され、送信側イベントへのジャンプも可能です。

ユーザイベント(printf の高速な代替)
xTraceStringRegister でチャネルを登録し、xTracePrintF / xTracePrintF1 で変数値を記録。書式済み文字列+静的引数の最適化により高速で、カーネルイベントと同じタイムライン上に表示されます。
RTOSを理解した可視化
| RTOSオブジェクト | ミューテックス・セマフォ・メッセージキューの意味を理解した表示 |
|---|---|
| システムコール | Zephyr システムコールの意味づけ。ブロッキング呼出を色で強調 |
| 関連イベント追跡 | 赤(ブロック)選択で対応する緑(復帰)を同時ハイライト。Selection Details から関連イベントへジャンプ |
| ユーザイベント | TraceRecorder API で任意データを記録(printf より高速)。カーネルイベントと同一タイムラインで表示 |
| 公式性 | Percepio は Zephyr Project 活動メンバー。TraceRecorder は Zephyr カーネルに同梱 |
スナップショット取得(GDB 連携)
| 方式 | ターゲットRAMのリングバッファに記録し、通常のGDBデバッガ接続で保存(スナップショット方式) |
|---|---|
| GDBコマンド | dump binary value trace.bin *RecorderDataPtr |
| VS Code | デバッガコンソールで「-exec <GDBコマンド>」として実行可能 |
| GUI自動化 | Trace → Open Snapshot Tool → Snapshot Engine に GDB を選択。GDBパス(例:arm-zephyr-eabi-gdb)・ビルドフォルダの .elf・「target remote localhost:<ポート>」を設定 |
| 活用例 | 散発的なタイムアウトのエラーハンドラにブレークポイントを設定し、直前のイベント列をスナップショットで確認 |
| 対応ボード | ハードウェア要件は最小限(タイムスタンプ等はZephyrカーネル側で処理)。600 を超えるボードで検証済み |
アップグレード
| Profile | J-Link RTTストリーミング+プロファイリング |
|---|---|
| Tracealyzer | 長時間トレース・全ストリーミング・30+ビュー |
主な用途
- 開発中のアプリケーションの動作を、その場で確認する
- 本格的な解析の前に、当たりを付ける
- 追加のハードウェアなしで実行時の様子を見る
導入メリット
- 導入が軽く、まず動かして確認するという使い方ができる
- 常設の計測環境がなくても実行時の挙動を確認できる
- 本格的な解析ツールへの入り口として使える
よくある質問
Percepio View for Zephyr は本当に無償ですか?
トレースの取得方法は?
対応ボードに制限はありますか?
関連製品
お問い合わせ
対象MCU・数量・安全要件などをお聞かせください。最適な構成と概算をご提案します。
Tracealyzer — ランタイム可視化のリーダー
Percepio の全製品を見る →