def reset(self, reset_type=None):
        """! @brief Reset the core.
        
        The reset method is selectable via the reset_type parameter as well as the reset_type
        session option. If the reset_type parameter is not specified or None, then the reset_type
        option will be used. If the option is not set, or if it is set to a value of 'default', the
        the core's default_reset_type property value is used. So, the session option overrides the
        core's default, while the parameter overrides everything.
        
        Note that only v7-M cores support the `VECTRESET` software reset method. If this method
        is chosen but the core doesn't support it, the the reset method will fall back to an
        emulated software reset.
        
        After a call to this function, the core is running.
        """
        self.notify(Notification(event=Target.EVENT_PRE_RESET, source=self))

        reset_type = self._get_actual_reset_type(reset_type)

        self._run_token += 1

        # Give the delegate a chance to overide reset. If the delegate returns True, then it
        # handled the reset on its own.
        if not self.call_delegate('will_reset', core=self, reset_type=reset_type):
            self._perform_reset(reset_type)

        self.call_delegate('did_reset', core=self, reset_type=reset_type)
        
        # Now wait for the system to come out of reset. Keep reading the DHCSR until
        # we get a good response with S_RESET_ST cleared, or we time out.
        with timeout.Timeout(2.0) as t_o:
            while t_o.check():
                try:
                    dhcsr = self.read32(CortexM.DHCSR)
                    if (dhcsr & CortexM.S_RESET_ST) == 0:
                        break
                except exceptions.TransferError:
                    self.flush()
                    sleep(0.01)

        self.notify(Notification(event=Target.EVENT_POST_RESET, source=self))
def reset ( self , reset_type = None ) : self . notify ( Notification ( event = Target . EVENT_PRE_RESET , source = self ) ) reset_type = self . _get_actual_reset_type ( reset_type ) self . _run_token += 1 if not self . call_delegate ( 'will_reset' , core = self , reset_type = reset_type ) : self . _perform_reset ( reset_type ) self . call_delegate ( 'did_reset' , core = self , reset_type = reset_type ) with timeout . Timeout ( 2.0 ) as t_o : while t_o . check ( ) : try : dhcsr = self . read32 ( CortexM . DHCSR ) if ( dhcsr & CortexM . S_RESET_ST ) == 0 : break except exceptions . TransferError : self . flush ( ) sleep ( 0.01 ) self . notify ( Notification ( event = Target . EVENT_POST_RESET , source = self ) )
! @brief Reset the core.
        
        The reset method is selectable via the reset_type parameter as well as the reset_type
        session option. If the reset_type parameter is not specified or None, then the reset_type
        option will be used. If the option is not set, or if it is set to a value of 'default', the
        the core's default_reset_type property value is used. So, the session option overrides the
        core's default, while the parameter overrides everything.
        
        Note that only v7-M cores support the `VECTRESET` software reset method. If this method
        is chosen but the core doesn't support it, the the reset method will fall back to an
        emulated software reset.
        
        After a call to this function, the core is running.