止められない組込みシステムの
デバッグ手法とは

リアルタイム・デバッグの進化形ツール

組込みシステムの開発現場では、システムを止めずにデバッグしなければならないことがあります。
止めると現象が出なくなるバグ。何時間もテストしないと発生しないバグなど。
このような止められないシステムで発生する難しいバグのデバッグ方法について説明します。

開発の現場でこんな経験ありませんか?

Case01

現場からの緊急呼び出し!
すぐに問題を解決しなければならない

現象が出ているうちにデバッグしたい

電源を切ってデバッガをつなぐと、現象が再現できない可能性も…

今、この状態でデバッグできないだろうか

今、この状態でデバッグできないだろうか

Case02

まれに発生する不具合
printfでログを出そうと思ったが…

それらしいポイントにprintfを入れてみたら現象が再現しなくなった

おそらくタイミングが変わってしまったのだろう

タイミングを変えずにプログラムの状態が分かればいいのだけど

タイミングを変えずにプログラムの状態が分かればいいのだけど

Case03

バグの原因を究明中
現象が発生しないので苦戦中

バグの指摘がありデバッガで追跡している

止めると通信がタイムアウトしてデバッグができなくなる

プログラムを止めずにデバッグできないだろうか

プログラムを止めずにデバッグできないだろうか

Case04

稼働中のシステムの
パラメータを変更して試したい

問題点の見当はついたのだが確信が持てない

システムを止めずにペリフェラルを変更する必要がある

稼働中にペリフェラルの値が変更できればいいのだが

稼働中にペリフェラルの値が変更できればいいのだが

ホットプラグイン・デバッグ
リアルタイム・モニタ
解決できます!

ホットプラグイン・デバッグとは?

ホットプラグイン・デバッグとは、システムが稼働中でも電源を切らずにデバッガを接続し、実行状態のままデバッグが可能になる技術です。

リアルタイム・モニタとは?

リアルタイム・モニタとは、システムの稼働状態に影響を与えずに、変数やペリフェラルの値を確認・変更ができる機能です。プログラムの変更も不要です。

2つの技術の組み合わせで止めないデバッグが可能に!

この2つの技術を組み合わせることで、バグが発生しているシステムを止めずにデバッガを接続し、プログラムの状態を確認することができます。
しかし、すべてのデバッガがこれらの機能を持っているわけではありません。

止めないデバッグを実現するデバッガ

JTAGエミュレータ PALMiCE4 パームアイス・フォー

ホットプラグイン・デバッグとリアルタイム・モニタ機能に対応し、止められないシステムのデバッグに威力を発揮する高機能JTAGエミュレータです。

PALMiCE4

ホットプラグイン・デバッグ

  • ターゲットの電源を切らずにPALMiCE4を接続
  • 接続後もプログラムは実行を継続
  • 実行中にリアルタイム・モニタを登録して値を確認可能

PALMiCE4

リアルタイム・モニタ

  • 変数やペリフェラルの値をリアルタイムにグラフ表示
  • 最小10µs間隔で値をサンプリング
  • 実行中に変数の値を書き換え可能
  • データをリアルタイムにファイルに保存

豊富なデバッグ機能

  • C/C++/アセンブラでのデバッグ
  • クィック・インスペクトで簡単に変数表示
  • メモリ、レジスタ、ペリフェラル、コプロの表示変更
  • スタック表示とスタックトレース(コールスタック)
  • マルチコアCPUのコアごとのデバッグ
  • RTOSデバッグ機能
  • バグ検出機能
  • 大容量トレース
  • 4チャンネル簡易ロジアナ

PALMiCE4のサポートコア

ローエンドなMCUからハイエンドなアプリケーションプロセッサまでサポート

  • Cortex-A5/Cortex-A7/Cortex-A8/Cortex-A9/Cortex-A15
  • Cortex-R4(F)/Cortex-R5(F)/Cortex-R7
  • Cortex-M0/Cortex-M0+/Cortex-M3/Cortex-M4(F)/Cortex-M7/Cortex-M33
  • ARM7/ARM9/ARM11
  • Cortex-A53/Cortex-A57/Cortex-A72

