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
|
PRESERVE8
|
||||||
|
|
||||||
INASM_EXTERN( i_stupHW_DTCM )
|
INASM_EXTERN( STUPi_HW_DTCM )
|
||||||
|
INASM_EXTERN( stupInitExceptions )
|
||||||
INASM_EXTERN( BromMain )
|
INASM_EXTERN( BromMain )
|
||||||
INASM_EXTERN( main )
|
INASM_EXTERN( main )
|
||||||
|
|
||||||
@ -58,6 +59,9 @@ asm void i_stupStartHandler( void )
|
|||||||
ldr r0, =HW_BROM_SYS_STACK_END
|
ldr r0, =HW_BROM_SYS_STACK_END
|
||||||
mov sp, r0
|
mov sp, r0
|
||||||
|
|
||||||
|
//---- initialize exceptions
|
||||||
|
bl stupInitExceptions
|
||||||
|
|
||||||
//---- disable cp15
|
//---- disable cp15
|
||||||
bl stupDisableCP15
|
bl stupDisableCP15
|
||||||
|
|
||||||
|
|||||||
@ -18,6 +18,42 @@
|
|||||||
#include <brom/os.h>
|
#include <brom/os.h>
|
||||||
#include <brom/swi.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
|
Name: i_stupDbgHandler
|
||||||
|
|
||||||
@ -27,7 +63,7 @@
|
|||||||
|
|
||||||
Returns: None.
|
Returns: None.
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
asm void i_stupDbgHandler( void )
|
ASM void i_stupDbgHandler( void )
|
||||||
{
|
{
|
||||||
mrs sp, cpsr // IRQ/FIQ•s‹–‰Â
|
mrs sp, cpsr // IRQ/FIQ•s‹–‰Â
|
||||||
orr sp, sp, #HW_PSR_IRQ_DISABLE | HW_PSR_FIQ_DISABLE
|
orr sp, sp, #HW_PSR_IRQ_DISABLE | HW_PSR_FIQ_DISABLE
|
||||||
@ -48,7 +84,7 @@ dbg_m
|
|||||||
|
|
||||||
Returns: None.
|
Returns: None.
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
asm void i_stupIrqVeneer( void )
|
ASM void i_stupIrqVeneer( void )
|
||||||
{
|
{
|
||||||
ldr pc, =HW_INTR_VENEER_BUF
|
ldr pc, =HW_INTR_VENEER_BUF
|
||||||
|
|
||||||
@ -64,7 +100,7 @@ asm void i_stupIrqVeneer( void )
|
|||||||
|
|
||||||
Returns: None.
|
Returns: None.
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
asm void i_stupFiqVeneer( void )
|
ASM void i_stupFiqVeneer( void )
|
||||||
{
|
{
|
||||||
ldr pc, =HW_FIQ_VENEER_BUF
|
ldr pc, =HW_FIQ_VENEER_BUF
|
||||||
|
|
||||||
@ -80,7 +116,7 @@ asm void i_stupFiqVeneer( void )
|
|||||||
|
|
||||||
Returns: None.
|
Returns: None.
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
asm void i_stupPrefetchAbortVeneer( void )
|
ASM void i_stupPrefetchAbortVeneer( void )
|
||||||
{
|
{
|
||||||
ldr pc, =HW_IABT_VENEER_BUF
|
ldr pc, =HW_IABT_VENEER_BUF
|
||||||
|
|
||||||
@ -96,7 +132,7 @@ asm void i_stupPrefetchAbortVeneer( void )
|
|||||||
|
|
||||||
Returns: None.
|
Returns: None.
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
asm void i_stupDataAbortVeneer( void )
|
ASM void i_stupDataAbortVeneer( void )
|
||||||
{
|
{
|
||||||
ldr pc, =HW_DABT_VENEER_BUF
|
ldr pc, =HW_DABT_VENEER_BUF
|
||||||
|
|
||||||
@ -112,7 +148,7 @@ asm void i_stupDataAbortVeneer( void )
|
|||||||
|
|
||||||
Returns: None.
|
Returns: None.
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
asm void i_stupUndefInstVeneer( void )
|
ASM void i_stupUndefInstVeneer( void )
|
||||||
{
|
{
|
||||||
ldr pc, =HW_UDEF_VENEER_BUF
|
ldr pc, =HW_UDEF_VENEER_BUF
|
||||||
|
|
||||||
@ -128,13 +164,14 @@ asm void i_stupUndefInstVeneer( void )
|
|||||||
|
|
||||||
Returns: None.
|
Returns: None.
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
asm void i_stupSwiVeneer( void )
|
ASM void i_stupSwiVeneer( void )
|
||||||
{
|
{
|
||||||
ldr pc, =HW_SWI_VENEER_BUF
|
ldr pc, =HW_SWI_VENEER_BUF
|
||||||
|
|
||||||
LTORG
|
LTORG
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: i_stupSwiHandler
|
Name: i_stupSwiHandler
|
||||||
|
|
||||||
@ -144,14 +181,14 @@ asm void i_stupSwiVeneer( void )
|
|||||||
|
|
||||||
Returns: None.
|
Returns: None.
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
asm void i_stupSwiSemihosting( void )
|
ASM void i_stupSwiSemihosting( void )
|
||||||
{
|
{
|
||||||
ldmfd sp!, {r11, r12, lr}
|
ldmfd sp!, {r11, r12, lr}
|
||||||
semi_vector
|
semi_vector
|
||||||
movs pc, lr
|
movs pc, lr
|
||||||
}
|
}
|
||||||
|
|
||||||
asm void i_stupSwiHandler( void )
|
ASM void i_stupSwiHandler( void )
|
||||||
{
|
{
|
||||||
INASM_EXTERN( _start )
|
INASM_EXTERN( _start )
|
||||||
|
|
||||||
|
|||||||
@ -109,7 +109,6 @@ asm void i_osIrqVeneer( void )
|
|||||||
ldr pc, =osIrqHandler
|
ldr pc, =osIrqHandler
|
||||||
LTORG
|
LTORG
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <brom/codereset.h>
|
#include <brom/codereset.h>
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
|
|||||||
@ -21,6 +21,17 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: stupInitExcptions
|
||||||
|
|
||||||
|
Description: Initialize Excptions
|
||||||
|
|
||||||
|
Arguments: None
|
||||||
|
|
||||||
|
Returns: None
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
void stupInitExcptions( void );
|
||||||
|
|
||||||
#ifdef SDK_ARM11
|
#ifdef SDK_ARM11
|
||||||
void i_stupPostMappingWram( void );
|
void i_stupPostMappingWram( void );
|
||||||
void i_stupNotifyToARM9( u32 id );
|
void i_stupNotifyToARM9( u32 id );
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user