ホーム / 製品一覧 / PLS / Universal Debug Engine (UDE)
Universal Debug Engine (UDE)DEBUG · デバッグプローブ/オンチップデバッグ
PLS 主力 No.4

Universal Debug Engine (UDE)

型番 / ID: UDE
UDEマルチコアAURIX
PLS の製品一覧 →

概要

Universal Debug Engine(UDE)は、PLS のマルチコア対応デバッグ・トレース・テスト統合環境(ソフトウェア)です。Infineon AURIX/TriCore、NXP/ST Power Architecture(MPC56/57/58・SPC56/57/58)、Arm Cortex-M/R/A、Renesas RH850、RISC-V、ARC、SuperH SH-2A、STM32、Stellar、S32 など、極めて広範なコアに対応します。

ターゲットアクセスは、別売のアクセスデバイス UAD ファミリ(UAD2pro / UAD2next / UAD3+ の3機種)と組み合わせて行います。用途・予算・トレース要件に応じて3機種から選択します。

【UDE 2024 の主な新機能】AURIX TC4x の cDSP デバッグ・SOTA対応、TRAVEO T2G/XMC7000・RH850/U2B のトレース対応、UDE SimplyTrace と RTOS Awareness の統合(タスクトレース)、miniMCDS対応(TC38x等)、トレースの浮動小数点表示。RTOSは SAFERTOS/FreeRTOS/PXROS-HR/MicroC-OS-II/AUTOSAR をサポート。

【動画で学ぶ UDE】PLS のウェビナーシリーズ(Hitex 共催)では、UDE の主要機能を実機デモで解説しています。下記「動画で学ぶ UDE の内容」に、トレースベース解析・ツール全体像・Python自動化・Arm Cortex-A/Rマルチコアデバッグ・変数可視化の5本について、視聴しなくても要点が掴めるよう内容をまとめました。

主要仕様

Universal Debug Engine (UDE)
種別デバッグ・トレース・テスト統合環境(ソフト)
対応コアAURIX/TriCore・Power・Cortex-M/R/A・RH850・RISC-V・ARC・SH-2A 他
機能マルチコアデバッグ・トレース・コードカバレッジ・テスト自動化
拡張RTOS Awareness・MCDS/SimplyTrace・MemTool・Code Coverage
ハードウェアUAD2pro / UAD2next / UAD3+(3機種)
技術仕様

ソフトウェア機能(デバッグ)

Universal Debug Engine (UDE)
デバッグHLL(C/C++/Rust)+アセンブラのクロスデバッグ・Mixed Mode・構文強調
マルチコアシステム中心UI・コア別色分け・同期Run Control・Multi-Program Loader
特殊コアGTM/PPU/SCRM/HSM/eTPU 等の特殊コアに対応
実行時観測アプリデータのリアルタイム観測・高度な可視化
FLASHオン/オフチップFLASH書込を統合(Memtool Add-In)
UIPerspectives・マルチスクリーン・ホーム画面・事前定義ターゲット構成
技術仕様

ソフトウェア機能(トレース・解析)

Universal Debug Engine (UDE)
トレース方式MCDS・AURORA(AGBT/SGBT/HSSTP)・Nexus・CoreSight(ETM/PTM/ITM/FTM)・ARC SmaRT
設定UEC(Universal Emulation Configurator)でGUI構成
解析Code Coverage(ISO 26262構造カバレッジ)・Profiling・Execution Sequence・Call Graph
再構成トレースから時間整合したプログラムフローを復元
出力形式Raw/UTF(Binary/Text/HTML)・VCD・TAB/SPACE・XML
技術仕様

ソフトウェア機能(自動化・IDE)

Universal Debug Engine (UDE)
Object ModelCOMベースAPI(全baseライセンス同梱・追加費用なし)
スクリプトPython/PowerShell/JavaScript/Perl/VisualBasic/C#/C++(COM対応言語)
Python組込みPython 3.12インタプリタ(Script Console・自動補完・外部スクリプト)
EclipseEclipse統合(専用デバッグパースペクティブ・全アーキ対応・追加費用なし)
コンパイラHighTec/GNU・Tasking・Keil/Arm・Wind River・Green Hills・Renesas・CodeWarrior
技術仕様

RTOS・AUTOSAR Awareness

Universal Debug Engine (UDE)
RTOSPXROS-HR・SAFERTOS・FreeRTOS・Sciopta・OSEK/ORTI・PXROS・CMX・uC/OS-II・rcX・Keil RTX・Nucleus PLUS
AUTOSARAUTOSAR Classic Platform・ARTI/ORTI 対応
ARTIARTIファイル(arxml)からタスク/runnable/ISRをトレース・可視化
表示RTOS/AUTOSARオブジェクト・状態の可視化/各ウィンドウへの遷移
技術仕様

AUTOSAR ARTI 詳細

