Types of Interrupts

Description

The events that cause interrupts vary depending on both the operating mode (NITRO mode vs TWL mode) and the processor (ARM9 vs ARM7). The following list shows the types of ARM9 interrupts in NITRO mode and in TWL mode. ARM7 interrupts are omitted from this discussion.

Interrupts in NITRO Mode (ARM9)

Value Type of Interrupt Bit (2n)
OS_IE_V_BLANK V-Blank interrupt 0
OS_IE_H_BLANK H-Blank interrupt 1
OS_IE_V_COUNT V-Counter interrupt 2
OS_IE_TIMER0 Timer0 interrupt 3
OS_IE_TIMER1 Timer1 interrupt 4
OS_IE_TIMER2 Timer2 interrupt 5
OS_IE_TIMER3 Timer3 interrupt 6 *2
OS_IE_DMA0 DMA0 interrupt 8 *2
OS_IE_DMA1 DMA1 interrupt 9
OS_IE_DMA2 DMA2 interrupt 10
OS_IE_DMA3 DMA3 interrupt 11
OS_IE_KEY (*1) Key Interrupt 12
OS_IE_CARTRIDGE Game Pak IREQ/DREQ interrupt 13
OS_IE_SUBP ARM7 interrupt 16
OS_IE_SPFIFO_SEND ARM9-ARM7 send FIFO empty interrupt 17
OS_IE_SPFIFO_RECV ARM9-ARM7 receive FIFO not-empty interrupt 18
OS_IE_CARD_DATA Card data transfer end interrupt 19
OS_IE_CARD_IREQ Card IREQ interrupt 20
OS_IE_GXFIFO Geometry command FIFO interrupt 21

*1 The hardware specification does not allow the use of key interrupts. However, they can be used for awakening from sleep.
*2 There is no interrupt that corresponds to the case where the bit is 27.



Interrupts in TWL Mode (ARM9)

Within the table, items marked with a ★ are new and were not used in NITRO.

Value Types of Interrupts Bit (2n)
OS_IE_V_BLANK V-Blank interrupt: 0
OS_IE_H_BLANK H-Blank interrupt: 1
OS_IE_V_COUNT V-Counter interrupt 2
OS_IE_TIMER0 Timer0 interrupt 3
OS_IE_TIMER1 Timer1 interrupt 4
OS_IE_TIMER2 Timer2 interrupt 5
OS_IE_TIMER3 Timer3 interrupt 6 *5
OS_IE_DMA0 DMA0 interrupt 8 *5
OS_IE_DMA1 DMA1 interrupt 9
OS_IE_DMA2 DMA2 interrupt 10
OS_IE_DMA3 DMA3 interrupt 11
OS_IE_KEY (*3) Key Interrupt 12
OS_IE_CARTRIDGE Game Card IREQ/DREQ interrupt 13
OS_IE_CARD_A_DET ★ (*4) Memory Card A MC_DET terminal falling edge interrupt 14
OS_IE_CARD_B_DET ★ (*4) Memory Card B MC_DET terminal falling edge interrupt 15
OS_IE_SUBP ARM7 interrupt 16
OS_IE_SPFIFO_SEND ARM9-ARM7 send FIFO empty interrupt 17
OS_IE_SPFIFO_RECV ARM9-ARM7 receive FIFO not-empty interrupt 18
OS_IE_CARD_A_DATA (OS_IE_CARD_DATA) (*4) Card [A] data transfer completion interrupt 19
OS_IE_CARD_A_IREQ (OS_IE_CARD_IREQ) (*4) Card [A] IREQ interrupt 20
OS_IE_GXFIFO Geometry command FIFO interrupt 21
OS_IE_DEBUG_RECV ★ DEBUG communication channel receive buffer readable interrupt 22
OS_IE_DEBUG_SEND ★ DEBUG communication channel send buffer writable interrupt 23
OS_IE_DSP ★ DSP interrupt 24
OS_IE_CAMERA ★ Camera interrupt 25
OS_IE_CARD_B_DATA ★ (*4) Card [B] data transfer completion interrupt 26
OS_IE_CARD_B_IREQ ★ (*4) Card [B] IREQ interrupt 27
OS_IE_NDMA0 ★ New DMA0 interrupt 28
OS_IE_NDMA1 ★ New DMA1 interrupt 29
OS_IE_NDMA2 ★ New DMA2 interrupt 30
OS_IE_NDMA3 ★ New DMA3 interrupt 31

*3 The hardware specification does not allow the use of key interrupts. However, they can be used for awakening from sleep.
*4 The "A" and "B" designations for Cards were set during development for expediency. Type B are used for development hardware like the debugger and are not normally used by users.
*5 There is no interrupt that corresponds to the case where the bit is 27.

See Also

OS_EnableIrqMask
OS_DisableIrqMask
OS_SetIrqMask

Revision History

2008/05/30 Initial version.


CONFIDENTIAL