mirror of
https://github.com/rvtr/ctr_firmware.git
synced 2025-10-31 07:51:08 -04:00
stupInitExceptions追加。
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_firmware@136 b871894f-2f95-9b40-918c-086798483c85
This commit is contained in:
parent
fd439a38ea
commit
80f6d66ef9
@ -36,7 +36,8 @@ asm void i_stupStartHandler( void )
|
||||
{
|
||||
PRESERVE8
|
||||
|
||||
INASM_EXTERN( i_stupHW_DTCM )
|
||||
INASM_EXTERN( STUPi_HW_DTCM )
|
||||
INASM_EXTERN( stupInitExceptions )
|
||||
INASM_EXTERN( BromMain )
|
||||
INASM_EXTERN( main )
|
||||
|
||||
@ -58,6 +59,9 @@ asm void i_stupStartHandler( void )
|
||||
ldr r0, =HW_BROM_SYS_STACK_END
|
||||
mov sp, r0
|
||||
|
||||
//---- initialize exceptions
|
||||
bl stupInitExceptions
|
||||
|
||||
//---- disable cp15
|
||||
bl stupDisableCP15
|
||||
|
||||
|
||||
@ -18,6 +18,42 @@
|
||||
#include <brom/os.h>
|
||||
#include <brom/swi.h>
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: stupInitExceptions
|
||||
|
||||
Description: Initialize Exceptions
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: None
|
||||
*---------------------------------------------------------------------------*/
|
||||
ASM void stupInitExceptions( void )
|
||||
{
|
||||
ldr r3, =HW_SWI_VENEER_BUF
|
||||
ldr r2, =i_stupSwiVeneerCode
|
||||
ldm r2, {r0-r1}
|
||||
stm r3, {r0-r1}
|
||||
bx lr
|
||||
|
||||
LTORG
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: i_osIrqVeneer
|
||||
|
||||
Description: Interrupt Vevver
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: None
|
||||
*---------------------------------------------------------------------------*/
|
||||
ASM void i_stupSwiVeneerCode( void )
|
||||
{
|
||||
ldr pc, =i_stupSwiHandler
|
||||
LTORG
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: i_stupDbgHandler
|
||||
|
||||
@ -27,7 +63,7 @@
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
asm void i_stupDbgHandler( void )
|
||||
ASM void i_stupDbgHandler( void )
|
||||
{
|
||||
mrs sp, cpsr // IRQ/FIQ•s‹–‰Â
|
||||
orr sp, sp, #HW_PSR_IRQ_DISABLE | HW_PSR_FIQ_DISABLE
|
||||
@ -48,7 +84,7 @@ dbg_m
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
asm void i_stupIrqVeneer( void )
|
||||
ASM void i_stupIrqVeneer( void )
|
||||
{
|
||||
ldr pc, =HW_INTR_VENEER_BUF
|
||||
|
||||
@ -64,7 +100,7 @@ asm void i_stupIrqVeneer( void )
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
asm void i_stupFiqVeneer( void )
|
||||
ASM void i_stupFiqVeneer( void )
|
||||
{
|
||||
ldr pc, =HW_FIQ_VENEER_BUF
|
||||
|
||||
@ -80,7 +116,7 @@ asm void i_stupFiqVeneer( void )
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
asm void i_stupPrefetchAbortVeneer( void )
|
||||
ASM void i_stupPrefetchAbortVeneer( void )
|
||||
{
|
||||
ldr pc, =HW_IABT_VENEER_BUF
|
||||
|
||||
@ -96,7 +132,7 @@ asm void i_stupPrefetchAbortVeneer( void )
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
asm void i_stupDataAbortVeneer( void )
|
||||
ASM void i_stupDataAbortVeneer( void )
|
||||
{
|
||||
ldr pc, =HW_DABT_VENEER_BUF
|
||||
|
||||
@ -112,7 +148,7 @@ asm void i_stupDataAbortVeneer( void )
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
asm void i_stupUndefInstVeneer( void )
|
||||
ASM void i_stupUndefInstVeneer( void )
|
||||
{
|
||||
ldr pc, =HW_UDEF_VENEER_BUF
|
||||
|
||||
@ -128,13 +164,14 @@ asm void i_stupUndefInstVeneer( void )
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
asm void i_stupSwiVeneer( void )
|
||||
ASM void i_stupSwiVeneer( void )
|
||||
{
|
||||
ldr pc, =HW_SWI_VENEER_BUF
|
||||
|
||||
LTORG
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: i_stupSwiHandler
|
||||
|
||||
@ -144,14 +181,14 @@ asm void i_stupSwiVeneer( void )
|
||||
|
||||
Returns: None.
|
||||
*---------------------------------------------------------------------------*/
|
||||
asm void i_stupSwiSemihosting( void )
|
||||
ASM void i_stupSwiSemihosting( void )
|
||||
{
|
||||
ldmfd sp!, {r11, r12, lr}
|
||||
semi_vector
|
||||
movs pc, lr
|
||||
}
|
||||
|
||||
asm void i_stupSwiHandler( void )
|
||||
ASM void i_stupSwiHandler( void )
|
||||
{
|
||||
INASM_EXTERN( _start )
|
||||
|
||||
|
||||
@ -109,7 +109,6 @@ asm void i_osIrqVeneer( void )
|
||||
ldr pc, =osIrqHandler
|
||||
LTORG
|
||||
}
|
||||
|
||||
#include <brom/codereset.h>
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
|
||||
@ -21,6 +21,17 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: stupInitExcptions
|
||||
|
||||
Description: Initialize Excptions
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: None
|
||||
*---------------------------------------------------------------------------*/
|
||||
void stupInitExcptions( void );
|
||||
|
||||
#ifdef SDK_ARM11
|
||||
void i_stupPostMappingWram( void );
|
||||
void i_stupNotifyToARM9( u32 id );
|
||||
|
||||
Loading…
Reference in New Issue
Block a user