Sync edgetx to Gitea
This commit is contained in:
Executable
+48
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
import argparse
|
||||
|
||||
|
||||
def line_index(lines, start):
|
||||
for i, line in enumerate(lines):
|
||||
if line.startswith(start):
|
||||
return i
|
||||
|
||||
|
||||
def extract_vars(lines):
|
||||
result = []
|
||||
lines = lines[line_index(lines, ".data"):line_index(lines, ".memory")]
|
||||
i = 0
|
||||
while i < len(lines):
|
||||
line = lines[i]
|
||||
i += 1
|
||||
if line.startswith("*"):
|
||||
continue
|
||||
if line.startswith(" .data.") or line.startswith(" .bss."):
|
||||
fields = (line + lines[i]).split()
|
||||
# print(fields)
|
||||
i += 1
|
||||
var = fields[0].split(".")[-1]
|
||||
offset = int(fields[1], 16)
|
||||
size = int(fields[2], 16)
|
||||
result.append((var, offset, size))
|
||||
return result
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description="Extract firmware.map")
|
||||
parser.add_argument("file", type=argparse.FileType("r"))
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
f = args.file
|
||||
lines = f.readlines()
|
||||
|
||||
vars = extract_vars(lines)
|
||||
vars.sort(key=lambda var: "%08d %s" % (var[2], var[0]))
|
||||
for var, offset, size in vars:
|
||||
print("%s\t %d" % (var, size))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user