diff options
Diffstat (limited to 'src/target/etb.c')
-rw-r--r-- | src/target/etb.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/target/etb.c b/src/target/etb.c index 81e20af0..f145f302 100644 --- a/src/target/etb.c +++ b/src/target/etb.c @@ -636,6 +636,7 @@ int etb_start_capture(etm_context_t *etm_ctx) { etb_t *etb = etm_ctx->capture_driver_priv; u32 etb_ctrl_value = 0x1; + u32 trigger_count; if ((etm_ctx->portmode & ETM_PORT_MODE_MASK) == ETM_PORT_DEMUXED) { @@ -650,7 +651,9 @@ int etb_start_capture(etm_context_t *etm_ctx) if ((etm_ctx->portmode & ETM_PORT_MODE_MASK) == ETM_PORT_MUXED) return ERROR_ETM_PORTMODE_NOT_SUPPORTED; - etb_write_reg(&etb->reg_cache->reg_list[ETB_TRIGGER_COUNTER], 0x600); + trigger_count = (etb->ram_depth * etm_ctx->trigger_percent) / 100; + + etb_write_reg(&etb->reg_cache->reg_list[ETB_TRIGGER_COUNTER], trigger_count); etb_write_reg(&etb->reg_cache->reg_list[ETB_RAM_WRITE_POINTER], 0x0); etb_write_reg(&etb->reg_cache->reg_list[ETB_CTRL], etb_ctrl_value); jtag_execute_queue(); |