import sys
def build_perfect_i2c_bin(input_file, output_file):
with open(input_file, 'rb') as f:
content = f.read()
# Срезаем строго текстовый заголовок Radiant (359 байт)
# Файл начнется со слов ffff b3bd (оригинальная преамбула)
bitstream = content[359:]
print(f"Removed exactly 359 bytes of metadata. Active bitstream size: {len(bitstream)} bytes.")
# Применяем Byte-Wide Bit Mirroring, жизненно необходимый для Slave I2C CrossLink-NX
fixed_bytes = bytearray()
for byte in bitstream:
flipped = int('{:08b}'.format(byte)[::-1], 2)
fixed_bytes.append(flipped)
with open(output_file, 'wb') as f:
f.write(fixed_bytes)
print(f"Successfully generated hardware-ready I2C binary: {output_file}")
if __name__ == '__main__':
if len(sys.argv) < 3:
print("Usage: python3 final_step.py <input.bit> <output.bin>")
sys.exit(1)
build_perfect_i2c_bin(sys.argv[1], sys.argv[2])