Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
dt_openocd [2014/02/12 21:30] yusa |
dt_openocd [2014/06/27 09:35] (current) beckmanf added flyswatter usb configuration |
||
|---|---|---|---|
| Line 20: | Line 20: | ||
| <code> | <code> | ||
| git clone git://git.code.sf.net/p/openocd/code openocd-code | git clone git://git.code.sf.net/p/openocd/code openocd-code | ||
| + | </code> | ||
| + | |||
| + | Install the libusb-1.0 package | ||
| + | |||
| + | <code> | ||
| + | sudo apt-get install libusb-1.0-0-dev | ||
| + | ./bootstrap | ||
| + | ./configure --prefix=$HOME/site | ||
| + | make | ||
| + | make install | ||
| + | </code> | ||
| + | |||
| + | Add the file /etc/udev/rules.d/52-flyswatter.rules. This will make the usb device accessible without root permissions. | ||
| + | |||
| + | <code> | ||
| + | # Flyswatter JTAG Debugger | ||
| + | SUBSYSTEMS=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6010", MODE="0666" | ||
| </code> | </code> | ||
| Line 153: | Line 170: | ||
| reg [NAME] [VALUE] | reg [NAME] [VALUE] | ||
| </code> | </code> | ||
| + | |||
| === Debugging with gdb === | === Debugging with gdb === | ||
| - | Follows soon... | + | If you want to debug your hardware more comfortable you are able to use gdb. |
| + | You should use the gdb provided by your Toolchain. For example mipsel-none-elf-gdb for a MIPS architecture. | ||
| + | <code> | ||
| + | mipsel-none-elf-gdb main.elf | ||
| + | </code> | ||
| + | |||
| + | |||
| + | Connect to the gdbserver on the local pc using port 3333. | ||
| + | |||
| + | <code> | ||
| + | (gdb) target remote localhost:3333 | ||
| + | </code> | ||
| + | |||
| + | Send commands to gdbserver using the monitor command | ||
| + | |||
| + | <code> | ||
| + | (gdb) monitor reset halt | ||
| + | </code> | ||
| + | |||
| + | Now the hardware performs a reset and halts directly. You can use gdb as normal: | ||
| + | |||
| + | You can list the source code: | ||
| + | |||
| + | <code> | ||
| + | (gdb) list | ||
| + | </code> | ||
| + | |||
| + | Set breakpoints (e.g. at line 27) | ||
| + | |||
| + | <code> | ||
| + | (gdb) br 27 | ||
| + | </code> | ||
| + | |||
| + | Run the program until the next breakpoint occurs. | ||
| + | |||
| + | <code> | ||
| + | (gdb) continue | ||
| + | </code> | ||
| + | |||
| + | Walk step by step through your source code | ||
| + | |||
| + | <code> | ||
| + | (gdb) next | ||
| + | </code> | ||
| + | |||
| + | or print variable content | ||
| + | |||
| + | <code> | ||
| + | (gdb) print [var] | ||
| + | </code> | ||