Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_all_str(self):
assert convert_vector_catch('all') == Target.VectorCatch.ALL
except exceptions.TransferError:
self.flush()
with Timeout(5.0) as t_o:
while t_o.check():
try:
self._ap.dp.init()
self._ap.dp.power_up_debug()
dhcsr_reg = self.read32(CortexM.DHCSR)
if (dhcsr_reg & CortexM.S_RESET_ST) == 0:
break
self.flush()
except exceptions.TransferError:
sleep(0.01)
self.session.notify(Target.EVENT_POST_RESET, self)
except exceptions.TransferError:
self.flush()
with Timeout(5.0) as t_o:
while t_o.check():
try:
dhcsr_reg = self.read32(CortexM.DHCSR)
if (dhcsr_reg & CortexM.S_RESET_ST) == 0:
break
except exceptions.TransferError:
self.flush()
self._ap.dp.init()
self._ap.dp.power_up_debug()
sleep(0.01)
self.session.notify(Target.EVENT_POST_RESET, self)
def __init__(self, session, core_number=0):
"""! @brief Constructor.
@param self
@param session The Session instance.
@param core_number The number of the core being traced. Default is core 0.
"""
super(SWVReader, self).__init__()
self.name = "SWVReader"
self.daemon = True
self._session = session
self._core_number = core_number
self._shutdown_event = threading.Event()
self._swo_clock = 0
self._session.subscribe(self._reset_handler, Target.Event.POST_RESET, self._session.target.cores[core_number])
delegateResult = self.call_delegate('set_reset_catch', core=self, reset_type=reset_type)
# Save CortexM.DEMCR
demcr = self.read_memory(CortexM.DEMCR)
# enable the vector catch
if not delegateResult:
# This sequence is copied from the NXP LPC55S69_DFP debug sequence.
reset_vector = 0xFFFFFFFF
# Clear reset vector catch.
self.write32(CortexM.DEMCR, demcr & ~CortexM.DEMCR_VC_CORERESET)
# If the processor is in Secure state, we have to access the flash controller
# through the secure alias.
if self.get_security_state() == Target.SecurityState.SECURE:
base = PERIPHERAL_BASE_S
else:
base = PERIPHERAL_BASE_NS
# Use the flash programming model to check if the first flash page is readable, since
# attempted accesses to erased pages result in bus faults. The start and stop address
# are both set to 0x0 to probe the sector containing the reset vector.
self.write32(base + FLASH_STARTA, 0x00000000) # Program flash word start address to 0x0
self.write32(base + FLASH_STOPA, 0x00000000) # Program flash word stop address to 0x0
self.write_memory_block32(base + FLASH_DATAW0, [0x00000000] * 8) # Prepare for read
self.write32(base + FLASH_INT_CLR_STATUS, 0x0000000F) # Clear Flash controller status
self.write32(base + FLASH_CMD, FLASH_CMD_READ_SINGLE_WORD) # Read single flash word
# Wait for flash word read to finish.
with timeout.Timeout(5.0) as t_o:
while t_o.check():
def resume(self):
"""
resume the execution
"""
if self.get_state() != Target.TARGET_HALTED:
logging.debug('cannot resume: target not halted')
return
self.notify(Notification(event=Target.EVENT_PRE_RUN, source=self, data=Target.RUN_TYPE_RESUME))
self._run_token += 1
self.clear_debug_cause_bits()
self.write_memory(CortexM.DHCSR, CortexM.DBGKEY | CortexM.C_DEBUGEN)
self.flush()
self.notify(Notification(event=Target.EVENT_POST_RUN, source=self, data=Target.RUN_TYPE_RESUME))
if self.detach_event.isSet():
break
if self.packet_io.interrupt_event.isSet():
if self.non_stop:
self.target.halt()
self.is_target_running = False
self.send_stop_notification()
else:
self.log.error("Got unexpected ctrl-c, ignoring")
self.packet_io.interrupt_event.clear()
if self.non_stop and self.is_target_running:
try:
if self.target.get_state() == Target.TARGET_HALTED:
self.log.debug("state halted")
self.is_target_running = False
self.send_stop_notification()
except Exception as e:
self.log.error("Unexpected exception: %s", e, exc_info=self.session.log_tracebacks)
# read command
try:
packet = self.packet_io.receive(block=not self.non_stop)
except ConnectionClosedException:
break
if self.shutdown_event.isSet():
self._cleanup()
return
def bp_type(self):
return Target.BreakpointType.HW
self.vector_catch = session.options.get('vector_catch')
self.target.set_vector_catch(convert_vector_catch(self.vector_catch))
self.step_into_interrupt = session.options.get('step_into_interrupt')
self.persist = session.options.get('persist')
self.enable_semihosting = session.options.get('enable_semihosting')
self.semihost_console_type = session.options.get('semihost_console_type')
self.semihost_use_syscalls = session.options.get('semihost_use_syscalls')
self.serve_local_only = session.options.get('serve_local_only')
self.report_core = session.options.get('report_core_number')
self.server_listening_callback = server_listening_callback
self.packet_size = 2048
self.packet_io = None
self.gdb_features = []
self.non_stop = False
self._is_extended_remote = False
self.is_target_running = (self.target.get_state() == Target.TARGET_RUNNING)
self.flash_loader = None
self.shutdown_event = threading.Event()
self.detach_event = threading.Event()
if core is None:
self.target_context = self.board.target.get_target_context()
else:
self.target_context = self.board.target.get_target_context(core=core)
self.target_facade = GDBDebugContextFacade(self.target_context)
self.thread_provider = None
self.did_init_thread_providers = False
self.current_thread_id = 0
self.first_run_after_reset_or_flash = True
self.abstract_socket = ListenerSocket(self.port, self.packet_size)
if self.serve_local_only:
self.abstract_socket.host = 'localhost'