def export(self):
""" Export the u-boot environment variables into bytearray.
:return The environment variables in bytearray
"""
env_size = self.size
if self._redundant:
env_size -= 5
else:
env_size -= 4
data = str()
for k in self._env:
data += "{0:s}={1:s}".format(k, self._env[k])
data += "\0" # Termination of line "\0"
data += "\0" # End of file "\0\0"
if len(data) > env_size:
raise Exception("ERROR: ENV size out of range, extend required size !")
env_blob = data + chr(self._empty_value) * (env_size - len(data))
env_blob = env_blob.encode('utf-8')
crc = binascii.crc32(env_blob) & 0xffffffff
fmt = ">I" if self._bigendian else "<I"
ret = struct.pack(fmt + "B", crc, 0x01) if self._redundant else struct.pack(fmt, crc)
ret += env_blob
return ret
评论列表
文章目录