def __init__(self, start, size, perms, data_init=None, name=None, **kwargs):
super().__init__(start, size, perms, name, **kwargs)<EOL>self._data = bytearray(size)<EOL>if data_init is not None:<EOL><INDENT>assert len(data_init) <= size, '<STR_LIT>'<EOL>if isinstance(data_init[<NUM_LIT:0>], int):<EOL><INDENT>self._data[<NUM_LIT:0>:len(data_init)] = data_init<EOL><DEDENT>else:<EOL><INDENT>self._data[<NUM_LIT:0>:len(data_init)] = [ord(s) for s in data_init]<EOL><DEDENT><DEDENT>
Builds a concrete anonymous memory map.

:param start: the first valid address of the map.
:param size: the size of the map.
:param perms: the access permissions of the map.
:param data_init: the data to initialize the map.