修改mem文件的地址偏移

在通过mmimem文件修改FPGA bit文件中的ROM内容时候,我们常常需要修改mem文件的地址偏移,每次手动修改文件比较麻烦,并且容易出错,所以这里就搞了一个脚本去自动修改地址偏移,虽然可以通过sed基本一条命令就可以搞定,还是写了一个Python脚本来实现。

另外,这里发现mem文件格式和gcc产生的hex基本通用,所以这个脚本也可以直接修改hex文件。不过IntelHex格式的就算了,那个忒麻烦!

#!/usr/bin/env python3
# -*- coding=utf8 -*-

import argparse

def auto_int(x):
    return int(x, 0)

parser = argparse.ArgumentParser()
parser.add_argument("-i", "--input", help="Memory format input file")
parser.add_argument("-o", "--output", help="Memory format output file")
parser.add_argument("-b", "--base", type=auto_int, default=0x0, help="Base address offset")
args = parser.parse_args()

with open(args.input) as f:
    with open(args.output, 'w') as o:
        for line in f.readlines():
            if line.startswith("@"):
                addr = int(line[1:], 16) - args.base
                o.write("@%08x\n" % addr)
            else:
                o.write(line)

相关文章

发表新评论