1.9 KiB
Debugging on zedboard
zedboard
is the Xilinx Zynq-7000
development board.
Requirements [TBC]:
OpenOCD
arm-none-eabi-gdb
Steps
TODO: discuss this with paul
- Set Zedboard
boot mode
to JTAG and connect debugging PC to zedboard JTAG and UART USB port. TODO: what is which port, use distinct name/add a graphic - On PC connected to zedboard JTAG USB port:
openocd -f board/digilent_zedboard.cfg
If you have one around, load bitstream at startup (go get a coffee, takes time with onboard JTAG, blue LED lights up when done):
openocd -f board/digilent_zedboard.cfg -c "init" -c "pld load 0 system.bit"
- To use JTAG Boot for the OBSW, you first need to run the FSBL once.
On build PC (adapt IP if different from debugging PC) in the folder where you build the FSBL as above:
arm-none-eabi-gdb fsbl.elf
>target extended-remote localhost:3333
>load
>cont
>^C^D^D
(Optional) Automate this run:
arm-none-eabi-gdb fsbl.elf -iex "target extended-remote localhost:3333" -ex "set pagination off" -ex "load" -ex "break FsblHandoffJtagExit" -ex "cont" -ex="set confirm off" -ex "exit"
It will exit after the Zynq is configured and ready to firmware.
Then load the actual OBSW, in the build (build_cli
in the example above) folder run:
arm-none-eabi-gdb romeo-obsw
>target extended-remote localhost:3333
>load
>cont
Again, Command Line Interface (CLI) commands
can be moved to the GNU Debugger (DGB) call. Also, a small function is used as marker to return from GDB if the mission code returns (should not happen in production but might be useful during testing).
arm-none-eabi-gdb romeo-obsw -iex "target extended-remote localhost:3333" -ex "set pagination off" -ex "load" -ex "break done" -ex "cont" -ex="set confirm off" -ex "exit"
UART USB port should output something at 115200baud
, (I use moserial to monitor).