From 1bd04c459f926514d34c7670bef7a57e7070b56c Mon Sep 17 00:00:00 2001 From: cnlohr Date: Mon, 2 Dec 2024 18:10:45 -0800 Subject: [PATCH 1/3] Update GDB Port to 3333 --- ch32v003fun/ch32v003fun.mk | 2 +- minichlink/microgdbstub.h | 2 +- minichlink/minichgdb.c | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ch32v003fun/ch32v003fun.mk b/ch32v003fun/ch32v003fun.mk index 81e0347c..b4d0732a 100644 --- a/ch32v003fun/ch32v003fun.mk +++ b/ch32v003fun/ch32v003fun.mk @@ -213,7 +213,7 @@ gdbserver : -$(MINICHLINK)/minichlink -baG gdbclient : - gdb-multiarch $(TARGET).elf -ex "target remote :2000" + gdb-multiarch $(TARGET).elf -ex "target remote :3333" clangd : make clean diff --git a/minichlink/microgdbstub.h b/minichlink/microgdbstub.h index e0608f07..3b9b5745 100644 --- a/minichlink/microgdbstub.h +++ b/minichlink/microgdbstub.h @@ -13,7 +13,7 @@ * 4: If you want to let this manage the server as a network device, simply #define MICROGDBSTUB_SOCKETS * * To connect to your GDBStub running, you can: - * gdb-multiarch -ex 'target remote :2000' ./blink.elf + * gdb-multiarch -ex 'target remote :3333' ./blink.elf * */ diff --git a/minichlink/minichgdb.c b/minichlink/minichgdb.c index 31c8d4b8..b1fd5913 100644 --- a/minichlink/minichgdb.c +++ b/minichlink/minichgdb.c @@ -1,14 +1,14 @@ // This file is loosely based on aappleby's GDBServer. // Connect in with: -// gdb-multiarch -ex "set debug remote 1" -ex "target extended-remote :2000" ./blink.elf -// gdb-multiarch -ex "target extended-remote :2000" ./blink.elf +// gdb-multiarch -ex "set debug remote 1" -ex "target extended-remote :3333" ./blink.elf +// gdb-multiarch -ex "target extended-remote :3333" ./blink.elf #include "minichlink.h" #define MICROGDBSTUB_IMPLEMENTATION #define MICROGDBSTUB_SOCKETS -#define MICROGDBSTUB_PORT 2000 +#define MICROGDBSTUB_PORT 3333 const char* MICROGDBSTUB_MEMORY_MAP = "l" "" From da502576f92263beb3a520dee56cabf0dda4872f Mon Sep 17 00:00:00 2001 From: cnlohr Date: Mon, 2 Dec 2024 18:12:19 -0800 Subject: [PATCH 2/3] Update mini vs code projects to use 3333 --- examples/debugprintfdemo/.vscode/launch.json | 2 +- examples/template/.vscode/launch.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/debugprintfdemo/.vscode/launch.json b/examples/debugprintfdemo/.vscode/launch.json index f0b578dd..6dbbd516 100644 --- a/examples/debugprintfdemo/.vscode/launch.json +++ b/examples/debugprintfdemo/.vscode/launch.json @@ -21,7 +21,7 @@ ], "svdPath": "${workspaceFolder}/../../misc/CH32V003xx.svd", // extension 'Peripheral Viewer' by mcu-debug (cortex-debug) "miDebuggerPath": "gdb-multiarch", - "miDebuggerServerAddress": "127.0.0.1:2000", + "miDebuggerServerAddress": "127.0.0.1:3333", }, { "name": "Flash and run in terminal", diff --git a/examples/template/.vscode/launch.json b/examples/template/.vscode/launch.json index e86da74b..b397c7f9 100644 --- a/examples/template/.vscode/launch.json +++ b/examples/template/.vscode/launch.json @@ -21,7 +21,7 @@ ], "svdPath": "${workspaceFolder}/../../misc/CH32V003xx.svd", // extension 'Peripheral Viewer' by mcu-debug (cortex-debug) "miDebuggerPath": "gdb-multiarch", - "miDebuggerServerAddress": "127.0.0.1:2000", + "miDebuggerServerAddress": "127.0.0.1:3333", }, { "name": "Flash and run in terminal", From c4377f03e4670c368a4286d76cb31f0ecf1d667f Mon Sep 17 00:00:00 2001 From: cnlohr Date: Mon, 2 Dec 2024 18:39:45 -0800 Subject: [PATCH 3/3] Update minichlink executable. --- minichlink/minichlink.exe | Bin 126976 -> 126976 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/minichlink/minichlink.exe b/minichlink/minichlink.exe index 31e825bcac3fe68bc6061de20b64aea72cf3c2ad..1cdb8959655789374361993c1763e6f2930e1f05 100755 GIT binary patch delta 22940 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 delta 22775 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