mirror of https://github.com/openXC7/prjxray.git
36 lines
1.1 KiB
Python
Executable File
36 lines
1.1 KiB
Python
Executable File
#!/bin/python
|
|
'''
|
|
Extract the frames from the output of the prjxray bitread tool.
|
|
'''
|
|
|
|
import sys
|
|
import re
|
|
|
|
|
|
def extract_frames(args):
|
|
""" Extract the frame addresses and the corresponding content """
|
|
frames_dict = dict()
|
|
with open(args[1], 'r') as f:
|
|
parse_frames = False
|
|
for cnt, line in enumerate(f):
|
|
if line.startswith("\n"):
|
|
parse_frames = False
|
|
continue
|
|
line = line.strip()
|
|
if not parse_frames and not line.startswith("Frame"):
|
|
continue
|
|
if line.startswith("Frame"):
|
|
match = re.match("Frame 0x([0-9a-fA-F]+) ", line)
|
|
frame_addr = "0x" + match.group(1).upper()
|
|
parse_frames = True
|
|
frames_dict[frame_addr] = list()
|
|
continue
|
|
for frame in line.split():
|
|
frames_dict[frame_addr].append("0x" + frame.upper())
|
|
for addr, words in frames_dict.items():
|
|
print("{addr} {words}".format(addr=addr, words=",".join(words)))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
extract_frames(sys.argv)
|