Загрузка данных


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])