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@103 b871894f-2f95-9b40-918c-086798483c85
This commit is contained in:
parent
44d00544fa
commit
e356cbe011
@ -39,9 +39,10 @@ asm void osIrqHandler( void )
|
||||
|
||||
INASM_EXTERN( osIntrTable )
|
||||
|
||||
sub lr, lr, #4 // 復帰アドレス調整
|
||||
// 不正確データアボート有効化(clear HW_PSR_IMPRECISE_ABORT)
|
||||
msr cpsr_fsxc, #(HW_PSR_IRQ_MODE | HW_PSR_IRQ_DISABLE | HW_PSR_FIQ_DISABLE)
|
||||
|
||||
stmfd sp!, { r0-r4,r12,lr }
|
||||
// stmfd sp!, { lr } // save LR
|
||||
|
||||
// 割り込み要因の判定.
|
||||
|
||||
@ -68,10 +69,8 @@ asm void osIrqHandler( void )
|
||||
#endif // BROM_ENABLE_THREAD
|
||||
|
||||
my_undefined_interrupt_1
|
||||
// ldmfd sp!, { lr }
|
||||
ldmfd sp!, { r0-r4,r12,lr } // return to interrupted address
|
||||
movs pc, lr
|
||||
// subs pc, lr, #4
|
||||
subs pc, lr, #4
|
||||
}
|
||||
|
||||
#ifdef BROM_ENABLE_THREAD
|
||||
|
||||
@ -105,7 +105,7 @@ void osStartTimerWithUSec( u32 usec, u8 preScale )
|
||||
{
|
||||
u32 count = ((usec) * (osTimerClock / 1000)) / (preScale+1) / 1000;
|
||||
|
||||
i_osStartTimer( count, preScale, OS_TM_SINGLE_SHOT, OS_TM_INTR_REQ_ENABLE );
|
||||
i_osStartTimer( count, preScale, OS_TM_AUTO_RELOAD, OS_TM_INTR_REQ_ENABLE );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
@ -122,7 +122,7 @@ void osStartTimerWithMSec( u32 msec, u8 preScale )
|
||||
{
|
||||
u32 count = (((msec) * osTimerClock / 1000)) / (preScale+1);
|
||||
|
||||
i_osStartTimer( count, preScale, OS_TM_SINGLE_SHOT, OS_TM_INTR_REQ_ENABLE );
|
||||
i_osStartTimer( count, preScale, OS_TM_AUTO_RELOAD, OS_TM_INTR_REQ_ENABLE );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
@ -137,7 +137,7 @@ void osStartTimerWithMSec( u32 msec, u8 preScale )
|
||||
|
||||
void osStartTimer( u32 count, u8 preScale )
|
||||
{
|
||||
i_osStartTimer( count, preScale, OS_TM_SINGLE_SHOT, OS_TM_INTR_REQ_ENABLE );
|
||||
i_osStartTimer( count, preScale, OS_TM_AUTO_RELOAD, OS_TM_INTR_REQ_ENABLE );
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
|
||||
Loading…
Reference in New Issue
Block a user