From 3b6432912d66a465222fe0257b9c3a8e5274ec48 Mon Sep 17 00:00:00 2001 From: Uwe Bonnes Date: Sat, 28 Nov 2020 17:19:00 +0100 Subject: [PATCH] jlink: Catch another error with no target connected. --- src/platforms/hosted/jlink_adiv5_swdp.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/platforms/hosted/jlink_adiv5_swdp.c b/src/platforms/hosted/jlink_adiv5_swdp.c index 4332f60..dd74f6d 100644 --- a/src/platforms/hosted/jlink_adiv5_swdp.c +++ b/src/platforms/hosted/jlink_adiv5_swdp.c @@ -178,7 +178,15 @@ int jlink_swdp_scan(bmp_info_t *info) ADIv5_DP_t *dp = (void*)calloc(1, sizeof(*dp)); if (!dp) /* calloc failed: heap exhaustion */ return 0; - dp->idcode = jlink_adiv5_swdp_low_access(dp, 1, ADIV5_DP_IDCODE, 0); + volatile struct exception e; + TRY_CATCH (e, EXCEPTION_ALL) { + dp->idcode = jlink_adiv5_swdp_low_access(dp, 1, ADIV5_DP_IDCODE, 0); + } + if (e.type) { + DEBUG_WARN("DP not responding for IDCODE! Reset stuck low?\n"); + free(dp); + return 0; + } dp->dp_read = jlink_adiv5_swdp_read; dp->error = jlink_adiv5_swdp_error; dp->low_access = jlink_adiv5_swdp_low_access;