ラズパイを無料でARMコア向けJTAG/SWDアダプタにしてみた

Toshio Kuga/ 4月 3, 2016/ 組み込み, 電子工作/ 0 comments

DSC01890

概要

ラズベリーパイにOpenOCDをインストールして、ARMコアをSWDでデバッグしてみました。

ラズパイにデバッグ環境を構築することによって、以下のようなメリットがあります。
無料!!
・ロボットなどの動体のデバッグが可能
・VNCやSSHを使用することで離れたから場所からリモートデバッグが可能
・VNCやSSHを使用することでローカルPCにインストールせずにデバッグが可能
 

スポンサードリンク

その前に

JTAG

JTAG(ジェイタグ)は、IEEE1149.1で規定されている規格です。
プリント基板検査のための規格でしたが、現在はCPUのデバッグに使用されています。
つまり、JTAG信号を使用してCPUのメモリやレジスタにアクセスしたりすることができます。

 

SWD

JTAGには4本も信号線が必要になるため、2本線でアクセスできるように開発された規格です。

 

環境構築

環境構築は、こちらのページをご覧ください。
[nlink url=”http://g-action.gack2u.com/raspberry-pi-openocd/”]

 

テスト

ターゲットとの接続

ターゲットは、STMicro NUCLEO-F030R8を使用します。

/usr/local/share/openocd/scripts/boardに対応しているボードが確認できます。
スクリーンショット 2016-04-02 21.40.29

以下のように結線します。

信号 Raspberry Pi Nucleo
GND pin20(GND) CN4 pin3
SWDIO pin18(GPIO24) CN4 pin4
SWCLK pin22(GPIO25) CN4 pin2
Reset pin12(GPIO18) CN4 pin5
3.3V (Require) pin1(+3.3V) CN4 pin1

ボード設定

STMicro NUCLEO-F030R8では、以下のようにボードを設定する必要があります。
ご使用するボードでもデバッグインターフェースや電源供給設定は必要となる可能性があります。

JP1: ジャンパ未接続
JP5: U5V側へジャンパ(1-2)
CN2: ジャンパ1-2/3-4接続

 

OpenOCDのcfgファイル作成

ラズベリーパイで制御するためのcfgファイルを作成します。

OpenOCDは、Nucleoボードに対応しているのですが、修正する必要があります。

 

OpenOCD実行

下記コマンドでOpenOCDを起動します。

 

接続に成功すると、以下のようなメッセージが表示されます。

スクリーンショット 2016-04-03 0.40.06

 

telnetから制御

telnetからOpenOCDを制御できます。
telnetがインストールされていない場合は、telnetをインストールしてください。
sudo apt-get install telnet

スクリーンショット 2016-04-03 0.42.20

 

コマンドは以下のようなものがあります。

コマンド 説明
targets ターゲットの情報を表示します
halt ターゲットプログラムを停止させます
resume ターゲットプログラムを再開させます

コマンド詳細は下記をご覧ください。
http://openocd.org/doc/html/General-Commands.html

 

GDBから制御

下記コマンドでgdbから制御できます。
gdbがインストールされていない場合は、gdbをインストールしてください。
sudo apt-get install gdb-arm-none-eabi

 

コマンドは以下のようなものがあります。

コマンド 説明
info reg レジスタを表示します
load ターゲットにプログラムをロードします
list ブレークしている行の周辺を表示します

コマンド詳細は下記をご覧ください。(よく使用するコマンド)
http://www.kumikomi.net/interface/sample/201503/if03_100.pdf
※ help allで全コマンドが表示されます。

スクリーンショット 2016-04-03 0.43.13

 

「くがとしお」的 まとめ

無料でARMコアのデバッグ環境を構築できました。
OpenOCDで対応しているボードであれば、同様の手順でデバッグできると思います。

無料でデバッグ環境が構築できるメリットは大きいと思います。
前回の記事でも思いましたが、やはりいい感じのGUIが欲しいですね。

では!(^^)/

Leave a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">
*
*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)