[][src]Module gba_addresses::iwram

Internal Work Ram (IWRAM).

The internal work ram has a number of uses, mostly as space for stack values. It is also common for your linker script to put any globals at the base of IWRAM (though Rust sorta hates globals, of course).

Each stack pointer starts at the top of its respective region, and then stack usage moves the stack pointer down. Don't stack overflow.

  • Size: 32kb
  • Wait states: 0
  • Bus Size: 32-bit
  • Read/Write: 8/16/32

Constants

DEFAULT_SP_IRQ

Default stack pointer for interrupt mode.

DEFAULT_SP_SVC

Default stack pointer for supervisor mode.

DEFAULT_SP_USER

Default stack pointer for user/system mode.

IRQ_HANDLER_ADDR

The location of the interrupt handler function address.

IRQ_INTR_WAIT_CHECK_FLAG_ADDR

The address of the check flag for IntrWait/VBlankIntrWait.

IRQ_INTR_WAIT_CHECK_FLAG_LAST_MIRROR_ADDR

A mirror of IRQ_INTR_WAIT_CHECK_FLAG_ADDR.

IWRAM_COUNT

There is 32kb of memory in IWRAM, though parts of it are reserved.

IWRAM_ENTRY_SIZE

IWRAM can be accessed byte by byte.

IWRAM_RESERVED

All IWRAM above this point is reserved.

IWRAM_START_ADDR

Base Address of IWRAM