ホーム / 製品一覧 / Percepio / Tracealyzer Bare Metal support
TRACE — task timeline T0T1T2T3T4 CPU LOAD % TRACE · トレース/ランタイム解析
Percepio 主力 No.5

Tracealyzer Bare Metal support

型番 / ID: TZ-BAREMETAL
ベアメタルISR/区間計測RTOS移行にも
Percepio の製品一覧 →

概要

Tracealyzer Bare Metal support は、ベアメタル(RTOSなし) のランタイム挙動を可視化するトレース解析ツールです。タスク(スレッド)スケジューリング・割込み・API呼出・ユーザイベントを詳細なタイムラインで表示し、コードが意図通り実行されているかを検証できます。CPU負荷・実行時間・スタック/ヒープなど30以上の相互リンクビューで、ソースコードからは見えない問題を解明します。

RTOSを使わないベアメタル構成(スーパーループ+割込み)は、小規模MCUや制約の厳しい製品で今も広く使われています。一方その実行時挙動の確認は printf やGPIOトグルとオシロスコープに頼りがちで、時間軸での体系的な解析が困難でした。

【ベアメタル(RTOSなし) との連携で特に重要な点】TraceRecorder のベアメタルモード(Tracealyzer 4.7〜)により、RTOSなしのC/C++プロジェクトでも計測できます。割込みハンドラ(ISR)の実行、メインループ内の処理区間・状態、C APIによるユーザイベント(変数値・状態遷移)。インターバル計測とステートマシントレースで、コード区間の実行時間(WCET確認)や状態遷移を統計付きで可視化します。

TraceRecorder(ベアメタルモード)を統合し、スナップショット/ストリーミング(J-Link RTT等)でトレースを取得します。 Tracealyzer は1つのパッケージです。どの対応OS向けにご購入いただいても製品本体は共通で、30以上の解析ビューをすべて利用でき、後からOSを変更・追加しても同じライセンスで継続利用できます。

主要仕様

Tracealyzer Bare Metal support
対象RTOSベアメタル(RTOS不使用)
可視化25+ ビュー(トレース/CPU負荷/スタック/通信フロー)
計測TraceRecorder(Apache 2.0)
取得スナップショット/ストリーミング
ホストWindows / Linux(x86-64)
FEATURE OVERVIEW

主要機能

Tracealyzer Bare Metal support の主要な可視化機能を、実際の解析画面とともにご紹介します。各機能がどんな不具合の発見に役立つかまでを明記しています。これらのビューは全ての対応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の数百倍高速)。スナップショット方式にも対応し、再現性の低い間欠不具合を長時間ストリーミングで捕捉できます。

技術仕様

可視化・解析

Tracealyzer Bare Metal support
トレースビュータスク・割込み・ベアメタル(RTOS不使用) API・ユーザイベントのタイムライン
CPU負荷タスク/ISR別・総CPU使用率(ホットスポット特定)
タイミング実行時間・応答時間・周期の統計(ジョブ単位)
メモリスタック余裕プロット・ヒープ割当時系列
WHY TRACEALYZER FOR ベアメタル(RTOSなし)

ベアメタル(RTOSなし) と Tracealyzer — 採用ポイント

RTOSを使わないベアメタル構成(スーパーループ+割込み)は、小規模MCUや制約の厳しい製品で今も広く使われています。一方その実行時挙動の確認は printf やGPIOトグルとオシロスコープに頼りがちで、時間軸での体系的な解析が困難でした。

ベアメタル(RTOSなし) 連携の特別事項

Tracealyzer Bare Metal support
ベアメタル正式対応TraceRecorder のベアメタルモード(Tracealyzer 4.7〜)により、RTOSなしのC/C++プロジェクトでも計測できます
計測対象割込みハンドラ(ISR)の実行、メインループ内の処理区間・状態、C APIによるユーザイベント(変数値・状態遷移)
区間・状態の定量化インターバル計測とステートマシントレースで、コード区間の実行時間(WCET確認)や状態遷移を統計付きで可視化します

