Changeset 94c05b89 in mainline for tools/mkarray.py


Ignore:
Timestamp:
2017-07-12T15:02:49Z (7 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
5772aa1
Parents:
f3504c1
Message:

use the .incbin directive instead of marshalling the data manually
(this is the fastest and also the most resource-conservative method)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tools/mkarray.py

    rf3504c1 r94c05b89  
    7777        src_cnt = 0
    7878       
     79        archive = zipfile.ZipFile("%s.zip" % dest, "w", zipfile.ZIP_STORED)
     80       
    7981        for src in sys.argv[5:]:
    8082                basename = os.path.basename(src)
     
    9294                if compress:
    9395                        src_data = deflate(src_data)
     96                        src_fname = os.path.basename("%s.deflate" % src)
     97                        archive.writestr(src_fname, src_data)
     98                else:
     99                        src_fname = src
    94100               
    95101                if sys.version_info < (3,):
     
    105111                data_ctx.append(".size %s, %u" % (symbol, length_out))
    106112                data_ctx.append("%s:" % symbol)
    107                 data_ctx.append("\t.byte 0x" + ', 0x'.join(chunks(binascii.b2a_hex(src_data), 2)) + "\n")
     113                data_ctx.append("\t.incbin \"%s\"\n" % src_fname)
    108114               
    109115                desc_field = []
     
    112118                desc_field.append("\t\t.addr = (void *) %s," % symbol)
    113119                desc_field.append("\t\t.size = %u," % length_out)
    114                 desc_field.append("\t\t.inflated = %u" % length)
     120                desc_field.append("\t\t.inflated = %u," % length)
     121               
     122                if compress:
     123                        desc_field.append("\t\t.compressed = true")
     124                else:
     125                        desc_field.append("\t\t.compressed = false")
     126               
    115127                desc_field.append("\t}")
    116128               
     
    120132               
    121133                src_cnt += 1
    122        
    123         archive = zipfile.ZipFile("%s.zip" % dest, "w", zipfile.ZIP_STORED)
    124134       
    125135        data = ''
     
    131141        data += "#define %sS_H_\n\n" % label.upper()
    132142        data += "#include <stddef.h>\n"
    133         data += "#include <stdint.h>\n\n"
     143        data += "#include <stdint.h>\n"
     144        data += "#include <stdbool.h>\n\n"
    134145        data += "#define %sS  %u\n\n" % (label.upper(), src_cnt)
    135146        data += "typedef struct {\n"
     
    138149        data += "\tsize_t size;\n"
    139150        data += "\tsize_t inflated;\n"
     151        data += "\tbool compressed;\n"
    140152        data += "} %s_t;\n\n" % label
    141153        data += "extern %s_t %ss[];\n\n" % (label, label)
Note: See TracChangeset for help on using the changeset viewer.