AIが「実機」をデバッグする時代へ

「AIが組込み開発で実機をデバッグする。」

もう少し先の話だと思われていた技術が、生成AIの進化とMCPの登場によって現実のものとなりました。

PALMiCE4は、AIとデバッガを連携させる「AIアシスト・デバッグ技術」により、新しい実機デバッグのスタイルを提案します。

【2026年12月リリース予定】

組込み開発でのAI活用の壁

実機を扱う組込み開発では、AIの活用が限定的になります。

コード中心

コード中心

コード生成や静的解析が主なAIの活用領域

ログに依存

ログに依存

実機の情報取得はログ出力が中心

未解決のバグ

未解決のバグ

ログだけでは解決できないバグが存在

AIが実機をデバッグできれば、組込み開発はもっと変わる。

AIとデバッガの接続を可能にする「MCP」

AIエージェントには外部ツールと接続する仕組み「MCP(Model Context Protocol)」が用意されています。この技術により、AIがデバッガを操作して実機をデバッグする可能性が見えてきました。

AIはMCPサーバというプログラムを経由して、PALMiCE4の機能を呼び出し、レスポンスを検証して推論を進めることができます。

MCPサーバ

AIによる実機デバッグの実例

日本語による簡単なデバッガ操作から、AIの推論による不具合の原因特定まで。
PALMiCE4を使った実機デバッグの事例をご紹介します。

実例 01
基本操作

日本語の指示でレジスタ情報を取得

AIがPALMiCE4を操作し、CPUを停止してレジスタ値を読み出します。

STEP 01

日本語でデバッガの操作を指示

PALMiCE4を使用してプログラムを停止させ、PC/SP/R0を表示してください。

STEP 02

AIがPALMiCE4を操作

MCPサーバでPALMiCE4の接続を確認し、プログラムを停止してPC・SP・R0を読み取ります。

STEP 03

実機から取得した結果を表示

レジスタ値
PC0x020077A2
SP0x00000000
R00x22001908

停止位置:cpu_idle.c の99行目

日本語の指示だけで、実機の状態を取得

AIがPALMiCE4を操作し、取得したレジスタ情報を表示します。

実例 02
不具合解析

DMAによるメモリ破壊の原因を特定

ソースコードが公開されていない処理を含む不具合を、AIが実機を調査して解析します。

プログラムの概要

バッファの合計値を計算するプログラムに、DMAで時々バッファを壊すバグを仕込みました。原因となるDMAやタイマーのソースコードはAIに公開していません。

実例1のプログラム概要
STEP 01

アプリのバグ調査を指示

main関数で計算しているsumの値が時々おかしくなります。PALMiCE4を使用して実機で原因を見つけてください。

STEP 02

AIがPALMiCE4を操作

PALMiCE4の状態を確認し、mainのsumが崩れる箇所を追います。まずプロジェクトとデバッグ用ツールを確認します。

STEP 03

異常動作を確認、怪しいDMAを発見

異常を再現できました。sumが異常値となり、app_buffer[37]が変化していました。さらにタイマー割り込み内で、バッファ内へ4バイト転送するDMA設定を確認しました。次の転送の前後を比較して、上書き元を確定します。

STEP 04

DMAがメモリ破壊していることを実機で特定

原因は、タイマー割り込みから起動するDMAがapp_bufferを上書きしていることです。 PALMiCE4で実機確認できました。

ヒントの少ない状況でも不具合解析に成功

原因となるソースコードがないメモリ破壊の不具合を、PALMiCE4の逆アセンブル機能などを使って特定できました。

実例 03
マルチコア解析

コアをまたぐメモリ破壊の原因を特定

Linuxが動作するCortex-A53とCortex-M4の間で発生したメモリ破壊を、複数コアの実機情報から追跡します。

プログラムの概要

Linux上で内蔵RAMのテスト(ライト&ベリファイ)を行うアプリに対し、Cortex-M4から時々データを上書きしてエラーを発生させています。AIにはCortex-M4の情報は伝えていません。

実例1のプログラム概要
STEP 01

Linuxアプリのバグ調査を指示

Linux側のメモリテストアプリで不定期にメモリ内容が壊れます。PALMiCE4を使って実機調査し、どのコアのどの命令が、どのアドレスをどの値からどの値へ書き換えたか特定してください。

STEP 02

AIがPALMiCE4を操作

ソースとELF/DWARF、PALMiCE4の接続を確認し、実機で書き込みを捕捉してコア・命令・アドレス・変更前後の値を絞り込みます。

STEP 03

内蔵RAMへの怪しい書き込みを発見、仮説とする

M4の実機命令列に、OCRAMへ値をXORして書く候補命令が見つかりました。

STEP 04

実機で仮説を検証

M4の書き込みを実機で確認しました。A53全コアを停止した状態でストア命令を1命令だけ実行すると、メモリ内容が変化しました。

STEP 05

メモリ破壊の原因はCortex-M4側と結論