Universal Debug Engine (UDE)
ARTIとはビルドツールとデバッグ/トレースツール間のIF。arxmlに全デバッグ情報を格納
Support WindowOSオブジェクトを詳細表示(HALT状態で更新)
情報クラスArtiHook/OSClass/AlarmClass/ContextClass/IsrClass/MessageContainerClass/RessourceClass/StackClass/TaskClass/CoreClass
タスクトレースtask実行・category 2 ISR・関数をトレース(ARTIフック基盤)
ArtiHookGeneratorARTI.c/ARTI.h(フックマクロ)をビルド時に自動生成するCLIツール
3rd party連携トレースを ASAM MDF でエクスポート→タイミング解析ツールへ
Vector Timing BundleMICROSAR向けスケジューリングトレース統合(TA Tool Suite連携)
技術仕様

対応マイコン一覧(メーカー別・統合)

Universal Debug Engine (UDE)
InfineonAURIX TC4x/TC3xx/TC2xx・TriCore AUDO・XMC7xxx/4xxx/1xxx・TRAVEO T2G・PSoC 4・XC166/XC2000/XE166・C166/ST10・MOTIX
STMicroelectronicsStellar SR6P/SR6G/SR5E・STM32(全Cortex-M)・SPC56x/SPC57x/SPC58x
NXPS32G2/G3・S32V・S32Z/S32E・S32N5・S32K1/K3/K5・i.MX RT・MPC56xx/57xx・S32R・Kinetis
RenesasRH850(U2A/U2B/U2C・C1/D1/E1/E2/F1/P1)・R-Car・RA・RZ/T2M・SuperH SH-2A
Arm(各社)Cortex-R52(+)・Cortex-A5x/A7x/A8/A9・Cortex-M0/3/4/7・M33/M23/M55/M52/M85・Arm7/9/11
Texas InstrumentsJacinto(TDA4/DRA8)・Sitara(AM64x/AM263Px/TMS570)・MSPM0 G・MSPM33
SynopsysARC EM/EV/HS・ARC-V
IPコア/その他Bosch GTM・DFA・Andes D23・RISC-V・SiFive・AMD/Xilinx Zynq-7000・Hilscher NETX 90・XScale
中国系ベンダーTongxin Micro THA6・Thinktech Alioth TTA8・NOVOSENSE・GigaDevice・C*Core
技術仕様

動画で学ぶ UDE の内容(5本の要点)

Universal Debug Engine (UDE)
① トレースベース・デバッグと実行時解析オンチップトレースは、実行時の挙動に影響を与えずに(非侵襲で)リアルタイムアプリを解析できる強力な機能です。Infineon AURIX の MCDS(Multi-Core Debug Solution)トレースシステムを例に、トレースベース・デバッグの始め方を実演。トレースを用いてアプリの性能ボトルネックを特定する方法、タイミング問題や並列実行が原因のバグを見つける手順を解説します。プログラムフローの時間正確な再構築が中心テーマです。
② デバッグ・トレース用ツールの全体像UDE をデバッグ・トレース・テストツールとして導入する回(約40分)。(1) 対応マイクロコントローラ(AURIX/TriCore・Power Architecture・Arm Cortex・RH850 ほか)、(2) デバッガハードウェア=Universal Access Device ファミリ(UAD2pro/UAD2next/UAD3+)、(3) UDE の機能概要、という3部構成で、ツール選定に必要な全体像をつかめます。
③ Python によるデバッグ自動化UDE の自動化インターフェースを Python から使う方法(約37分)。UDE Object Model(Microsoft COM ベースのソフトウェアAPI)を介して、ターゲットシステムの制御・ターゲット状態の取得・状態の操作(変数書き換え等)を Python スクリプトで行います。UDE には Python 3.12 インタプリタが組み込まれており(Python Script Console)、対話実行も外部スクリプト実行も可能。日々の定型作業やテストの自動化に直結する内容です。
④ Arm Cortex-A/Cortex-R SoC のマルチコアデバッグArm Cortex-A53 / Cortex-R52 を搭載するヘテロジニアス・マルチコアSoCのデバッグ(約23分)。NXP S32 Automotive Platform(S32G・S32S)と ST Stellar を実例に、UDE のマルチコア機能(コアの同期スタート/ストップ、コアグループ、マルチコアブレークポイント)と基本的なマルチコアトレースを実演します。
⑤ 変数の可視化(Visualizing Variables 101)UDE が備える豊富な変数可視化機能の解説(約21分)。ターゲット変数の値を、ウォッチ・メモリ・グラフィカル表示など多様な方法で観測・可視化する手順を、基礎から実演します。実行中のアプリケーションデータをリアルタイムに把握するための実践的な内容です。

主な用途

  • 対象MCUのデバッグ・トレース作業を1つの環境で行う
  • 実行制御・変数観測・トレース解析を統合して進める
  • チーム内でデバッグ環境を統一する

導入メリット

  • ハードウェアと解析機能が統合されており、設定の手間が少ない
  • デバッグとトレースを行き来せずに解析できる
  • スクリプトから制御でき、自動化にも展開できる