こんな課題に

  • printf・GPIOトグルによる場当たり的な確認から、時系列データに基づく体系的なデバッグへ移行できる
  • 割込み負荷・処理区間の実測により、周期割れ・取りこぼしの原因を特定できる
  • 将来RTOSへ移行する場合も、同じツール・同じ計測手法をそのまま継続できる
Tracealyzer は1つのパッケージです。対象OSを問わず製品本体は共通で、主要な対応OSがあらかじめ同梱されています。後からOSを変更・追加しても同じライセンスでご利用いただけます。詳しくは Tracealyzer 本体ページ をご覧ください。
WHAT & HOW

計測できるもの・統合手順(7ステップ)

計測できるもの

Tracealyzer Bare Metal support
ISRxTraceISRBegin/xTraceISREnd を割込みハンドラに追加(trcISR.h)。未計測の場合、ISR時間は実行中タスクに合算される点に注意
ユーザイベントtrcPrint API(xTracePrintF等)でデバッグメッセージ・データロギング。User Event Signal Plot でプロット可能
RunnabletrcRunnable.h でトップレベル関数・サブタスク区間の実行時間を計測(車載のRunnable概念だが汎用に有効)
区間・状態変数trcInterval.h/trcStateMachine.h の高効率APIでカスタム区間・ステートマシンを計測
オーバーヘッド1イベントあたり数µs程度。ISRトレースはデバッグ用途向け(µs精度のISRプロファイリング用ではない)

統合手順(RingBuffer 推奨)

Tracealyzer Bare Metal support
① stream port 選定まずは RingBuffer(RAM循環バッファのスナップショット)を推奨。Percepio Detect/DevAlert 併用時も RingBuffer
② ソース追加TraceRecorder 本体・kernelports/BareMetal・選択した streamports の .c をプロジェクトへコピー
③ ヘッダ追加config/include(本体・BareMetal・streamport)をインクルードパスに追加
④ ハードウェアポートtrcConfig.h で TRC_CFG_HARDWARE_PORT をデバイスに合わせて設定
⑤ プロセッサヘッダ必要に応じ trcConfig.h にプロセッサのヘッダを include(例:stm32f4xx.h)
⑥ 開始main() の初期化後に xTraceEnable(TRC_START)。初期化のみは xTraceInitialize()
⑦ MAIN/IDLE パターン「メイン」と「アイドル」の2タスクを登録し xTraceTaskSwitch/xTraceTaskReady でループを区切ると、Actor系ビューと統計でメインループをプロファイル可能
SDK への出発点:Bare Metal ポートは、Tracealyzer SDK による本格的なカスタム統合(独自RTOS対応)の推奨スタート地点でもあります。
技術仕様

取得・連携

Tracealyzer Bare Metal support
モードスナップショット(RAM)/ストリーミング
転送J-Link RTT / ITM / SWO / TCP/IP / UDP / USB CDC
IDESTM32CubeIDE / Keil MDK / IAR / Eclipse-GDB / Lauterbach
ライブラリPercepio TraceRecorder(GitHub・Apache 2.0)

主な用途

  • ベアメタル(RTOSなし) 上のタスク切り替え・割込みの実行順序と所要時間を可視化する
  • ベアメタル(RTOSなし) を用いた機器で、優先度逆転・デッドロック・応答遅れの原因を特定する
  • まれにしか再現しない不具合を、記録から追跡する

導入メリット

  • ベアメタル(RTOSなし) 向けに用意されており、計装の実装工数が小さい
  • ソースコードを読むだけでは分からない実行時の挙動が見える
  • 止めると消えるタイミング不具合を、動かしたまま追える

よくある質問

Tracealyzer Bare Metal support の見積もり・技術相談はできますか?
はい。Positive ONE Groupが取り扱っており、見積もり・技術相談に対応します。本ページのお問い合わせから対象MCUや数量をお知らせください。

関連製品

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

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

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

お問い合わせ

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

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

Percepio の全製品を見る →