mirror of
https://github.com/rvtr/ctr_firmware.git
synced 2025-10-31 07:51:08 -04:00
割り込みハンドラ登録。
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_firmware@91 b871894f-2f95-9b40-918c-086798483c85
This commit is contained in:
parent
df206e2787
commit
64b1e317ab
@ -17,6 +17,8 @@
|
|||||||
#include <brom/os.h>
|
#include <brom/os.h>
|
||||||
|
|
||||||
|
|
||||||
|
asm void i_osIrqVeneer( void );
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: osInitInterrupt
|
Name: osInitInterrupt
|
||||||
|
|
||||||
@ -39,6 +41,8 @@ void osInitInterrupt( void )
|
|||||||
|
|
||||||
osInitInterruptTable();
|
osInitInterruptTable();
|
||||||
|
|
||||||
|
*(u64*)HW_INTR_VENEER_BUF = *(u64*)i_osIrqVeneer;
|
||||||
|
|
||||||
{
|
{
|
||||||
u32 num = OS_INTR_ID_NUM;
|
u32 num = OS_INTR_ID_NUM;
|
||||||
u32 conf = 0;
|
u32 conf = 0;
|
||||||
@ -72,6 +76,26 @@ void osInitInterrupt( void )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: i_osIrqVeneer
|
||||||
|
|
||||||
|
Description: Interrupt Vevver
|
||||||
|
|
||||||
|
Arguments: None
|
||||||
|
|
||||||
|
Returns: None
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
#include <brom/code32.h>
|
||||||
|
|
||||||
|
asm void i_osIrqVeneer( void )
|
||||||
|
{
|
||||||
|
INASM_EXTERN( osIrqHandler )
|
||||||
|
|
||||||
|
ldr pc, =osIrqHandler
|
||||||
|
LTORG
|
||||||
|
}
|
||||||
|
|
||||||
|
#include <brom/codereset.h>
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: osEnableInterruptID
|
Name: osEnableInterruptID
|
||||||
|
|||||||
@ -17,6 +17,8 @@
|
|||||||
#include <brom/os.h>
|
#include <brom/os.h>
|
||||||
|
|
||||||
|
|
||||||
|
asm void i_osIrqVeneer( void );
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: osInitInterrupt
|
Name: osInitInterrupt
|
||||||
|
|
||||||
@ -39,6 +41,8 @@ void osInitInterrupt( void )
|
|||||||
|
|
||||||
i_osInitInterruptTable();
|
i_osInitInterruptTable();
|
||||||
|
|
||||||
|
*(u64*)HW_INTR_VENEER_BUF = *(u64*)i_osIrqVeneer;
|
||||||
|
|
||||||
reg_OS_IE = 0;
|
reg_OS_IE = 0;
|
||||||
|
|
||||||
reg_OS_IF = 0xffffffff;
|
reg_OS_IF = 0xffffffff;
|
||||||
@ -47,6 +51,26 @@ void osInitInterrupt( void )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: i_osIrqVeneer
|
||||||
|
|
||||||
|
Description: Interrupt Vevver
|
||||||
|
|
||||||
|
Arguments: None
|
||||||
|
|
||||||
|
Returns: None
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
#include <brom/code32.h>
|
||||||
|
|
||||||
|
asm void i_osIrqVeneer( void )
|
||||||
|
{
|
||||||
|
INASM_EXTERN( osIrqHandler )
|
||||||
|
|
||||||
|
ldr pc, =osIrqHandler
|
||||||
|
LTORG
|
||||||
|
}
|
||||||
|
|
||||||
|
#include <brom/codereset.h>
|
||||||
|
|
||||||
//================================================================================
|
//================================================================================
|
||||||
// InterruptMask
|
// InterruptMask
|
||||||
|
|||||||
@ -23,7 +23,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
//---- thread queue for interrupt
|
//---- thread queue for interrupt
|
||||||
OSThreadQueue OSi_IrqThreadQueue; // = { NULL, NULL };
|
OSThreadQueue OSi_IrqThreadQueue;
|
||||||
|
|
||||||
#ifdef SDK_ARM9
|
#ifdef SDK_ARM9
|
||||||
#include <brom/dtcm_end.h>
|
#include <brom/dtcm_end.h>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user