対応環境

  • 対応コア:Infineon TriCore / AURIX 他マルチコアSoC
  • 機能:デバッグ/フラッシュ/トレース(MCDS)/RTOS Awareness
  • ハードウェア:UAD(Universal Access Device)

よくある質問

XCP経由でターゲットに接続できません。何が必要ですか?
XCPソフトウェアデバッグには対応XCPハードウェアが必要です。ETAS ETK(AURIX TC2x/3x/4x・Power PC SPC5x/MPC5x・Stellar SR6x・S32Zx 等)または Vector VX(AURIX TC2x/3x/4x)が使えます。新規ワークスペース作成時に対象チップ用のXCP設定ファイルを選択し、正しいIPアドレス・TCPポートを設定してください。XCPはノードロックライセンス(またはUADに紐づく通常ライセンス)が必要です。セキュリティコアのデバッグ等一部用途はXCPでは制限される場合があり、その際はUADでのデバッグを推奨します。
FLASHへ新しいELFを読み込むたびに『Program』ボタンを押しています。自動化できますか?
できます。メニュー Tools - Flash programming で Memtool ダイアログを開き、General... から『After download start Program All function automatically』を有効にしてください。あわせて『Automatically close Execute Command dialog when finished』も有効にすると完了後にダイアログが自動で閉じます。
ELFとHEXでFLASHへのダウンロードパターンに差が出ることがあります。なぜですか?
通常はELFとHEXのダウンロードパターンは同一です。ELFに存在しない追加パターンでHEXをパッチする必要がある場合、UDEのHex/ELFオプションを使うと、ダウンロードパターンはHEXから、シンボル情報はELFから取得できます。設定は Config - Debug Server Configuration - Symbol - Hex/ELF load にあります。
FLASHから起動しRAMへ自身をコピーする独自ブートローダをデバッグするには?
主に2つの方法があります。(1) FLASH用とRAM用の2つのビルド変種を用意し別々に開発・デバッグする(FLASH変種を最終リリースに)。(2) FLASHコードとRAMコードを別セクション(例:.text_flash と .text)に配置し、起動時にコピーされるROMコピーを作成する。RAMコードにブレークポイントを張るには、コピー後にソフトブレークが失われるため Config - Debug Server Configuration - Debug Server の『Set hardware breakpoint by default』を有効にしてください。両コードのデバッグ情報が使えるこの方法を推奨します。
Eclipse環境にUDEをインストールしてデバッグするには?
Eclipse起動後、Debug Configurations に『Universal Debug Engine』項目があるか確認します。無ければ Help - Install New Software から Add でリポジトリを追加し、UDEインストールフォルダの UDEEclipseIntegration.zip を Archive で選択、『Universal Debug Engine Eclipse Integration』にチェックしてインストール。再度 Debug Configuration を開き、Universal Debug Engine 項目をダブルクリックすると起動構成が作成されます。
ネットワークドライブ上のファイルだとプログラム読み込みが遅いのですが?
プログラム読み込み時にデバッガがシンボル管理用のデータベースファイルを作成します。既定ではプログラムと同じディレクトリに置かれるため、ネットワークドライブ上では遅くなります。Config - Debug Server Configuration - Debug Server - Symbol の『Database directory』でデータベースをローカルに保存すると高速化できます。
全ブレークポイントを一括で有効/無効にする最短手順は?
メニュー Window - Project Workspace でプロジェクトワークスペースを開きます。シンボルエクスプローラの『Breakpoints』ノードのコンテキストメニューから、全ブレークポイントの有効/無効を一括で切り替えられます。
Memory/SFRビューに『????????』と表示されるのはなぜですか?
ターゲット接続が確立していても該当メモリを読み出せない場合に『????????』が表示されます。多くは存在しないメモリ領域か、現在のプロセッサモードでアクセスが許可されていない領域です。
『Runtime components are older than required』警告や、コンテキストメニューで落ちる場合は?
Microsoft Visual C++ ランタイムの版が古い/不正なことが原因です。Microsoft の最新ランタイムパッケージを導入してください(UDE 5.2まで vc_redist.x86.exe、UDE 2021以降 vc_redist.x64.exe)。他社製ソフトが導入したランタイムをUDEセットアップが認識できない場合に起こります。

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

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

関連製品

UAD2pro (Debug)
DEBUG
UAD2pro (Debug)
PLS
UAD2next (Debug + Trace)
DEBUG
UAD2next (Debug + Trace)
PLS
UAD3+ (High-End Trace)
DEBUG
UAD3+ (High-End Trace)
PLS
TRACE
UDE RTOS Awareness
PLS
TRACE
UDE MCDS / Trace
PLS
UDE MemTool
FLASH
UDE MemTool
PLS

お問い合わせ

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

UDE — AURIX / TriCore マルチコアデバッグの本命

PLS の全製品を見る →