FreeRTOS Topics

This appendix describes topics relevant to GNAT Pro for FreeRTOS.

Supported Run-Time Libraries

GNAT Pro for FreeRTOS is currently provided with a single runtime: the Light runtime. This runtime allows the development of applications that work with a small runtime profile and do not require tasking.

Supported Targets

GNAT Pro for FreeRTOS currently supports the following target architectures for FreeRTOS:

  • Generic ARMv7 Cortex-A9 with VFPv3 floating point support

FreeRTOS Integration and Dependencies

The runtime targets a generic FreeRTOS under the assumption that a target with FreeRTOS is already provided with a BSP and toolchain. When compiling an Ada program with that runtime the compiler will produce a partially linked binary that can be linked into the BSP and FreeRTOS runtime library. The Ada runtime itself does provide neither FreeRTOS nor a BSP. The produced binary will provide the main symbol that can be called by the BSP.

Getting Started with an Ada application on FreeRTOS

A FreeRTOS application can be built like any other cross Ada application. Simply providing the target and runtime to the build command is sufficient.

gprbuild -P project.gpr --target=arm-freertos --RTS=light-v7a-fp

The generated partially linked binary can then be linked into the existing FreeRTOS infrastructure.

Ada.Text_IO on FreeRTOS

FreeRTOS is usually accompanied by a libc implementation such as newlib. The Ada runtime uses the libc APIs provided by such an implementation to implement Ada.Text_IO.

Foreign Thread Support on Light

The Light runtime for FreeRTOS currently does not support integrating with native FreeRTOS tasks. This feature is planned for the future.