📄 fwbin2h
字号:
#!/usr/bin/env python## $Id: fwbin2h,v 1.1 2003/03/30 11:10:52 jal2 Exp $## file: fwbin2h## This file converts binary firmware files (e.g. extracted# from Windows drivers) into a C header file.## invocation:# fwbin2h <internal fw> <external fw> <radio chipset>## which expects the internal and external firmware part in the# two files <internal fw> <external fw>.# please use: <radio chipset> ::= 503rfmd | i3861 | i3863 | 505rfmd# output will be into the file: fw_<radio chipset>_<version>.h# where the version is extracted from the internal fw part.### importsimport sysimport stringimport osimport redebug = 1known_radios = ["503rfmd","i3861","i3863","505rfmd"]### main ###if __name__ == '__main__': if len(sys.argv) != 4: sys.stderr.write("call: %s <internal fw> <external fw> <radio name>\n" % sys.argv[0]) sys.exit(1) radio = sys.argv[3] if not (radio in known_radios): sys.stderr.write("#WRG unknown radio name %s (not in %s)\n" % (radio,known_radios)) f = open(sys.argv[1]) internal_image = f.read() f.close() f = open(sys.argv[2]) external_image = f.read() f.close() pos = string.find(internal_image,"ATMEL_AP") if pos >= 0: major = ord(internal_image[pos+0x34]) minor = ord(internal_image[pos+0x35]) sub = ord(internal_image[pos+0x36]) build = ord(internal_image[pos+0x37]) version = "%d.%d.%d-%d" % (major,minor,sub,build) else: version = "unknown" if debug: print "#DBG got version " + version # write the output file outname = "fw-" + radio + "-" + version + ".h" f = open(outname,"w") f.write("""/*The following firmware has been extracted from the binary files%s and %s (all licenses of these files remain valid for this one)Target: AT76C503 with %s radioVersion: %s*/""" % (sys.argv[1], sys.argv[2], radio, version)) f.write("#define FW_%s_INTERNAL { \\\n" % string.upper(radio)) i=0 for b in internal_image: f.write("0x%02X," % ord(b)) i = i + 1 if i % 16 == 0: f.write(" \\\n") f.write("}\n\n"); f.write("#define FW_%s_EXTERNAL { \\\n" % string.upper(radio)) i=0 for b in external_image: f.write("0x%02X," % ord(b)) i = i + 1 if i % 16 == 0: f.write(" \\\n") f.write("}\n\n"); f.close()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -