From ecf4fde3b3ddf0fc3e8a8069d96e4d5c64cf54bf Mon Sep 17 00:00:00 2001 From: liangzhen Date: Thu, 14 Sep 2023 10:25:28 +0800 Subject: Disable timer interrupt to fix some bugs Signed-off-by: liangzhen --- debug/gdbserver.py | 6 ++++++ debug/testlib.py | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/debug/gdbserver.py b/debug/gdbserver.py index 5a2ba2a..31523b1 100755 --- a/debug/gdbserver.py +++ b/debug/gdbserver.py @@ -1039,8 +1039,10 @@ class InterruptTest(GdbSingleHartTest): local = self.gdb.p("local") if interrupt_count > 1000 and \ local > 1000: + self.disable_timer() return + self.disable_timer() assertGreater(interrupt_count, 1000) assertGreater(local, 1000) @@ -1191,6 +1193,8 @@ class MulticoreRunAllHaltOne(GdbTest): time.sleep(1) self.gdb.p("buf", fmt="") + self.disable_timer(interrupt=True) + class MulticoreRtosSwitchActiveHartTest(GdbTest): compile_args = ("programs/multicore.c", "-DMULTICORE") @@ -1220,6 +1224,8 @@ class MulticoreRtosSwitchActiveHartTest(GdbTest): assertIn("set_trap_handler", output) assertNotIn("received signal SIGTRAP", output) + self.disable_timer() + class SmpSimultaneousRunHalt(GdbTest): compile_args = ("programs/run_halt_timing.S", "-DMULTICORE") diff --git a/debug/testlib.py b/debug/testlib.py index 435b41b..6f470a0 100644 --- a/debug/testlib.py +++ b/debug/testlib.py @@ -1411,6 +1411,13 @@ class GdbTest(BaseTest): # PMP registers are optional pass + def disable_timer(self, interrupt=False): + for hart in self.target.harts: + self.gdb.select_hart(hart) + if interrupt: + self.gdb.interrupt() + self.gdb.p("$mie=$mie & ~0x80") + def exit(self, expected_result=10): self.gdb.command("delete") self.gdb.b("_exit") -- cgit v1.1