FreeRTOS Software Stack - 2020.2 English

Versal ACAP System Software Developers Guide (UG1304)

Document ID
Release Date
2020.2 English

In a simpler RTOS, the RTOS itself is like a library that is linked together with the application and RTOS running in the same domain. In a more advanced RTOS, an optional process mode (e.g., VxWorks real-time processes, Nucleus Process Model, and QNX processes) is available with the same decoupling of applications and kernels as Linux. Xilinx provides a FreeRTOS BSP as a part of the Vitis software platform. The FreeRTOS BSP provides you a simple, multi-threading environment with basic features such as, standard input/output and access to processor hardware features. The BSP and the included libraries are highly configurable to provide you the necessary functionality with the least overhead. The FreeRTOS software stack is similar to the bare-metal software stack, except that it contains the FreeRTOS library. Xilinx device drivers included with the standalone libraries can typically be used within FreeRTOS provided that only a single thread requires access to the device.

Important: Xilinx bare-metal drivers are not aware of OS. They do not provide any support for mutexes to protect critical sections, and they do not provide any mechanism for semaphores for use during synchronization. While using the driver API with FreeRTOS kernel, you must take care of this aspect.

The following figure illustrates the FreeRTOS software stack for the RPU.

Figure 1. FreeRTOS Software Stack
Note: The FreeRTOS software stack for the APU is same as that for the RPU except that the libraries support both 32-bit and 64-bit operation on the APU.