code: def strace_data_access_event(self,
                                   operation,
                                   address,
                                   data,
                                   data_mask=None,
                                   access_width=4,
                                   address_range=0):
          
          cmd = enums.JLinkStraceCommand.TRACE_EVENT_SET
          event_info = structs.JLinkStraceEventInfo()
          event_info.Type = enums.JLinkStraceEvent.DATA_ACCESS
          event_info.Op = operation
          event_info.AccessSize = int(access_width)
          event_info.Addr = int(address)
          event_info.Data = int(data)
          event_info.DataMask = int(data_mask or 0)
          event_info.AddrRangeSize = int(address_range)
          handle = self._dll.JLINK_STRACE_Control(cmd, ctypes.byref(event_info))
          if handle < 0:
              raise errors.JLinkException(handle)
  
          return handle
docs: Sets an event to trigger trace logic when data access is made.
  
          Data access corresponds to either a read or write.
  
          Args:
            self (JLink): the ``JLink`` instance.
            operation (int): one of the operations in ``JLinkStraceOperation``.
            address (int): the address of the load/store data.
            data (int): the data to be compared the event data to.
            data_mask (int): optional bitmask specifying bits to ignore in
              comparison.
            acess_width (int): optional access width for the data.
            address_range (int): optional range of address to trigger event on.
  
          Returns:
            An integer specifying the trace event handle.  This handle should be
            retained in order to clear the event at a later time.
  
          Raises:
            JLinkException: on error.