diff --git a/scripts/conv_rle.py b/scripts/conv_rle.py index 5edf65c..96f71aa 100644 --- a/scripts/conv_rle.py +++ b/scripts/conv_rle.py @@ -4,15 +4,15 @@ import sys import time import shutil -LEN = 2**16 +LEN = 2 ** 16 huffman = False -TARGET=os.getcwd() -SOURCE=sys.argv[1] +TARGET = os.getcwd() +SOURCE = sys.argv[1] +LOC = os.path.dirname(os.path.realpath(__file__)) +HUFFMAN_ENCODER = os.path.join(LOC, "..", "tools", "huffman", "huffman-encode") -HUFFMAN_ENCODER="/Users/david/Devel/arch/avr/code/quickdev16/packages/huffman/huffman-encode" - -data = open(SOURCE,"r").read() -print "Load %s, %i bytes" % (SOURCE,len(data)) +data = open(SOURCE, "r").read() +print "Load %s, %i bytes" % (SOURCE, len(data)) data = data[:LEN] print "Use %i bytes" % (len(data)) data = binascii.rlecode_hqx(data) @@ -21,33 +21,30 @@ print "RLE crunch (%i) bytes" % (len(data)) rle_size = len(data) huffman_size = 0 -if huffman == True: - binfile = open("/tmp/loader.rle","w") +if huffman: + binfile = open("/tmp/loader.rle", "w") binfile.write(data) binfile.close() cmd = "%s /tmp/loader.rle" % HUFFMAN_ENCODER print cmd os.system(cmd) - data = open("/tmp/loader.rle.hfm","r").read() + data = open("/tmp/loader.rle.hfm", "r").read() print "HUFFMAN crunch (%i) bytes" % (len(data)) huffman_size = len(data) os.unlink("/tmp/loader.rle") os.unlink("/tmp/loader.rle.hfm") - -cfile = open("/tmp/loader.c","w") -hfile = open("/tmp/loader.h","w") - +cfile = open("/tmp/loader.c", "w") +hfile = open("/tmp/loader.h", "w") parts = [] -cnt = len(data) / ((2**15) -1 ) -r = len(data) - (cnt * ((2**15) -1)) +cnt = len(data) / ((2 ** 15) - 1) +r = len(data) - (cnt * ((2 ** 15) - 1)) for i in range(0, cnt): - parts.append(((2**15) -1 )) + parts.append(((2 ** 15) - 1)) parts.append(r) - hfile.write('''/* -File: %s +File: %s Time: %s */ #ifndef __FIFO_H__ @@ -57,65 +54,63 @@ Time: %s #define ROM_RLE_SIZE %i #define ROM_BUFFER_CNT %i -''' % (os.path.basename(SOURCE),time.strftime("%a, %d %b %Y %H:%M:%S", - time.localtime()), huffman_size, rle_size,len(parts))) - - -for idx,val in enumerate(parts): - hfile.write('#define ROM_BUFFER_SIZE%02i %i\n' % (idx+1,val)) - +''' % ( + os.path.basename(SOURCE), + time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime()), + huffman_size, + rle_size, + len(parts) +)) +for idx, val in enumerate(parts): + hfile.write('#define ROM_BUFFER_SIZE%02i %i\n' % (idx + 1, val)) hfile.write('\n#endif\n') hfile.close() cfile.write('''/* -File: %s +File: %s Time: %s */ -#include -#include +#include +#include ''') - addr = 0 -for idx,val in enumerate(parts): +for idx, val in enumerate(parts): cfile.write(''' const char _rom%02i[ROM_BUFFER_SIZE%02i] PROGMEM = { -''' % (idx+1,idx+1)) - l = addr +''' % (idx + 1, idx + 1)) + l = addr h = addr + parts[idx] - addr+= parts[idx] - for idx,c in enumerate(data[l:h]): + addr += parts[idx] + for idx, c in enumerate(data[l:h]): c = ord(c) - if idx