Hi everyone,
I’m currently using TraceWhisperer on the Husky platform to locate specific instructions in the code I’m analyzing. My project requires me to track more than two instructions, but from the example in the official course notebook (TraceWhisperer.ipynb), it seems that the trace.set_isync_matches
function only allows setting two addresses (addr0
and addr1
).
My questions are:
- Is there any way to configure more than two instruction addresses for ISYNC matching?
- If not, are there any newer tools, methods, or platforms that support this functionality?
Here is part of my current TraceWhisperer configuration:
trace.enabled = True
trace.capture.raw = False
trace.clock.fe_clock_src = 'target_clock'
assert trace.clock.fe_clock_alive, "Hmm, the clock you chose doesn't seem to be active."
trace.trace_mode = 'SWO'
trace.jtag_to_swd() # switch target into SWD mode
acpr = 0
trigger_freq_mul = 8
trace.clock.swo_clock_freq = scope.clock.clkgen_freq * trigger_freq_mul
trace.target_registers.TPI_ACPR = acpr
trace.swo_div = trigger_freq_mul * (acpr + 1)
assert trace.clock.swo_clock_locked, "Trigger/UART clock not locked"
assert scope.userio.status & 0x4, "SWO line not high"
trace.set_pattern_match(0, [3, 8, 32])
trace.capture.rules_enabled = [0]
trace.set_isync_matches(addr0=0x8008c36, addr1=0x8008c78, match="both")
trace.capture.trigger_source = 'firmware trigger'
trace.capture.mode = 'while_trig'
Any help or suggestions would be greatly appreciated!
Thanks in advance!