
RYZ012
Multi-Standard Wireless Communication Module for Bluetooth 5 Low Energy and 802.15.4
R15UH0002EU0103 Rev.1.03
Page 18 of 206
Apr.21.21
2.
MCU Description
The RYZ012 integrates a powerful 32-bit MCU. Due to a 16-bit instruction set, the binary code size is small, and due to a single cycle hardware
multiplier, the data processing is fast. All data processing is done from internal registers.
The MCU services interrupt requests in a dedicated processing mode. The interrupt service mode has its own stack, program control and status
registers, allowing for fast switching between interrupt service mode and normal mode.
2.1
Register Description
The RYZ012 incorporates a register file made of 13 general-purpose registers and eight special registers. The general-purpose registers R0 to
R12 temporarily store data during code processing. Additionally, these registers pass arguments into functions and provide the return value to
the caller.
The Stack Pointer register (SP) holds the current value of the call stack. It is decremented automatically when data is pushed to the stack and
incremented when data is popped. As the MCU has two stacks for normal operation and interrupt servicing, the register file has two stack
pointers. The stack that is active depends on the operating mode.
The Program Counter (PC) and Link Register (LR) are used to control the program flow. The PC always holds the address of the next function
to be executed. The link register is used to store return addresses for function calls. When a function is called, the calling function sets the link
address to the address of the instruction, which is executed immediately after returning from the call. On return from the caller, the caller sets
the PC to the value of the link register.
The SPSR and CPSR registers carry execution status information.
Table 2. Register File
Normal Mode
Interrupt Mode
Address
R0
0x800680
R1
0x800684
R2
0x800688
R3
0x80068c
R4
0x800690
R5
0x800694
R6
0x800698
R7
0x80069c
R8
0x8006a0
R9
0x8006a4
R10
0x8006a8
R11
0x8006ac
R12
0x8006b0
SP
NRM
SP
IRQ
0x8006b4
LR
NRM
LR
IRQ
0x8006b8
PC
0x8006bc
CPSR
0x8006c0
SPSR
NRM
SPSR
IRQ
0x8006c4