割り込みハンドラ内での不正確アボート有効化。

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:
nakasima 2008-12-12 08:17:53 +00:00
parent 44d00544fa
commit e356cbe011
2 changed files with 7 additions and 8 deletions

View File

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

View File

@ -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 );
}
/*---------------------------------------------------------------------------*