code: def swo_read_stimulus(self, port, num_bytes):
          
          if port < 0 or port > 31:
              raise ValueError('Invalid port number: %s' % port)
  
          buf_size = num_bytes
          buf = (ctypes.c_uint8 * buf_size)()
          bytes_read = self._dll.JLINKARM_SWO_ReadStimulus(port, buf, buf_size)
  
          return list(buf)[:bytes_read]
docs: Reads the printable data via SWO.
  
          This method reads SWO for one stimulus port, which is all printable
          data.
  
          Note:
            Stimulus port ``0`` is used for ``printf`` debugging.
  
          Args:
            self (JLink): the ``JLink`` instance
            port (int): the stimulus port to read from, ``0 - 31``
            num_bytes (int): number of bytes to read
  
          Returns:
            A list of bytes read via SWO.
  
          Raises:
            ValueError: if ``port < 0`` or ``port > 31``