async def target_single_step(self): assert self._is_halted # ARM7TDMI has an erratum which causes a watchpoint unit that signals a breakpoint on two # consecutive cycles to not flag the second cycle correctly. (ARM7TDMI-S Errata List §5.1) # To work around this, we first set up watchpoint unit 1 to trigger on the current PC, # and then set up watchpoint unit 0 to trigger on anything but current PC. This makes # consecutive single stepping work, but could still fail if unit 1 was used to enter # debug mode prior to this call to `.target_single_step()`.
https://files.mastodon.social/media_attachments/files/114/456/994/226/274/587/original/a68a19cc02be8919.png