From c913b7f46f01289fdfcbff8fc5477aa6658bdaa1 Mon Sep 17 00:00:00 2001 From: Wolfgang Draxinger <dw@optores.de> Date: Tue, 20 Aug 2019 12:21:50 +0200 Subject: [PATCH] Added tool to enumerate CMSIS-DAP debugging boards --- tools/ls_cmsis_dap/Makefile | 16 ++++++++++++++++ tools/ls_cmsis_dap/ls_cmsis_dap.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 tools/ls_cmsis_dap/Makefile create mode 100644 tools/ls_cmsis_dap/ls_cmsis_dap.c diff --git a/tools/ls_cmsis_dap/Makefile b/tools/ls_cmsis_dap/Makefile new file mode 100644 index 00000000..3a1fefe7 --- /dev/null +++ b/tools/ls_cmsis_dap/Makefile @@ -0,0 +1,16 @@ +.PHONY: all clean + +all: ls_cmsis_dap-hidraw ls_cmsis_dap-libusb + +clean: + -rm *.o ls_cmsis_dap-hidraw ls_cmsis_dap-libusb + +ls_cmsis_dap.o: ls_cmsis_dap.c + +ls_cmsis_dap-hidraw: LDFLAGS=-lhidapi-hidraw +ls_cmsis_dap-hidraw: ls_cmsis_dap.o + $(CC) $(LDFLAGS) -o $@ $< + +ls_cmsis_dap-libusb: LDFLAGS=-lhidapi-libusb +ls_cmsis_dap-libusb: ls_cmsis_dap.o + $(CC) $(LDFLAGS) -o $@ $< diff --git a/tools/ls_cmsis_dap/ls_cmsis_dap.c b/tools/ls_cmsis_dap/ls_cmsis_dap.c new file mode 100644 index 00000000..fc5c67bc --- /dev/null +++ b/tools/ls_cmsis_dap/ls_cmsis_dap.c @@ -0,0 +1,28 @@ +#include <stddef.h> +#include <stdlib.h> +#include <stdio.h> +#include <hidapi/hidapi.h> + +int main(int argc, char *argv[]) +{ + int rc = 0; + if( (rc = hid_init()) ){ + fprintf(stderr, "hid_init: %d\n", rc); + goto done; + } + + struct hid_device_info *hid_devs = hid_enumerate(0x0d28, 0x0204); + if( !hid_devs ){ + fprintf(stderr, "hid_enumerate: NULL\n"); + rc = 1; goto done; + } + + for( struct hid_device_info *dev = hid_devs; dev ; dev = dev->next ){ + fprintf(stdout, "%s\n", dev->path); + } + +done: + if( hid_devs ){ hid_free_enumeration(hid_devs); } + hid_exit(); + return -1; +} -- GitLab