OpenOCD

  • 概要

    ARM では jtag の通信方式なども公開しています。この情報を用いて、フリーの jtag ツールも有志により公開されています。その一つの実装が OpenOCD になります。

  • OpenOCD の仕組み


    この図では Eclipse と組み合わせていますが、もちろん単体でも使うことが出来ます。ただ、Eclipse と組み合わせた統合環境で使うと真価を発揮すると考えます。

    • サーバとしての働き
      OpenOCD は大まかに言うと、TCP, telnet のサーバと JTAG のピンドライバの機能があることが判ります。

    • telnet server
      telnet server は OpenOCD にコマンドを与えるために使われます。default では 4444 がポート番号として設定されています。

    • TCP server
      gdb と通信するために設けられています。default では 3333 がポート番号として設定されています。

    • ピンドライバ
       JTAG を動作させるためには JTAGの動作タイミングの通りに I/O ピンをドライブしなければいけません。これは対象となるチップ毎にクロックのタイミングやメモリマップの違いなどがあるので個別に設定出来るようになっています。

  • OpenOCD のインストール

     Mac用の OpenOCD は ports から簡単にインストールすることが出来ます。まだ、ports を使っていない人はこの機会に導入されることをお奨めします。