diff options
author | Palmer Dabbelt <palmer@dabbelt.com> | 2018-05-30 02:22:59 -0700 |
---|---|---|
committer | Palmer Dabbelt <palmer@dabbelt.com> | 2018-05-30 02:22:59 -0700 |
commit | 47731c68d22fe67a9ed5581b50ea1af2c2e7f971 (patch) | |
tree | f27b9a0c71b411eb5f77b7b8bac23c7a9d747b4d | |
parent | ab5dbc6168082f1a76f6986cda145d656973036b (diff) | |
download | riscv-openocd-47731c68d22fe67a9ed5581b50ea1af2c2e7f971.zip riscv-openocd-47731c68d22fe67a9ed5581b50ea1af2c2e7f971.tar.gz riscv-openocd-47731c68d22fe67a9ed5581b50ea1af2c2e7f971.tar.bz2 |
If we don't know which thread should be halted then just don't set one
-rw-r--r-- | src/target/riscv/riscv.c | 9 |
1 files 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; |