From 4f01ffe56c43c19b9524cce8074729ad7c8cb12a Mon Sep 17 00:00:00 2001 From: Rafael Silva Date: Sat, 6 Aug 2022 20:44:32 +0100 Subject: [PATCH] misc: change return type of scan routines to size_t --- src/command.c | 10 +++++----- src/include/target.h | 6 +++--- src/platforms/hosted/jlink.h | 4 ++-- src/platforms/hosted/jlink_adiv5_swdp.c | 11 ++++++----- src/platforms/hosted/platform.c | 7 +++---- src/platforms/hosted/stlinkv2.c | 20 +++++++++++--------- src/platforms/hosted/stlinkv2.h | 8 ++++---- src/target/adiv5_swdp.c | 6 +++--- 8 files changed, 37 insertions(+), 35 deletions(-) diff --git a/src/command.c b/src/command.c index 71ffa1d..662bbf8 100644 --- a/src/command.c +++ b/src/command.c @@ -201,7 +201,7 @@ static bool cmd_jtag_scan(target *t, int argc, const char **argv) if (connect_assert_nrst) platform_nrst_set_val(true); /* will be deasserted after attach */ - int devs = -1; + uint32_t devs = 0; volatile struct exception e; TRY_CATCH (e, EXCEPTION_ALL) { #if PC_HOSTED == 1 @@ -242,7 +242,7 @@ bool cmd_swdp_scan(target *t, int argc, const char **argv) if (connect_assert_nrst) platform_nrst_set_val(true); /* will be deasserted after attach */ - int devs = -1; + uint32_t devs = 0; volatile struct exception e; TRY_CATCH (e, EXCEPTION_ALL) { #if PC_HOSTED == 1 @@ -260,7 +260,7 @@ bool cmd_swdp_scan(target *t, int argc, const char **argv) break; } - if (devs <= 0) { + if (devs == 0) { platform_nrst_set_val(false); gdb_out("SW-DP scan failed!\n"); return false; @@ -282,7 +282,7 @@ bool cmd_auto_scan(target *t, int argc, const char **argv) if (connect_assert_nrst) platform_nrst_set_val(true); /* will be deasserted after attach */ - int devs = -1; + uint32_t devs = 0; volatile struct exception e; TRY_CATCH (e, EXCEPTION_ALL) { #if PC_HOSTED == 1 @@ -314,7 +314,7 @@ bool cmd_auto_scan(target *t, int argc, const char **argv) gdb_outf("Exception: %s\n", e.msg); break; } - if (devs <= 0) { + if (devs == 0) { platform_nrst_set_val(false); gdb_out("auto scan failed!\n"); return false; diff --git a/src/include/target.h b/src/include/target.h index 23cc724..fe96562 100644 --- a/src/include/target.h +++ b/src/include/target.h @@ -35,10 +35,10 @@ typedef uint32_t target_addr; struct target_controller; #if PC_HOSTED == 1 -int platform_adiv5_swdp_scan(uint32_t targetid); -int platform_jtag_scan(const uint8_t *lrlens); +uint32_t platform_adiv5_swdp_scan(uint32_t targetid); +uint32_t platform_jtag_scan(const uint8_t *lrlens); #endif -int adiv5_swdp_scan(uint32_t targetid); +uint32_t adiv5_swdp_scan(uint32_t targetid); uint32_t jtag_scan(const uint8_t *lrlens); int target_foreach(void (*cb)(int i, target *t, void *context), void *context); diff --git a/src/platforms/hosted/jlink.h b/src/platforms/hosted/jlink.h index b63e356..a1dd706 100644 --- a/src/platforms/hosted/jlink.h +++ b/src/platforms/hosted/jlink.h @@ -50,7 +50,7 @@ # pragma GCC diagnostic push # pragma GCC diagnostic ignored "-Wunused-parameter" int jlink_init(bmp_info_t *info) { return -1; } -int jlink_swdp_scan(bmp_info_t *info) { return 0; } +uint32_t jlink_swdp_scan(bmp_info_t *info) { return 0; } int jlink_jtagtap_init(bmp_info_t *info, jtag_proc_t *jtag_proc) { return 0; } const char *jlink_target_voltage(bmp_info_t *info) { return "ERROR"; } void jlink_nrst_set_val(bmp_info_t *info, bool assert) { } @@ -97,7 +97,7 @@ enum jaylink_device_capability { int jlink_init(bmp_info_t *info); -int jlink_swdp_scan(bmp_info_t *info); +uint32_t jlink_swdp_scan(bmp_info_t *info); int jlink_jtagtap_init(bmp_info_t *info, jtag_proc_t *jtag_proc); const char *jlink_target_voltage(bmp_info_t *info); void jlink_nrst_set_val(bmp_info_t *info, bool assert); diff --git a/src/platforms/hosted/jlink_adiv5_swdp.c b/src/platforms/hosted/jlink_adiv5_swdp.c index 809ee8f..cc79943 100644 --- a/src/platforms/hosted/jlink_adiv5_swdp.c +++ b/src/platforms/hosted/jlink_adiv5_swdp.c @@ -76,14 +76,14 @@ static int line_reset(bmp_info_t *info) return 0; } -static int jlink_swdptap_init(bmp_info_t *info) +static bool jlink_swdptap_init(bmp_info_t *info) { uint8_t cmd[2] = {CMD_GET_SELECT_IF, JLINK_IF_GET_AVAILABLE}; uint8_t res[4]; send_recv(info->usb_link, cmd, 2, res, sizeof(res)); if (!(res[0] & JLINK_IF_SWD)) - return -1; + return false; cmd[1] = SELECT_IF_SWD; send_recv(info->usb_link, cmd, 2, res, sizeof(res)); @@ -92,14 +92,15 @@ static int jlink_swdptap_init(bmp_info_t *info) /* SWD speed is fixed. Do not set it here*/ - return 0; + return true; } -int jlink_swdp_scan(bmp_info_t *info) +uint32_t jlink_swdp_scan(bmp_info_t *info) { target_list_free(); - jlink_swdptap_init(info); + if (!jlink_swdptap_init(info)) + return 0; uint8_t cmd[44]; memset(cmd, 0, sizeof(cmd)); diff --git a/src/platforms/hosted/platform.c b/src/platforms/hosted/platform.c index 5297622..58268b0 100644 --- a/src/platforms/hosted/platform.c +++ b/src/platforms/hosted/platform.c @@ -135,7 +135,7 @@ void platform_init(int argc, char **argv) } } -int platform_adiv5_swdp_scan(uint32_t targetid) +uint32_t platform_adiv5_swdp_scan(uint32_t targetid) { info.is_jtag = false; platform_max_frequency_set(cl_opts.opt_max_swj_frequency); @@ -156,7 +156,6 @@ int platform_adiv5_swdp_scan(uint32_t targetid) default: return 0; } - return 0; } int swdptap_init(ADIv5_DP_t *dp) @@ -186,7 +185,7 @@ void platform_add_jtag_dev(uint32_t i, const jtag_dev_t *jtag_dev) remote_add_jtag_dev(i, jtag_dev); } -int platform_jtag_scan(const uint8_t *lrlens) +uint32_t platform_jtag_scan(const uint8_t *lrlens) { info.is_jtag = true; @@ -203,7 +202,7 @@ int platform_jtag_scan(const uint8_t *lrlens) return jtag_scan_stlinkv2(&info, lrlens); default: - return -1; + return 0; } } diff --git a/src/platforms/hosted/stlinkv2.c b/src/platforms/hosted/stlinkv2.c index 3070782..dbab3f7 100644 --- a/src/platforms/hosted/stlinkv2.c +++ b/src/platforms/hosted/stlinkv2.c @@ -684,7 +684,7 @@ static int stlink_enter_debug_jtag(bmp_info_t *info) // return id; // } -static int stlink_read_idcodes(bmp_info_t *info, uint32_t *idcodes) +static size_t stlink_read_idcodes(bmp_info_t *info, uint32_t *idcodes) { uint8_t cmd[16] = {STLINK_DEBUG_COMMAND, STLINK_DEBUG_APIV2_READ_IDCODES}; @@ -692,10 +692,10 @@ static int stlink_read_idcodes(bmp_info_t *info, uint32_t *idcodes) send_recv(info->usb_link, cmd, 16, data, 12); if (stlink_usb_error_check(data, true)) return 0; - uint8_t *p = data + 4; - idcodes[0] = p[0] | p[1] << 8 | p[2] << 16 | p[3] << 24; - p += 4; - idcodes[1] = p[0] | p[1] << 8 | p[2] << 16 | p[3] << 24; + uint8_t *p = data + 4U; + idcodes[0] = p[0] | p[1] << 8U | p[2] << 16U | p[3] << 24U; + p += 4U; + idcodes[1] = p[0] | p[1] << 8U | p[2] << 16U | p[3] << 24U; return 2; } @@ -1018,7 +1018,7 @@ static uint32_t stlink_ap_read(ADIv5_AP_t *ap, uint16_t addr) return ret; } -int jtag_scan_stlinkv2(bmp_info_t *info, const uint8_t *irlens) +uint32_t jtag_scan_stlinkv2(bmp_info_t *info, const uint8_t *irlens) { uint32_t idcodes[JTAG_MAX_DEVS+1]; (void) *irlens; @@ -1032,14 +1032,16 @@ int jtag_scan_stlinkv2(bmp_info_t *info, const uint8_t *irlens) /* Check for known devices and handle accordingly */ for(uint32_t i = 0; i < jtag_dev_count; i++) jtag_devs[i].jd_idcode = idcodes[i]; - for(uint32_t i = 0; i < jtag_dev_count; i++) - for(size_t j = 0; dev_descr[j].idcode; j++) + for(uint32_t i = 0; i < jtag_dev_count; i++) { + for(size_t j = 0; dev_descr[j].idcode; j++) { if((jtag_devs[i].jd_idcode & dev_descr[j].idmask) == dev_descr[j].idcode) { if(dev_descr[j].handler) dev_descr[j].handler(i); break; } + } + } return jtag_dev_count; } @@ -1068,7 +1070,7 @@ void stlink_adiv5_dp_defaults(ADIv5_DP_t *dp) dp->mem_write_sized = stlink_mem_write_sized; } -int stlink_swdp_scan(bmp_info_t *info) +uint32_t stlink_swdp_scan(bmp_info_t *info) { target_list_free(); diff --git a/src/platforms/hosted/stlinkv2.h b/src/platforms/hosted/stlinkv2.h index c1d9ad6..e667e06 100644 --- a/src/platforms/hosted/stlinkv2.h +++ b/src/platforms/hosted/stlinkv2.h @@ -32,10 +32,10 @@ int stlink_hwversion(void) { return -1; } const char *stlink_target_voltage(bmp_info_t *info) { return "ERROR"; } void stlink_nrst_set_val(bmp_info_t *info, bool assert) { } bool stlink_nrst_get_val(void) { return true; } -int stlink_swdp_scan(bmp_info_t *info) { return 0; } +uint32_t stlink_swdp_scan(bmp_info_t *info) { return 0; } void stlink_adiv5_dp_defaults(ADIv5_DP_t *dp) { } int stlink_jtag_dp_init(ADIv5_DP_t *dp) { return false; } -int jtag_scan_stlinkv2(bmp_info_t *info, const uint8_t *irlens) { return 0; } +uint32_t jtag_scan_stlinkv2(bmp_info_t *info, const uint8_t *irlens) { return 0; } void stlink_exit_function(bmp_info_t *info) { } void stlink_max_frequency_set(bmp_info_t *info, uint32_t freq) { } uint32_t stlink_max_frequency_get(bmp_info_t *info) { return 0; } @@ -46,10 +46,10 @@ int stlink_hwversion(void); const char *stlink_target_voltage(bmp_info_t *info); void stlink_nrst_set_val(bmp_info_t *info, bool assert); bool stlink_nrst_get_val(void); -int stlink_swdp_scan(bmp_info_t *info); +uint32_t stlink_swdp_scan(bmp_info_t *info); void stlink_adiv5_dp_defaults(ADIv5_DP_t *dp); int stlink_jtag_dp_init(ADIv5_DP_t *dp); -int jtag_scan_stlinkv2(bmp_info_t *info, const uint8_t *irlens); +uint32_t jtag_scan_stlinkv2(bmp_info_t *info, const uint8_t *irlens); void stlink_exit_function(bmp_info_t *info); void stlink_max_frequency_set(bmp_info_t *info, uint32_t freq); uint32_t stlink_max_frequency_get(bmp_info_t *info); diff --git a/src/target/adiv5_swdp.c b/src/target/adiv5_swdp.c index c3f536b..27d3cd5 100644 --- a/src/target/adiv5_swdp.c +++ b/src/target/adiv5_swdp.c @@ -67,7 +67,7 @@ bool firmware_dp_low_write(ADIv5_DP_t *dp, uint16_t addr, const uint32_t data) * If target id given, scan DPs 0 .. 15 on that device and return. * Otherwise */ -int adiv5_swdp_scan(uint32_t targetid) +uint32_t adiv5_swdp_scan(uint32_t targetid) { volatile struct exception e; @@ -83,7 +83,7 @@ int adiv5_swdp_scan(uint32_t targetid) ADIv5_DP_t *initial_dp = &idp; if (swdptap_init(initial_dp)) - return -1; + return 0; /* DORMANT-> SWD sequence*/ initial_dp->seq_out(0xFFFFFFFF, 32); @@ -127,7 +127,7 @@ int adiv5_swdp_scan(uint32_t targetid) } if (e.type || initial_dp->fault) { DEBUG_WARN("No usable DP found\n"); - return -1; + return 0; } }