Skip to content

This project contains various GNAT Ada Run Time Systems (RTSs) targeted at Cortex boards: so far, the Arduino Due, the STM32F4-series evaluation boards from STMicroelectronics, and the BBC micro:bit

License

Notifications You must be signed in to change notification settings

nesos/cortex-gnat-rts

 
 

Repository files navigation

This package includes GNAT Ada Run Time Systems (RTSs) based on FreeRTOS and targeted at boards with Cortex-M0, M3, -M4, -M4F MCUs (respectively BBC micro:bit, Arduino Due, and the STM32F4-series evaluation boards from STMicroelectronics).

The RTSs are all Ravenscar-based, with additional restrictions No_Exception_Propagation and No_Finalization. No_Exception_Propagation means that exceptions can't be caught except in their immediate scope; instead, a Last_Chance_Handler is called.

In each case, the board support for the RTS (configuration for size and location of Flash, RAM; clock initialization; interrupt naming) is in $RTS/adainclude. Support for the on-chip peripherals is also included, in Ada spec files generated by SVD2Ada (https://github.com/AdaCore/svd2ada).

The Ada source is either original or based on FSF GCC (mainly 4.9.1, some later releases too).

The boards supported are

  • microbit for the BBC micro:bit.

    • See microbit/COPYING* for licensing terms.
    • On-chip peripheral support in nrf51/.
    • Tests in test-microbit/.
  • arduino-due for the Arduino Due.

    • See arduino-due/COPYING* for licensing terms.
    • On-chip peripheral support in atsam3x8e/.
    • Tests in test-arduino-due/.
  • stm32f4 for the STM32F4-DISC* board (and also the Crazyflie).

    • See stm32f4/COPYING* for licensing terms.
    • On-chip peripheral support in stm32f40x/.
    • Tests in test-stm32f4/.
  • stm32f429i for the STM32F429I-DISC* board.

    • See stm32f429i/COPYING* for licensing terms.
    • On-chip peripheral support in stm32f429x/.
    • Tests in test-stm32f429i/.

The standard packages included (there are more, implementation-specific, ones) for all RTSs are:

Ada
Ada.Characters
Ada.Characters.Latin_1
Ada.Containers
Ada.Containers.Bounded_Hashed_Maps
Ada.Containers.Bounded_Vectors
Ada.Exceptions
Ada.IO_Exceptions
Ada.Interrupts
Ada.Interrupts.Names
Ada.Iterator_Interfaces
Ada.Numerics.* (except random numbers)
Ada.Real_Time
Ada.Real_Time.Timing_Events
Ada.Streams
Ada.Strings
Ada.Strings.Bounded
Ada.Strings.Maps
Ada.Synchronous_Task_Control
Ada.Tags
Ada.Task_Identification
Interfaces
Interfaces.C
Interfaces.C.Extensions
Interfaces.C.Strings
System
System.Assertions
System.Address_To_Access_Conversions
System.Machine_Code
System.Storage_Elements
GNAT
GNAT.CRC32
GNAT.Source_Info

For installation, see the instructions.

About

This project contains various GNAT Ada Run Time Systems (RTSs) targeted at Cortex boards: so far, the Arduino Due, the STM32F4-series evaluation boards from STMicroelectronics, and the BBC micro:bit

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ada 98.3%
  • C 1.3%
  • Other 0.4%