Memory Map

RIX8 uses a 16-bit address space, giving 64 KB total. The space is divided between external SPI Flash, external SPI SRAM, and memory-mapped peripherals.

Address Space Layout

Range Size Region Access
0x0000 – 0x7EFF ~32 KB SPI Flash (instructions) Read-only
0x7F00 – 0x7FFF 256 B Memory-mapped I/O Read/write
0x8000 – 0xFFFF 32 KB SPI SRAM (data) Read/write

Memory-Mapped I/O

The I/O region at 0x7F00 contains peripheral registers.

Address Register Access Description
0x7F00 UART_TX Write Write a byte to transmit
0x7F01 UART_RX Read Read a received byte
0x7F02 UART_STATUS Read Bit 0: RX ready, Bit 1: TX busy
0x7F10 SPI_DATA Read/write QSPI data register
0x7F11 SPI_CTRL Write QSPI control (start, CS)
0x7F12 SPI_STATUS Read Bit 0: busy

Reset Vector

On reset, the PC is set to 0x0000. The first instruction is fetched from SPI Flash at address 0x0000.