割り込みペンディング初期化処理の修正。

git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_firmware@275 b871894f-2f95-9b40-918c-086798483c85
This commit is contained in:
nakasima 2009-02-12 11:14:51 +00:00
parent 07c72c587c
commit 2d36dffa45

View File

@ -50,8 +50,8 @@ void osInitInterrupt( void )
*(OSIntrHandler*)HW_INTR_VECTOR_BUF = osIrqHandler; *(OSIntrHandler*)HW_INTR_VECTOR_BUF = osIrqHandler;
#ifdef SDK_ARM11 #ifdef SDK_ARM11
reg_OS_CPUI_CNT = 0; reg_OS_IDR_CNT = REG_OS_IDR_CNT_E_MASK;
reg_OS_IDR_CNT = 0; reg_OS_CPUI_CNT = REG_OS_CPUI_CNT_E_MASK;
{ {
u32 num = OS_INTR_ID_NUM; u32 num = OS_INTR_ID_NUM;
@ -59,12 +59,6 @@ void osInitInterrupt( void )
u32 ack; u32 ack;
int i; int i;
for ( i=0; i<MATH_ROUNDUP(num, 32)/32; i++ )
{
reg_OS_IDR_CLR_IE[i] = HW_IDR_WORD_MASK;
reg_OS_IDR_CLR_PND[i] = HW_IDR_WORD_MASK;
}
for ( i=0; i<num; i++ ) for ( i=0; i<num; i++ )
{ {
reg_OS_IDR_TGT[i] = REG_OS_IDR_TGT0_C0_MASK; reg_OS_IDR_TGT[i] = REG_OS_IDR_TGT0_C0_MASK;
@ -78,17 +72,24 @@ void osInitInterrupt( void )
{ {
reg_OS_IDR_CFG[i] = conf; reg_OS_IDR_CFG[i] = conf;
} }
// while ( (ack = (reg_OS_CPUI_ACK & REG_OS_CPUI_ACK_ID_MASK)) != REG_OS_CPUI_ACK_ID_MASK ) while ( (ack = (reg_OS_CPUI_ACK & REG_OS_CPUI_ACK_ID_MASK)) != REG_OS_CPUI_ACK_ID_MASK )
{ {
// reg_OS_CPUI_EOI = ack; }
// reg_OS_IDR_CLR_PNDではクリアできないビット
for ( i=0; i<REG_OS_IDR_CLR_IE0_IPI_ALL_SIZE; i++ )
{
reg_OS_CPUI_EOI = i;
}
for ( i=0; i<MATH_ROUNDUP(num, 32)/32; i++ )
{
reg_OS_IDR_CLR_IE[i] = HW_IDR_WORD_MASK;
reg_OS_IDR_CLR_PND[i] = HW_IDR_WORD_MASK;
} }
} }
reg_OS_IDR_CNT = REG_OS_IDR_CNT_E_MASK;
reg_OS_CPUI_PRIO = 15 << REG_OS_CPUI_PRIO_THLD_SHIFT; reg_OS_CPUI_PRIO = 15 << REG_OS_CPUI_PRIO_THLD_SHIFT;
reg_OS_CPUI_BP = HW_CPUIBP_CMP_PRIO_ALL_BITS; reg_OS_CPUI_BP = HW_CPUIBP_CMP_PRIO_ALL_BITS;
reg_OS_CPUI_EOI = reg_OS_CPUI_ACK & REG_OS_CPUI_ACK_ID_MASK;
reg_OS_CPUI_CNT = REG_OS_CPUI_CNT_E_MASK;
#else // SDK_ARM9 #else // SDK_ARM9
reg_OS_IE = 0; reg_OS_IE = 0;