Skip to content

Releases: simonjwright/FreeRTOS-Ada

Release 2018-04-19 for GCC 6/GNAT GPL 2016

19 Apr 16:17
r20180419-gcc6
Compare
Choose a tag to compare
  • Support for bounded strings and CRC32 is included.

  • The performance of Timing_Events is improved.

  • delay until Ada.Real_Time.Time_Last is supported.

  • The restriction No_Recursion is removed (Ada_Drivers_Library uses it). It's still a good idea to include it where you can, possibly via a local configuration pragma: in your GPR's package Compiler,

    for Local_Configuration_Pragmas use "no_recursion.adc";

where of course no_recursion.adc contains

    pragma Restrictions (No_Recursion);
  • All but 2k of free store is available for heap.

Release 2017-10-16

16 Oct 12:59
Compare
Choose a tag to compare

Support for bounded strings and CRC32 is included.

The performance of Timing_Events is improved.

The restriction No_Recursion is removed (Ada_Drivers_Library uses it). It's still a good idea to include it where you can, possibly via a local configuration pragma: in your GPR's package Compiler,

for Local_Configuration_Pragmas use "no_recursion.adc";

where of course no_recursion.adc contains

pragma Restrictions (No_Recursion);

Release 2017-08-08

08 Aug 07:47
r20170808
Compare
Choose a tag to compare

A patch is provided to support FSF GCC 8/GNAT GPL 2017. See the installation instructions.

Maths support is included for Arduino Due, STM32F429I.

All free store (bar a 2048-byte allowance for startup and interrupts) is available for heap allocation.

Sequential elaboration (with the configuration pragma Partition_Elaboration_Policy (Sequential)) is supported.

Note that memory can't be allocated (directly or indirectly) from a protected handler. This is a feature of FreeRTOS.

Release 2017-07-26

26 Jul 20:39
Compare
Choose a tag to compare

This release is motivated by a wish to support the Crazyflie, a.k.a. Certyflie code from AdaCore in the stm32f4 RTS. However, most of the changes apply to the other RTSs as well.

The RTSs build as-is with FSF GCC 7.1.0 (for macOS users, a compiler is available at Sourceforge).

At FSF GCC 7, the interface to create a task changed (Create takes an extra parameter, Secondary_Stack_Size). Alternate versions are provided for use with FSF GCC 6 (macOS compiler also at Sourceforge):

common/environment_task.adb-gcc6
common/s-tarest.ads-gcc6
common/s-tarest.adb-gcc6

To use them, copy over the equivalent .ad? file.

These patches are also needed to build the RTS with GNAT GPL 2016.

GNAT GPL 2017 does not require these patches: however, attempting to build the RTS results in

[Ada]          a-stream.ads
a-stream.ads:67:09: expected type "Standard.Boolean"
a-stream.ads:67:09: found type "Ada.Tags.Size_Ptr"
a-stream.ads:67:09: expected type "Ada.Tags.Select_Specific_Data_Ptr"
a-stream.ads:67:09: found a composite type
a-stream.ads:67:09: no value supplied for component "Tags_Table"
gprbuild: *** compilation phase failed

With GNAT GPL 2016, the cortex-gnat-rts test programs work properly. The Certyflie branch also works, after removing the Create_Missing_Dirs attributes, new in GPRBuild GPL 2017, from all the GPRs.

Common

The base is FreeRTOS 9.0.0.

Added Ada.Real_Time.Timing_Events (with limitations: there's no finalization, so they should only be declared at library level).

SPARK annotations in Ada.Real_Time are copied from those in GCC 7.1.0.

Added Interfaces.C.Extensions.

type'Image() and object'Img are supported.

The default stack size is 4096 (the minimum size is still 768).

stm32f4

Stack overflow checking is enabled in FreeRTOS.

Added Ada.Numerics.* (excluding random number generation).

In Ada.Interrupts.Names, interrupts are still named *_IRQ, but renamings to *_Interrupt are included.

The main program can have pragma (or aspect) Priority.

Executables can be built to load at an offset from the STM32F4's default (this is to support the Crazyflie's over-the-air bootloader).

Release 2016-05-22

27 Jul 16:20
Compare
Choose a tag to compare

In this release,