PALMiCE4を
使うことによる効果

現場で現象が発生している状態でデバッグできます

「止めると現象が再現しなくなるのでは」という不安を解消し、現場でのデバッグがスムーズに行えます。

プログラムのタイミングに影響を与えずに変数値が確認できます

printfを入れるとタイミングがずれることがありますが、リアルタイム・モニタを使えば、問題なく変数値が確認できます。

プログラムを止めないので通信のタイムアウトも発生しません

プログラムを止めると周辺がタイムアウトする場合でも、止めずにデバッグできます。

稼働中にペリフェラルの値を変更することが可能です

ペリフェラルの設定値を変更することや、ポートの生の値を確認できます。

こんな使い方ができます

PALMiCE4

Case01

リアルタイム・モニタでモータの動きを監視

モータの回転数を設定する変数、実際の回転数、トルク電流を示す変数をグラフで表示しています。モータの回転に合わせてリアルタイムにグラフの確認ができます。

Case02

リアルタイム・モニタで温度センサの確認

稼働中のIoT温度センサにホットプラグインで接続し、温度センサの生の値を確認します。

リアルタイム・モニタの活用例

システムの稼働中にメモリを読み出せる「リアルタイム・モニタ」は様々なシーンで活用できます

  • モーター制御のパラメータ調整に
  • A/D変換値をグラフ表示、オシロスコープの代わりに
  • 通信ポートの監視に
  • センサーの確認調整に

マイクロ・コントローラにリアルタイム・モニタ機能

マイクロ・コントローラ(MCU)はモータやセンサなど時間と共に変化するペリフェラルを制御する必要があります。
リアルタイム・モニタはこのようなペリフェラルの監視には最適な機能です。

PALMiCE4は各社のMCUをサポートしています

  • STMicroelectronics
  • NXP
  • Cypress
  • Nordic
  • Silicon Laboratories
  • Texas Instruments
  • TOSHIBA

STM32で
PALMiCE4を使う

NucleoボードはSWDのコネクタが特殊なので、
ピンに直接接続できるプローブを用意しています。

ホットプラグインを行う場合はGNDから接続します。

STM32Fの内蔵温度センサの値をグラフ表示してみました。
ADCデータ・レジスタの生の値がリアルタイムに表示され、値の変化を確認することができます。

リーズナブルな価格
98,000円より

(税込107,800円)

CPUフルサポートのPALMiCE4は298,000円(税込327,800円)、デバッグ機能はそのままでCortex-Mシリーズに限定した機種は98,000円(税込107,800円)でご用意しています。

PALMiCE4 CM
(Cortex-M専用版)

98,000(税込107,800円)

---

---

Cortex-M0/M0+/M3/M4(F)/M7/M33

---

PALMiCE4 ARM
(Arm32bit版)

298,000(税込327,800円)

Cortex-A5/A7/A8/A9/A15

Cortex-R4(F)/R5(F)/R7

Cortex-M0/M0+/M3/M4(F)/M7/M33

ARM7/ARM9/ARM11

PALMiCE4 ARM64
(Arm64bit版)

298,000(税込327,800円)

Cortex-A53/A57/A72

---

---

---

※デバイス内の32bitプロセッサを
マルチコアデバッグすることは可能

ホットプラグインとリアルタイム・モニタの関連動画

PALMiCE4のリアルタイムモニタ機能

PALMiCE4のホットプラグイン・デバッグ

無償貸出サービス実施中

PALMiCE4を評価・体験していただくために無償貸出を行っています。

無償貸出サービス3つのポイント

ポイント1

テクニカル・サポート付き

ポイント2

「製品版」を体験できます

ポイント3

正式版一式をお貸出し

お気軽にお申込みください。