書き込みコアCortex-M4
命令アドレス0x1FFE0562
命令STR.W R5,[R7,R8,LSL #2]
関数/ソース位置update_region/ main.c:38
書き込み先M4: 0x20217564、対応するA53物理アドレス: 0x00917564

コアをまたいだ不具合を解析

Cortex-M4の情報は伝えていない状況で、Linux側のアプリ解析に固執せず、Cortex-M4側に問題があることをつきとめました。

よくあるご質問

どのAIエージェントに対応していますか?
MCP(Model Context Protocol)に対応したAIエージェントとの連携を想定しています。 現在、Codex、Claude Code、GitHub Copilot、Google Antigravity、Cursorで動作検証を行っています。 AIエージェントによってMCPへの対応状況や利用できる機能が異なるため、すべてのAIエージェントでの動作を保証するものではありません。 なお、Microsoft 365 Copilotには対応しておりません。
ソースコードはクラウドに送信されますか?
AIエージェントがソースコードを参照し、その内容をクラウド上のAIモデルへ送信する可能性があります。 機密情報を含む開発環境では、利用するAIサービスのデータ取り扱い方針や設定をご確認ください。
AIが勝手に実機を操作するのですか?
AIエージェントは、ユーザからの指示に基づき、PALMiCE4を介して実機を操作します。 このため、MCPサーバには、デバッグ機能ごとに操作を許可・禁止したり、実行前に確認を求めたりする制御機能を設けています。
AIによって結果の信頼性は変わりますか?
はい。AIモデルやAIエージェントの違いによって、解析能力や調査手順、得られる結果が異なる場合があります。 AIは実機から取得した情報を基に原因を推定・検証しますが、その解析結果が常に正しいとは限りません。 AIが提示した結論については、根拠となる実機情報を確認し、最終的には開発者自身が判断する必要があります。
PALMiCE4の標準機能として使えますか?
CSIDEのインストールディスクイメージ内にMCPサーバが含まれていますので、インストールして使用することができます。 ただし、この機能をご使用いただくにはPALMiCE4のユーザ・サポート制度に加入していただく必要があります。
AIアシスト・デバッグを利用するには、AIサービスの契約が必要ですか?
弊社が提供するのは、生成AIそのものではなく、生成AIとPALMiCE4をつなぐ仕組みです。 そのため、ご利用になる生成AIサービスの契約やアカウントの準備は、お客様ご自身で行っていただく必要があります。
また、生成AIサービスの利用料金は、各サービスの契約条件によって異なり、別途費用が発生する場合があります。 なお、弊社が提供するAIアシスト・デバッグ機能については、PALMiCE4のユーザ・サポート制度にご加入いただいている場合、追加料金なしでご利用いただけます。
MCPサーバはどこで動きますか?
PALMiCE4のMCPサーバは、CSIDEと同じローカルのPC上で動作します。 MCPサーバ自体をクラウド上で動作させることはありません。
既存のデバッグ機能はそのまま使えますか?
AIアシスト・デバッグは、PALMiCE4のデバッグ機能をAIエージェントから利用する仕組みです。 従来のPALMiCE4によるデバッグ操作を置き換えるものではなく、開発者自身によるデバッグとAIによる調査を使い分けることを想定しています。
AIにソースコードを公開しなくてもデバッグできますか?
はい。ソースコードをAIに公開しない状態でも、実機から取得したレジスタやメモリの情報、 逆アセンブル結果などを基に、不具合を調査することが可能です。 ただし、解析可能な範囲や精度は、取得できる実機情報や不具合の内容によって異なります。
RTOSやLinuxを使用したシステムにも対応できますか?
PALMiCE4で取得できる実機情報を活用することで、RTOSやLinuxを使用したシステムの不具合調査にも応用できます。 実際にLinuxとRTOSを組み合わせたマルチコア環境で、メモリ破壊の原因を調査した事例があります。
トークン消費はどのぐらいですか?
トークン消費量は、使用するAIモデルやAIエージェント、解析対象の規模、調査内容によって大きく異なります。 特に、ソースコードの解析や実機情報の取得を繰り返すような複雑な調査では、トークン消費量が増加する傾向があります。 そのため、現時点では一律の目安を提示することは困難です。 また、AIサービスの利用料金や利用制限は、各サービスの契約条件によって異なります。
ローカルLLMでも使えますか?
MCPに対応したAIエージェントと、ローカルLLMを組み合わせることで、技術的には利用できる可能性があります。 ただし、実機デバッグではAIによる高度な推論能力が求められますので、使用されるローカルLLMの性能によっては、期待する結果が得られるとは限りません。
AIが原因を特定できなかった場合はどうなりますか?
AIが必ず不具合の原因を特定できるわけではありません。 調査の過程で取得した実機情報や原因候補、検証結果などを参考に、開発者が調査を継続することもできます。 AIによる原因特定だけでなく、不具合調査を支援することも本機能の目的です。

AIによる実機デバッグを、PALMiCE4で

AIアシスト・デバッグの詳細や導入について、お気軽にご相談ください。
評価を希望される方も、こちらからお問い合わせください。