Reset, Interrupts, Exceptions, and Break - 2024.2 English

MicroBlaze Processor Reference Guide (UG984)

Document ID
UG984
Release Date
2024-11-27
Version
2024.2 English

MicroBlaze supports reset, interrupt, user exception, break, and hardware exceptions. The following section describes the execution flow associated with each of these events.

The relative priority starting with the highest is:

  1. Reset
  2. Hardware Exception
  3. Non-maskable Break
  4. Break
  5. Interrupt
  6. User Vector (Exception)

The following table defines the memory address locations of the associated vectors and the hardware enforced register file locations for return addresses. Each vector allocates two addresses to allow full address range branching (requires an IMM followed by a BRAI instruction). Normally the vectors start at address 0, but the parameter C_BASE_VECTORS can be used to locate them anywhere in memory.

The address range 0x28 to 0x4F is reserved for future software support. Allocating these addresses for user applications is likely to conflict with future releases of support software.

Table 1. Vectors and Return Address Register File Location
Event Vector Address Register File Return Address
Reset

C_BASE_VECTORS + 0x0 -

C_BASE_VECTORS + 0x4

-
User Vector (Exception)

C_BASE_VECTORS + 0x8 -

C_BASE_VECTORS + 0xC

Rx
Interrupt 1

C_BASE_VECTORS + 0x10 -

C_BASE_VECTORS + 0x14

R14
Break: Non-maskable hardware

C_BASE_VECTORS + 0x18 -

C_BASE_VECTORS + 0x1C

R16
Break: Hardware
Break: Software
Hardware Exception

C_BASE_VECTORS + 0x20 -

C_BASE_VECTORS + 0x24

R17 or BTR
Reserved for future use

C_BASE_VECTORS + 0x28 -

C_BASE_VECTORS + 0x4F

-
  1. With low-latency interrupt mode, the vector address is supplied by the Interrupt Controller.

All of these events will clear the reservation bit, used together with the LWX and SWX instructions to implement mutual exclusion, such as semaphores and spinlocks.