26 lines
910 B
Python
26 lines
910 B
Python
import argparse
|
|
|
|
def main():
|
|
p = argparse.ArgumentParser()
|
|
p.add_argument('--file', required=True)
|
|
p.add_argument('--addr', required=True)
|
|
p.add_argument('--base', type=lambda x: int(x,0), default=0x80000000)
|
|
p.add_argument('--stride', type=int, default=10)
|
|
p.add_argument('--field_idx', type=int, default=9)
|
|
p.add_argument('--count', type=int, default=20)
|
|
args = p.parse_args()
|
|
|
|
addr = int(args.addr, 0)
|
|
offset = addr - args.base
|
|
with open(args.file, 'rb') as f:
|
|
for ch in range(args.count):
|
|
idx = offset + ch*args.stride + args.field_idx
|
|
f.seek(idx)
|
|
b = f.read(1)
|
|
if not b:
|
|
print(f"ch {ch:02d}: EOF")
|
|
break
|
|
print(f"ch {ch:02d}: addr {hex(addr + ch*args.stride + args.field_idx)} offset {hex(idx)} value {b[0]:02x} ({b[0]})")
|
|
|
|
if __name__ == '__main__':
|
|
main()
|