diff options
author | drath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60> | 2007-08-16 13:12:48 +0000 |
---|---|---|
committer | drath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60> | 2007-08-16 13:12:48 +0000 |
commit | cb6ebced3df72668091d5920fef3fbc46ddbc7ac (patch) | |
tree | fd4ee89fee961ae6251184a9b21b0168aaedbaf6 /src/target/etb.c | |
parent | c35cc0b8b7463148fd6110a6357e0d141db0e247 (diff) | |
download | riscv-openocd-cb6ebced3df72668091d5920fef3fbc46ddbc7ac.zip riscv-openocd-cb6ebced3df72668091d5920fef3fbc46ddbc7ac.tar.gz riscv-openocd-cb6ebced3df72668091d5920fef3fbc46ddbc7ac.tar.bz2 |
- update jtag_speed setting when changing it during runtime with a FT2232 based interface
- use 'etm trigger_percent' setting when programming ETB trigger count
- fixed some small bugs in ETM trace analysis
- fixed minor bug in flash writing (thanks to Pavel Chromy)
git-svn-id: svn://svn.berlios.de/openocd/trunk@197 b42882b7-edfa-0310-969c-e2dbd0fdcd60
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 81e20af..f145f30 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(); |