From 47731c68d22fe67a9ed5581b50ea1af2c2e7f971 Mon Sep 17 00:00:00 2001 From: Palmer Dabbelt Date: Wed, 30 May 2018 02:22:59 -0700 Subject: If we don't know which thread should be halted then just don't set one --- src/target/riscv/riscv.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/target/riscv/riscv.c b/src/target/riscv/riscv.c index a271764..0de8f5c 100644 --- a/src/target/riscv/riscv.c +++ b/src/target/riscv/riscv.c @@ -1121,9 +1121,12 @@ int riscv_openocd_halt(struct target *target) register_cache_invalidate(target->reg_cache); if (riscv_rtos_enabled(target)) { - LOG_DEBUG(" current RTOS hartid is %d", r->rtos_hartid); - target->rtos->current_threadid = r->rtos_hartid + 1; - target->rtos->current_thread = r->rtos_hartid + 1; + if (r->rtos_hartid == -1) { + LOG_DEBUG("halt requested on RTOS hartid %d", r->rtos_hartid); + target->rtos->current_threadid = r->rtos_hartid + 1; + target->rtos->current_thread = r->rtos_hartid + 1; + } else + LOG_DEBUG("halt requested, but no known RTOS hartid"); } target->state = TARGET_HALTED; -- cgit v1.1