README update regarding debugging

This commit is contained in:
Ulrich Mohr 2023-12-01 13:45:42 +01:00
parent 96091b97af
commit 55d0e6a90b
2 changed files with 26 additions and 5 deletions

View File

@ -14,7 +14,9 @@ Requirements [TBC]:
- arm-none-eabi-gcc
```sh
cmake -DFSFW_OSAL=freertos -DFSFW_ADD_HAL=OFF -DCMAKE_TOOLCHAIN_FILE=../bsp_z7/cmake/arm-none-eabi.toolchain ..
mkdir build_cli
cd build_cli
cmake -DCMAKE_TOOLCHAIN_FILE=../bsp_z7/cmake/arm-none-eabi.toolchain ..
```
# Debugging on zedboard
@ -23,7 +25,7 @@ Requirements [TBC]:
- OpenOCD
- arm-none-eabi-gdb
Connect to zedboard jtag and uart usb port.
Set Zedboard boot mode to jtag and connect debugging PC to zedboard jtag and uart usb port.
On PC connected to zedboard jtag usb port:
```sh
@ -32,7 +34,7 @@ openocd -f board/digilent_zedboard.cfg
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):
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
@ -41,12 +43,24 @@ arm-none-eabi-gdb fsbl.elf
>^C^D^D
```
Then load the actual obsw:
You can automate this run:
```sh
arm-none-eabi-gdb fsbl.elf
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-obws
>target extended-remote localhost:3333
>load
>cont
```
Again, cli commands can be moved to the gdb 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).

View File

@ -169,6 +169,11 @@ void testIp();
void rust_main();
// Marker for debugging sessions
__attribute__ ((noinline)) void done() {
asm ("");
}
void mission(void *) {
// printf("Starting Mission\n");
@ -179,6 +184,8 @@ void mission(void *) {
// printf("Started Tasks, deleting init task\n");
done();
vTaskDelete(NULL);
}
/*-----------------------------------------------------------*/