diff --git a/src/jtag/core.c b/src/jtag/core.c index 5dae1775e..45ece3c4c 100644 --- a/src/jtag/core.c +++ b/src/jtag/core.c @@ -63,8 +63,8 @@ const Jim_Nvp nvp_jtag_tap_event[] = { { .name = NULL, .value = -1 } }; -int jtag_trst = 0; -int jtag_srst = 0; +static int jtag_trst = 0; +static int jtag_srst = 0; /** * List all TAPs that have been created. @@ -1250,6 +1250,15 @@ int jtag_add_statemove(tap_state_t goal_state) return ERROR_OK; } +int jtag_get_trst(void) +{ + return jtag_trst; +} +int jtag_get_srst(void) +{ + return jtag_srst; +} + void jtag_set_nsrst_delay(unsigned delay) { jtag_nsrst_delay = delay; diff --git a/src/jtag/jtag.h b/src/jtag/jtag.h index a3e61e3ba..40639dce6 100644 --- a/src/jtag/jtag.h +++ b/src/jtag/jtag.h @@ -243,8 +243,10 @@ struct jtag_tap_event_action_s jtag_tap_event_action_t* next; }; -extern int jtag_trst; -extern int jtag_srst; +/// @returns The current state of TRST. +int jtag_get_trst(void); +/// @returns The current state of SRST. +int jtag_get_srst(void); typedef struct jtag_event_callback_s { diff --git a/src/target/cortex_m3.c b/src/target/cortex_m3.c index d105fe331..efa94ea4f 100644 --- a/src/target/cortex_m3.c +++ b/src/target/cortex_m3.c @@ -544,7 +544,7 @@ int cortex_m3_halt(target_t *target) if (target->state == TARGET_RESET) { - if ((jtag_reset_config & RESET_SRST_PULLS_TRST) && jtag_srst) + if ((jtag_reset_config & RESET_SRST_PULLS_TRST) && jtag_get_srst()) { LOG_ERROR("can't request a halt while in reset if nSRST pulls nTRST"); return ERROR_TARGET_FAILURE; diff --git a/src/target/mips_m4k.c b/src/target/mips_m4k.c index d69a0a0aa..466e0a2d5 100644 --- a/src/target/mips_m4k.c +++ b/src/target/mips_m4k.c @@ -235,7 +235,7 @@ int mips_m4k_halt(struct target_s *target) if (target->state == TARGET_RESET) { - if ((jtag_reset_config & RESET_SRST_PULLS_TRST) && jtag_srst) + if ((jtag_reset_config & RESET_SRST_PULLS_TRST) && jtag_get_srst()) { LOG_ERROR("can't request a halt while in reset if nSRST pulls nTRST"); return ERROR_TARGET_FAILURE;