JTAG UART connection fails after running load in gdb
I'm using Quartus 23.4 (I can't upgrade to a later version) and wanted to run GDB.
I followed the NIOS V processor example and was able to get the Ashling GDB Server and GDB running.
I'm running gdb-server as:
ash-riscv-gdb-server --device 0343B0DD --auto-detect true --probe-type usb-blaster-2 --core-number 0 --jtag-frequency auto-adjust --gdb-port 54321
I'm running gdb as:
/opt/intelFPGA_pro/23.4/riscfree/toolchain/riscv32-unknown-elf/bin/riscv32-unknown-elf-gdb /path/to/exec.elf
Running
(gdb) target remote:54321
I see the GDB server respond with
Got a debugger connection from 127.0.0.1 on port 54321.
If then run
(gdb) continue
I can connect via a JTAG UART interface and communicate to my device.
If I hit Ctrl-C in gdb, I can no longer communicate with the device. But if I run:
(gdb) continue
I can then communicate with the device again via JTAG UART.
However, I want to set a breakpoint which requires loading the exec.elf in gdb.
If I run
(gdb) load
The program successfully loads and I can set a breakpoint.
However, if I run:
(gdb) continue
I can no longer communicate with the device over a JTAG UART connection.
If I only run `(gdb) load` and don't set any breakpoints, I still cannot communicate over JTAG UART.
The JTAG UART communication only fails after running (gdb) load.
Please let me know if you need any other information to help fix the issue. Thanks for the help!