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:
nakasima 2008-12-19 11:02:31 +00:00
parent fd439a38ea
commit 80f6d66ef9
4 changed files with 62 additions and 11 deletions

View File

@ -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

View File

@ -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 )

View File

@ -109,7 +109,6 @@ asm void i_osIrqVeneer( void )
ldr pc, =osIrqHandler
LTORG
}
#include <brom/codereset.h>
/*---------------------------------------------------------------------------*

View File

@ -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 );