Specifications
Embedded System Tools Guide (EDK 6.2i) www.xilinx.com 125
UG111 (v1.4) January 30, 2004 1-800-255-7778
OS
R
should have the targets “include” and “libs”. Each library must also contain an MLD file 
and a Tcl file in the data subdirectory. Refer to the existing EDK libraries to get an 
understanding of the structure of the libraries. Refer to Chapter 20, “Microprocessor 
Library Definition (MLD)” for details on how to write an MLD and its corresponding Tcl 
file.
OS
The MSS file now includes an OS block for each processor instance. The OS block contains 
a reference to the OS name (OS_NAME parameter), and the OS version (OS_VER). There is 
no default value for these parameters. The bsp directory contains C source and header 
files and a makefile for the OS. 
The MLD file for each OS specifies all configurable options for the OS. Each MLD file has 
a corresponding Tcl file associated with it. Refer to Chapter 20, “Microprocessor Library 
Definition (MLD)” and Chapter 19, “Microprocessor Software Specification (MSS)” for 
more information.
Users can write their own OS’s. These OS’s must be in a specific directory under 
USER_PROJECT/bsp or library_name/bsp as shown in Figure 7-1, page 120. The 
OS_NAME attribute allows the user to specify any name for an OS, which is also the name 
of the OS directory. The source files and makefile for the OS must be in the src 
subdirectory under the os_name directory. The makefile should have the targets “include” 
and “libs”. Each OS must also contain an MLD file and a Tcl file in the data subdirectory. 
Refer to the existing EDK OS’s to get an understanding of the structure of the OS’s. Refer to 
Chapter 20, “Microprocessor Library Definition (MLD)” for details on how to write an 
MLD and its corresponding Tcl file.
Interrupts and Interrupt Controller
An interrupt controller peripheral must be instantiated if the MHS file has multiple 
interrupt ports connected. LibGen statically configures interrupts and interrupt handlers 
through the Tcl file for the interrupt controller. Alternately, users can dynamically register 
interrupt handlers in the user code. Interrupts for the peripherals needs to be enabled in 
the user code.
Interrupt Controller Driver Customization
In the MSS file, the INT_HANDLER parameter allows an interrupt handler routine to be 
associated with the interrupt signal. The Interrupt Controller’s Tcl file uses this parameter 
to configure the interrupt controller handler to call the appropriate peripheral handlers on 
an interrupt. The functionality of these handler routines is left to the user to implement. If 
the INT_HANDLER parameter is not specified, a default dummy handler routine for the 
peripheral is used.
For MicroBlaze: if there is only one interrupt driven peripheral, an interrupt controller 
need not be used. However, the peripheral should still have an interrupt handler routine 
specified. Otherwise a default one is used.
When MicroBlaze is the processor to which the interrupt controller is connected, and when 
mb-gcc is the compiler used to compile drivers, the Tcl file associated with the MicroBlaze 
driver MDD designates the interrupt controller handler as the main interrupt handler. 
For the PowerPC processor, the user is responsible for setting up the exception table. Refer 
to Chapter 23, “Interrupt Management” for more information.










