code: def exec_command(self, cmd):
          
          err_buf = (ctypes.c_char * self.MAX_BUF_SIZE)()
          res = self._dll.JLINKARM_ExecCommand(cmd.encode(), err_buf, self.MAX_BUF_SIZE)
          err_buf = ctypes.string_at(err_buf).decode()
  
          if len(err_buf) > 0:
              # This is how they check for error in the documentation, so check
              # this way as well.
              raise errors.JLinkException(err_buf.strip())
  
          return res
docs: Executes the given command.
  
          This method executes a command by calling the DLL's exec method.
          Direct API methods should be prioritized over calling this method.
  
          Args:
            self (JLink): the ``JLink`` instance
            cmd (str): the command to run
  
          Returns:
            The return code of running the command.
  
          Raises:
            JLinkException: if the command is invalid or fails.
  
          See Also:
            For a full list of the supported commands, please see the SEGGER
            J-Link documentation,
            `UM08001 <https://www.segger.com/downloads/jlink>`__.