Raspberry Pi 3でOpenOCDをビルドしてみた。

$ git clone git://repo.or.cz/openocd.git
$ cd openocd/
$ ./bootstrap
$ ./configure --enable-sysfsgpio --enable-bcm2835gpio
$ make -j4

上記コマンドを実行する。ビルドにそんなに時間はかからなかったと思う。終わったら、tarに固めて、手元にあるRaspberry Pi Zero Wに転送して、使った。

秋月のAE-TYBLE16のFlashを読み取るのには成功したと思う。書き込みはまだ試していない。ちなみに、openocd.cfgの内容は下記の通り。Raspberry Pi Zero Wなので、初代RasPiと同じCPUを積んでいて、GPIOのメモリアドレスは初代のものを使う。adafruitの記事を真似て書いた。そちらの記事にも書いてあるが、下記のopenocd.cfgだと、SWDIOがBCM24ピン、SWDCLKがBCM25ピンになる。なお、Raspberry Pi 2以降で使う別のファイルであるinterface/raspberrypi2-native.cfgだと標準でSWDのピンが選ばれていたと思うので、openocd.cfgでわざわざ指定しなくてもSWDIOがBCM24ピン、SWDCLKがBCM25ピンになるはず。(2019年1月追記:ピンヘッダでは18ピンと22ピンになる)

source [find interface/raspberrypi-native.cfg]
transport select swd
bcm2835gpio_swd_nums 25 24
bcm2835gpio_trst_num 7
bcm2835gpio_srst_num 18
source [find target/nrf51.cfg]

Debianのopenocdパッケージのソースを見てみたが、普通に--enable-bcm2835gpioってconfigureのフラグに普通にあったので、多分RasPiで使える。

時間がない方や急いでいる人は、Debian(もしかしたらRaspbianも?)のパッケージをインストールすると良いかもしれない。試していないので、動くかどうかはよくわからない。