X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;ds=sidebyside;f=debug%2Fb43-fwdump;h=6ac7aa0f01c6d8c7140555614a41f0a5e34ddd04;hb=bdf61c63137881ce7a1d08a62da09c4dce472dc9;hp=b698887a3992824bdc799cb6f3f25a12f0ad9e24;hpb=e41dd6db735d02338c1d5bb6ae84d3b492c37fc4;p=b43-tools.git diff --git a/debug/b43-fwdump b/debug/b43-fwdump index b698887..6ac7aa0 100755 --- a/debug/b43-fwdump +++ b/debug/b43-fwdump @@ -21,6 +21,7 @@ import getopt from libb43 import * from sys import stdout from tempfile import * +import re def usage(): @@ -32,7 +33,8 @@ def usage(): print "Usage: b43-fwdump [OPTIONS]" print "" print "-h|--help Print this help text" - print "-p|--phy PHY The PHY to use. For example phy0" + print "-p|--phy WIPHY The WIPHY to use. For example phy0." + print " Can be omitted, if there is only one device in the system." print "-b|--binary BIN The firmware binary. This is required for" print " an instruction dump." print "-d|--dasmopt OPT Additional options to the disassembler." @@ -90,21 +92,28 @@ def dump_regs(prefix, regs): stdout.write("\n") return +def dasmLineIsPC(line, pc): + m = re.match(r'.*/\*\s+([0-9a-fA-F]+)\s+\*/.*', line, re.DOTALL) + if not m: + return False + linePC = int(m.group(1), 16) + return pc == linePC + def makeShortDump(dasm, pc): dasm = dasm.splitlines() i = 0 for line in dasm: - if "/* %03X */" % pc in line: + if dasmLineIsPC(line, pc): break i += 1 - if i >= len(dasm): + else: return "" ret = "" pos = max(i - 8, 0) end = min(i + 8, len(dasm) - 1) while pos != end: ret += dasm[pos] - if "/* %03X */" % pc in dasm[pos]: + if dasmLineIsPC(dasm[pos], pc): ret += "\t\t<<<<<<<<<<<" ret += "\n" pos += 1