From 2d572cea4dad2416d4079950c4b027b68ba9bb44 Mon Sep 17 00:00:00 2001 From: Yi-Ting Shih Date: Tue, 1 Apr 2025 18:34:59 +0800 Subject: [PATCH] Fix: lab3 bug --- kernel/exception_table.S | 6 +++--- kernel/lib/interrupt.c | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/kernel/exception_table.S b/kernel/exception_table.S index 6638a6d..c205beb 100644 --- a/kernel/exception_table.S +++ b/kernel/exception_table.S @@ -46,11 +46,11 @@ ldp x28, x29, [sp, 16 * 14] ldp x30, lr, [sp, 16 * 15] - mrs x0, spsr_el1 - mrs x1, elr_el1 - mrs x2, esr_el1 ldp x0, x1, [sp, 16 * 16] ldr x2, [sp, 16 * 17] + msr spsr_el1, x0 + msr elr_el1, x1 + msr esr_el1, x2 add sp, sp, 36 * 8 .endm diff --git a/kernel/lib/interrupt.c b/kernel/lib/interrupt.c index 6d17a50..c174e6e 100644 --- a/kernel/lib/interrupt.c +++ b/kernel/lib/interrupt.c @@ -105,7 +105,8 @@ void irq_handler(void) void wfe(void) { if (!global_interrupt_pool) { - asm volatile("wfe"); + // asm volatile("wfe"); + asm volatile("nop"); return; }