From f31e32fbb1f6b010057ccbca26edd0be8f6bd60c Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Tue, 13 Feb 2024 12:16:46 -0600 Subject: sim: implement non-virtual memory dumps --- sim/sim.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'sim') diff --git a/sim/sim.py b/sim/sim.py index 494d5c3..7c4a92e 100755 --- a/sim/sim.py +++ b/sim/sim.py @@ -152,10 +152,23 @@ def recv_mem_dump(): while_running() out(f'{COLOR_BLUE}{line}{COLOR_RESET}') -def read_mem(base, length, *, may_fail=False, phys=False): +mem_virtual = True + +def set_mem_phys(): + global mem_virtual + mem_virtual = False + +def set_mem_virt(): + global mem_virtual + mem_virtual = True + +def read_mem(base, length, *, may_fail=False, phys=None): fragments = [] i = 0 + if phys is None: + phys = not mem_virtual + if halted and length > 0: print('dump-phys' if phys else 'dump-mem', base >> 2, (length + base - (base & ~0b11) + 0b11) >> 2, file=sim_end, flush=True) recv_mem_dump() @@ -357,6 +370,8 @@ prelude = { 'init_reg': init_reg, 'dump_regs': dump_regs, 'split_dword': split_dword, + 'set_mem_phys': set_mem_phys, + 'set_mem_virt': set_mem_virt, 'register_interrupt': register_interrupt, } -- cgit v1.2.3