sdram: create frontend dir and move dma_lasmi/memtest/wishbone2lasmi to it
[litex.git] / crc.py
diff --git a/crc.py b/crc.py
index 23ff96e0f6237a93d31ef1febd662bf1d1525768..26323fe2d345c4bd89ebb09ad1a2a69972f4af54 100644 (file)
--- a/crc.py
+++ b/crc.py
@@ -1,29 +1,19 @@
 import binascii
 
-def CRC32(buf):
-       return binascii.crc32(buf).to_bytes(4, byteorder='big')
-
-def LENGTH(buf):
-       return len(buf).to_bytes(4, byteorder='big')
-
-def insert_crc(i_filename, o_filename=None):
-       f = open(i_filename, 'rb+')
-       fdata = f.read()
-       fcrc = CRC32(fdata)
-       flength = LENGTH(fdata)
-       f.close()
-
-       # Write the CRC32 in big endian at the end of the file
+def insert_crc(i_filename, fbi_mode=False, o_filename=None):
        if o_filename is None:
-               f = open(i_filename, 'wb')
-               f.write(fdata)
-               f.write(fcrc)
-               f.close()
+               o_filename = i_filename
+
+       with open(i_filename, 'rb') as f:
+               fdata = f.read()
+       fcrc = binascii.crc32(fdata).to_bytes(4, byteorder="big")
+       flength = len(fdata).to_bytes(4, byteorder="big")
 
-       # Write a new file prepended with the size and CRC
-       else:
-               f = open(o_filename, 'wb')
-               f.write(flength)
-               f.write(fcrc)
-               f.write(fdata)
-               f.close()
+       with open(o_filename, 'wb') as f:
+               if fbi_mode:
+                       f.write(flength)
+                       f.write(fcrc)
+                       f.write(fdata)
+               else:
+                       f.write(fdata)
+                       f.write(fcrc)