EasyManuals Logo

Xilinx MicroBlaze Reference Guide

Xilinx MicroBlaze
316 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #191 background imageLoading...
Page #191 background image
MicroBlaze Processor Reference Guide 192
UG984 (v2018.2) June 21, 2018 www.xilinx.com
Chapter 4: MicroBlaze Application Binary Interface
Interrupt, Break and Exception Handling
MicroBlaze assumes certain address locations for handling interrupts and exceptions as
indicated in the following table. At these locations, code is written to jump to the
appropriate handlers.
The code expected at these locations is as shown below. The crt0.o initialization file is
passed by the mb-gcc compiler to the mb-ld linker for linking. This file sets the
appropriate addresses of the exception handlers.
The following is code for passing control to Exception, Break and Interrupt handlers,
assuming the default
C_BASE_VECTORS value of 0x00000000:
0x00: bri _start1
0x04: nop
0x08: imm high bits of address (user exception handler)
0x0c: bri _exception_handler
0x10: imm high bits of address (interrupt handler)
0x14: bri _interrupt_handler
0x18: imm high bits of address (break handler)
0x1c: bri low bits of address (break handler)
0x20: imm high bits of address (HW exception handler
0x24: bri _hw_exception_handler
With low-latency interrupt mode, control is directly passed to the interrupt handler for each
individual interrupt utilizing this mode. In this case, it is the responsibility of each handler
to save and restore used registers. The MicroBlaze C compiler (mb-gcc) attribute
fast_interrupt is available to allow this task to be performed by the compiler:
void interrupt_handler_name() __attribute__((fast_interrupt));
Table 4-4: Interrupt and Exception Handling
On Hardware jumps to Software Labels
Start / Reset C_BASE_VECTORS + 0x0 _start
User exception C_BASE_VECTORS + 0x8 _exception_handler
Interrupt C_BASE_VECTORS + 0x10
1
1. With low-latency interrupt mode, the vector address is supplied by the Interrupt Controller.
_interrupt_handler
Break (HW/SW) C_BASE_VECTORS + 0x18 -
Hardware exception C_BASE_VECTORS + 0x20 _hw_exception_handler
Reserved by Xilinx C_BASE_VECTORS + 0x28 -
C_BASE_VECTORS
+ 0x4F
-
Send Feedback

Table of Contents

Other manuals for Xilinx MicroBlaze

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the Xilinx MicroBlaze and is the answer not in the manual?

Xilinx MicroBlaze Specifications

General IconGeneral
Architecture32-bit RISC
CacheConfigurable Instruction and Data Cache
CategorySoft Processor Core
Data Width32-bit
Memory Management Unit (MMU)Optional
Floating Point Unit (FPU)Optional
Interrupt ControllerConfigurable
Memory ManagementOptional MMU
ConfigurabilityHighly Configurable
Pipeline Stages3-stage
FPGA IntegrationXilinx FPGAs
Bus InterfacePLB
Debug InterfaceJTAG
Typical Clock SpeedVaries depending on FPGA and configuration (e.g., 100-400+ MHz)
ImplementationSoft core (synthesized logic)
Maximum PerformanceVaries with FPGA and configuration
Debug SupportIntegrated Debug Module

Related product manuals