From 4d16ac64d53c78775069e5da706b32fbe44a3085 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Tue, 16 Jun 2015 16:56:32 +0200 Subject: dev2: make GDB server port configurable --- src/platforms/dev2/platform.c | 16 +++++++++++++++- src/platforms/libftdi/gdb_if.c | 6 ++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/platforms/dev2/platform.c b/src/platforms/dev2/platform.c index a62c49e..d55a4f3 100644 --- a/src/platforms/dev2/platform.c +++ b/src/platforms/dev2/platform.c @@ -31,6 +31,8 @@ #include #include +extern int gdb_if_port; + static int serial_fd = -1; static int debug; @@ -72,7 +74,7 @@ void platform_init(int argc, char **argv) int c; char *serial = NULL; - while((c = getopt(argc, argv, "ds:")) != -1) { + while((c = getopt(argc, argv, "ds:p:")) != -1) { switch(c) { case 'd': debug = 1; @@ -80,12 +82,24 @@ void platform_init(int argc, char **argv) case 's': serial = optarg; break; + case 'p': + { + char *tailptr; + gdb_if_port = strtol (optarg, &tailptr, 10); + if (*tailptr) + gdb_if_port = 0; + } + break; } } if(optind != argc) { fprintf(stderr, "too many arguments\n"); abort(); } + if(gdb_if_port == 0) { + fprintf(stderr, "bad server port\n"); + abort(); + } serial_fd = serial_open(serial); if(serial_fd == -1) { diff --git a/src/platforms/libftdi/gdb_if.c b/src/platforms/libftdi/gdb_if.c index ff49b57..c5767e7 100644 --- a/src/platforms/libftdi/gdb_if.c +++ b/src/platforms/libftdi/gdb_if.c @@ -40,6 +40,8 @@ static int gdb_if_serv, gdb_if_conn; +int gdb_if_port = 2000; + int gdb_if_init(void) { #ifdef WIN32 @@ -50,7 +52,7 @@ int gdb_if_init(void) int opt; addr.sin_family = AF_INET; - addr.sin_port = htons(2000); + addr.sin_port = htons(gdb_if_port); addr.sin_addr.s_addr = htonl(INADDR_ANY); assert((gdb_if_serv = socket(PF_INET, SOCK_STREAM, 0)) != -1); @@ -60,7 +62,7 @@ int gdb_if_init(void) assert(bind(gdb_if_serv, (void*)&addr, sizeof(addr)) != -1); assert(listen(gdb_if_serv, 1) != -1); - DEBUG("Listening on TCP:2000\n"); + DEBUG("Listening on TCP:%d\n", gdb_if_port); return 0; } -- cgit v1.2.3