diff options
author | Yann Herklotz <git@yannherklotz.com> | 2022-11-24 22:27:15 +0000 |
---|---|---|
committer | Yann Herklotz <git@yannherklotz.com> | 2022-11-24 22:27:15 +0000 |
commit | cfe60025ab06c73c44ce6b962a258668b3a90431 (patch) | |
tree | 292d7b2b01a6e0f2ee31b9d133312723980235c1 /riscv/picorv32/scripts/romload/map2debug.py | |
parent | c0056cea555efe0d6775e3b28ffa5a4a91293097 (diff) | |
download | butterstick-cfe60025ab06c73c44ce6b962a258668b3a90431.tar.gz butterstick-cfe60025ab06c73c44ce6b962a258668b3a90431.zip |
Move all files
Diffstat (limited to 'riscv/picorv32/scripts/romload/map2debug.py')
-rw-r--r-- | riscv/picorv32/scripts/romload/map2debug.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/riscv/picorv32/scripts/romload/map2debug.py b/riscv/picorv32/scripts/romload/map2debug.py new file mode 100644 index 0000000..fc5c97c --- /dev/null +++ b/riscv/picorv32/scripts/romload/map2debug.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python3 + +import re + +symbol = re.compile("\s*0x([0-9a-f]+)\s+([\w_]+)") +symbol_map = {} +with open("firmware.map", "r") as fh: + for fd in fh: + sym = symbol.match(fd) + if (sym): + addr = int(sym.group(1), 16) + symbol_map[addr] = sym.group(2) + +with open("firmware_dbg.v", "w") as fh: + for k, v in symbol_map.items(): + fh.write("`define C_SYM_{1:s} 32'h{0:08x}\n".format(k, v.upper())) + fh.write(" task firmware_dbg;\n") + fh.write(" input [31:0] addr;\n"); + fh.write(" begin\n"); + fh.write(" case (addr)\n"); + for k, v in symbol_map.items(): + fh.write(" 32'h{0:08x} : $display(\"%t: FCALL: {1:s}\", $time);\n".format(k, v)) + fh.write(" endcase\n"); + fh.write(" end\n"); + fh.write(" endtask\n"); + +with open("firmware_addr.txt", "w") as fh: + for k, v in symbol_map.items(): + fh.write("{0:08x} {1:s}\n".format(k,v)) + |