This is the way I got OpenOCD working to program Freedom board (Kinetis KL25) using patches from Nemui San: http://nemuisan.blog.bai.ne.jp/?cid=8604 (どうもありがとうございました!)
$ git clone http://repo.or.cz/r/openocd.git
Execute the bootstrap:
$ cd openocd
$ sh bootstrap
If you receive this error message:
bootstrap: Error: libtool is required
Then install libtool:
$ sudo apt-get install libtool
If you receive this error message:
bootstrap: 27: bootstrap: aclocal: not found
Then install automake:
$ sudo apt-get install automake
Apply the patches to openocd:
$ patch -p1 < ../nemui/openocd_20130412_nemui.patch
$ patch -p1 < ../nemui/kinetis_kl.patch
Run configure passing this parameters:
$ ./configure --enable-internal-jimtcl --enable-maintainer-mode --disable-werror --disable-shared --enable-stlink --enable-jlink --enable-rlink --enable-vslink --enable-ti-icdi --enable-remote-bitbang --enable-usb-blaster --enable-presto --enable-osbdm
If you receive this error message:
checking for usb.h... no
configure: error: libusb or libusb-1.0 are required to build some OpenOCD driver(s)
Then install libusb and libusb-1.0 (yes, both! Not one OR other as suggested above) :
$ sudo apt-get install libusb-dev
$ sudo apt-get install libusb-1.0-0-dev
Compile it:
$ make
If you receive this error message:
/comum/workspace/kinetis/openocd/openocd/missing: linha 52: makeinfo: comando não encontrado
WARNING: `makeinfo' is missing on your system. You should only need it if
you modified a `.texi' or `.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy `make' (AIX,
DU, IRIX). You might want to install the `Texinfo' package or
the `GNU make' package. Grab either from any GNU archive site.
make[2]: ** [openocd.info] Erro 1
The install texinfo:
$ sudo apt-get install texinfo
Now finally install OpenOCD:
$ sudo make install
I used STM32F4Discovery (stlink-v2) as SWD programmer, this is the command line I used:
# openocd -f interface/stlink-v2.cfg -f target/kl25z_hla_flash.cfg -c "mt_flash nuttx.elf"
Open On-Chip Debugger 0.8.0-dev-00011-g70a2ffa-dirty (2013-05-22-15:19)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.sourceforge.net/doc/doxygen/bugs.html
none separate
Info : add flash_bank kinetis pflash
Info : This adapter doesn't support configurable speed
Info : STLINK v2 JTAG v17 API v2 SWIM v0 VID 0x0483 PID 0x3748
Info : Target voltage: 2.904142
Info : kl25z.cpu: hardware has 2 breakpoints, 2 watchpoints
target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x61000000 pc: 0x00000410 msp: 0x1ffffa14
Rize up to Internal PLLed Clock!
auto erase enabled
Info : Probing flash info for bank 0
Info : Padding image section 0 with 832 bytes
Warn : flash configuration field erased, please reset the device
Warn : Kinetis L Series supports Program Longword execution only.
wrote 31744 bytes from file nuttx.elf in 223.414917s (0.139 KiB/s)
verified 30798 bytes in 0.676004s (44.491 KiB/s)
shutdown command invoked
I need to investigate why it is too slow, last time I tested OpenOCD it was more than 15x faster.
You need to download the patches files reference above from this link: http://www.4shared.com/archive/a8zOGeNp/nemuitar.html
Note: I soldered also the 3V pin from STM32F4Discovery on pin 1 of Freedom board. To use it I need to remove the mini-USB cable from STM32F4Discovery and from Freedom board, then I connected the mini-USB to Freedom board and then connect the mini-USB of STM32F4Discovery and finally remove the mini-USB from Freedom board. After that I can run the above command.