forked from ROMEO/obsw
54 lines
1.9 KiB
Markdown
54 lines
1.9 KiB
Markdown
|
|
# Debugging on `zedboard`
|
|
`zedboard` is the `Xilinx Zynq-7000` development board.
|
|
## Requirements [TBC]:
|
|
- `OpenOCD`
|
|
- `arm-none-eabi-gdb`
|
|
|
|
## Steps
|
|
TODO: discuss this with paul
|
|
1. 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
|
|
2. On PC connected to zedboard JTAG USB port:
|
|
```sh
|
|
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):
|
|
```sh
|
|
openocd -f board/digilent_zedboard.cfg -c "init" -c "pld load 0 system.bit"
|
|
```
|
|
|
|
3. 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:
|
|
```sh
|
|
arm-none-eabi-gdb fsbl.elf
|
|
>target extended-remote localhost:3333
|
|
>load
|
|
>cont
|
|
>^C^D^D
|
|
```
|
|
|
|
### (Optional) Automate this run:
|
|
```sh
|
|
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:
|
|
```sh
|
|
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).
|
|
```sh
|
|
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).
|