プロなみJTAGデバッグを個人でも! オープンソースOpenOCD入門

特設
第
1章
ビギナほど超重要! フリー・デバッガ入門
ありのままのプログラムをデバッグ OK! 安くてうれしい
プロなみJTAGデバッグを個人でも!
オープンソース OpenOCD 入門
村井 和夫
パソコン ポート番号:4444
CPUボード
CPU
JTAG/
SWD
TCP
OpenOCD
JTAG
インター
フェース
経路1
USB
GDBのコマンドをOpenOCDの
コマンドに変換する
ターミナル・
ソフト
使い方①:直接OpenOCDの
コマンドで操作する
GDBの操作はターミナル・ソフトから行う
GDBサーバ
TCP
経路2
GDB
使い方②:GDB経由で動かす
(特集で手順を紹介)
ポート番号:3333
図 1 プロなみ JTAG デバッグが個人でも! 汎用オープンソース・デバッガ・ソフトウェア OpenOCD のはたらき
JTAGデバッグが個人でもできる時代に
● ありのままのプログラムをデバッグするのは
簡単じゃなかった…
JTAG や SWD のように CPU のハードウェア支援機
能を使ったデバッグでは,プロセッサを停止させた
り,ターゲット・プログラムに常駐コードを必要とし
たりすることはありません.ターゲット・プログラム
が実際に動く環境のままプログラムを動作させて,
JTAG ポートを CPU のプローブのように使って外部
から制御します.そのため,ROM 化されたソフト
ウェアでもデバッグできるなど,実際のプログラムを
動作させる環境と同じ環境でデバッグできます.
企業の製品開発では,ソフトウェアを効率よく開発
するために,このようなハードウェア支援のあるデ
バッグ環境を使用します。
しかしこれには,通常高価な CPU メーカ専用のデ
バッグ装置を必要で,個人ユーザには手が届きにくい
ものでした.
● なんと JTAG が OK! オープンソースのデバッ
ガ・ソフト OpenOCD 登場
OpenOCD(On Chip Debuger)は,JTAG/SWD な
どの CPU や SoC 上のデバッグ端子を使ったオープン
ソースのデバッガ・ソフトウェアです.これにより,
個人でもハードウェア支援を使ったデバッグが手軽に
できるようになりました.はたらきを図 1 に示します.
OpenOCDは,ドイツUniversity of Applied Sciences
Augsburg の Dominic Rath 氏の論文の一部として開
96
発 さ れ ま し た. 当 初 は,ARM7/ARM9 の JTAG デ
バッガとして作成されましたが,その後,オープン
ソ ー ス・ コ ミ ュ ニ テ ィ に よ っ て 開 発 が 進 み, 現 在
SWD や CMSIS-DAP など,多様なインターフェース
や CPU がサポートされるようになっています.
● JTAG アダプタの違いは OpenOCD で吸収し
てくれる
USB-JTAG の イ ン タ ー フ ェ ー ス に は い ろ い ろ な
ハードウェア(アダプタ)が使われます.従来は,ア
ダプタによって個別のソフトウェアが必要でした.
OpenOCD では,主だった JTAG インターフェース・
アダプタに対応して,その違いを吸収してくれます.
● さらに…ARMチップの違いは標準CMSIS-DAP
で吸収してくれる
しかし,これでもアダプタごとに個別の対応が必要
に な っ て し ま い ま す. そ こ で,ARM は 標 準 規 格
CMSIS の 中 で,USB か ら デ バ ッ グ す る た め の 規 格
CMSIS-DAP を 取 り 決 め ま し た. こ れ に 準 拠 し た
JTAG インターフェース・アダプタであれば,パソコ
ン上の OpenOCD からは,CMSIS インターフェース
を指定するだけで同じように利用できます.
OpenOCD の使い方
● OpenOCD の役割
OpenOCD は,JTAG インターフェース・アダプタ
を使って,いろいろな CPU のデバッグができるよう
なソフトウェアです.
2015 年 3 月号