#!/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)