import binascii import os import sys import time LEN = 2**16+8 TARGET="/Users/david/Devel/arch/avr/code/quickdev16/avr/usbload" data = open(sys.argv[1],"r").read() print "Load %s (%i) bytes" % (sys.argv[1],len(data)) data = data[:LEN] print "Use (%i) bytes" % (len(data)) data = binascii.rlecode_hqx(data) print "RLE crunch (%i) bytes" % (len(data)) binfile = open("/tmp/loader.rle","w") binfile.write(data) binfile.close() cfile = open("/tmp/loader.c","w") hfile = open("/tmp/loader.h","w") hfile.write(''' #ifndef __FIFO_H__ #define __FIFO_H__ #define ROM_SIZE %i #endif ''' % len(data)) cfile.write('''/* File: %s Time: %s */ #include #include const char _rom[ROM_SIZE] PROGMEM = { ''' % (sys.argv[1],time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime()))) for idx,c in enumerate(data): c = ord(c) if idx