Xilinx Vitis Drivers API Documentation
scutimer Documentation

The timer driver supports the Cortex A9 private timer.The timer driver supports the following features:

  • Normal mode and Auto reload mode
  • Interrupts (Interrupt handler is not provided in this driver. Application has to register it's own handler)

Initialization and Configuration

The device driver enables higher layer software (e.g., an application) to communicate with the Timer.

XScuTimer_CfgInitialize() API is used to initialize the Timer. The user needs to first call the XScuTimer_LookupConfig() API which returns the Configuration structure pointer which is passed as a parameter to the XScuTimer_CfgInitialize() API.


The Timer hardware supports interrupts.

This driver does not provide a Interrupt Service Routine (ISR) for the device. It is the responsibility of the application to provide one if needed. Refer to the interrupt example provided with this driver for details on using the Timer in interrupt mode.

Virtual Memory

This driver supports Virtual Memory. The RTOS is responsible for calculating the correct device base address in Virtual Memory space.


This driver is not thread safe. Any needs for threads or thread mutual exclusion must be satisfied by the layer above this driver.


Asserts are used within all Xilinx drivers to enforce constraints on argument values. Asserts can be turned off on a system-wide basis by defining, at compile time, the NDEBUG identifier. By default, asserts are turned on and it is recommended that users leave asserts on during development.

Building the driver

The XScuTimer driver is composed of several source files. This allows the user to build and link only those parts of the driver that are necessary.

NOTE: The timer is not a part of the snoop control unit as indicated by the prefix "scu" in the name of the driver. It is an independent module in APU.

Ver   Who Date     Changes

1.00a nm 03/10/10 First release 1.02a sg 07/17/12 Included xil_assert.h for CR 667947. This is an issue when the xstatus.h in the common driver overwrites the xstatus.h of the standalone BSP during the libgen. 2.1 sk 02/26/15 Modified the code for MISRA-C:2012 compliance. ms 03/17/17 Added readme.txt file in examples folder for doxygen generation. 2.3 mus 08/31/20 Updated makefile to support parallel make and incremental builds, it would help to reduce compilation time.