From 64b1e317abdfe72de42e6c2d55321a3e3f989492 Mon Sep 17 00:00:00 2001 From: nakasima Date: Tue, 9 Dec 2008 08:33:08 +0000 Subject: [PATCH] =?UTF-8?q?=E5=89=B2=E3=82=8A=E8=BE=BC=E3=81=BF=E3=83=8F?= =?UTF-8?q?=E3=83=B3=E3=83=89=E3=83=A9=E7=99=BB=E9=8C=B2=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_firmware@91 b871894f-2f95-9b40-918c-086798483c85 --- .../build/libraries/os/ARM11/os_interrupt.c | 24 +++++++++++++++++++ .../build/libraries/os/ARM9/os_interrupt.c | 24 +++++++++++++++++++ .../build/libraries/os/ARM9/os_irqHandler.c | 2 +- 3 files changed, 49 insertions(+), 1 deletion(-) diff --git a/trunk/bootrom/build/libraries/os/ARM11/os_interrupt.c b/trunk/bootrom/build/libraries/os/ARM11/os_interrupt.c index fcb7312..6c201a5 100644 --- a/trunk/bootrom/build/libraries/os/ARM11/os_interrupt.c +++ b/trunk/bootrom/build/libraries/os/ARM11/os_interrupt.c @@ -17,6 +17,8 @@ #include +asm void i_osIrqVeneer( void ); + /*---------------------------------------------------------------------------* Name: osInitInterrupt @@ -39,6 +41,8 @@ void osInitInterrupt( void ) osInitInterruptTable(); + *(u64*)HW_INTR_VENEER_BUF = *(u64*)i_osIrqVeneer; + { u32 num = OS_INTR_ID_NUM; u32 conf = 0; @@ -72,6 +76,26 @@ void osInitInterrupt( void ) } } +/*---------------------------------------------------------------------------* + Name: i_osIrqVeneer + + Description: Interrupt Vevver + + Arguments: None + + Returns: None + *---------------------------------------------------------------------------*/ +#include + +asm void i_osIrqVeneer( void ) +{ + INASM_EXTERN( osIrqHandler ) + + ldr pc, =osIrqHandler + LTORG +} + +#include /*---------------------------------------------------------------------------* Name: osEnableInterruptID diff --git a/trunk/bootrom/build/libraries/os/ARM9/os_interrupt.c b/trunk/bootrom/build/libraries/os/ARM9/os_interrupt.c index cec0179..eef8648 100644 --- a/trunk/bootrom/build/libraries/os/ARM9/os_interrupt.c +++ b/trunk/bootrom/build/libraries/os/ARM9/os_interrupt.c @@ -17,6 +17,8 @@ #include +asm void i_osIrqVeneer( void ); + /*---------------------------------------------------------------------------* Name: osInitInterrupt @@ -39,6 +41,8 @@ void osInitInterrupt( void ) i_osInitInterruptTable(); + *(u64*)HW_INTR_VENEER_BUF = *(u64*)i_osIrqVeneer; + reg_OS_IE = 0; reg_OS_IF = 0xffffffff; @@ -47,6 +51,26 @@ void osInitInterrupt( void ) } } +/*---------------------------------------------------------------------------* + Name: i_osIrqVeneer + + Description: Interrupt Vevver + + Arguments: None + + Returns: None + *---------------------------------------------------------------------------*/ +#include + +asm void i_osIrqVeneer( void ) +{ + INASM_EXTERN( osIrqHandler ) + + ldr pc, =osIrqHandler + LTORG +} + +#include //================================================================================ // InterruptMask diff --git a/trunk/bootrom/build/libraries/os/ARM9/os_irqHandler.c b/trunk/bootrom/build/libraries/os/ARM9/os_irqHandler.c index 1538172..6e3ef71 100644 --- a/trunk/bootrom/build/libraries/os/ARM9/os_irqHandler.c +++ b/trunk/bootrom/build/libraries/os/ARM9/os_irqHandler.c @@ -23,7 +23,7 @@ #endif //---- thread queue for interrupt -OSThreadQueue OSi_IrqThreadQueue; // = { NULL, NULL }; +OSThreadQueue OSi_IrqThreadQueue; #ifdef SDK_ARM9 #include