comp.lang.ada
 help / color / mirror / Atom feed
From: Simon Wright <simon@pushface.org>
Subject: ANN: STM32F4 GNAT Run Time Systems 20150204
Date: Thu, 05 Feb 2015 11:26:44 +0000
Date: 2015-02-05T11:26:44+00:00	[thread overview]
Message-ID: <lyfvak4n0r.fsf@pushface.org> (raw)

This is the third release of a GNAT RTS with the GCC Runtime Library
exception for STM32F4 boards.

(a) Tasking is implemented using FreeRTOS[3], which STMicroelectronics
    provide a copy of with their BSP.

(b) I've included minimal interfaces to the board hardware: clock,
    buttons, LEDs. Given that the Ada RTS is minimal, these could have
    been put in their own library, not part of the RTS; but I was
    concerned that the board requires clock initialization before the
    other hardware can be used, and the Ada RTS requires clock
    initialization .. will probably revisit this decision.

The release is at [4]: it contains two RTSs, one (in
stm32f429i-disco-bsp; demonstrators in demo-stm32f429i-disco-bsp) has
the barest minimum for Ada support, while the more interesting one (in
stm32f429i-disco-rtos; demonstrators in demo-stm32f429i-disco-rtos)
supports Ravenscar tasking, allocators, tagged types, and the secondary
stack. From its README,

This is an Ada Runtime System (RTS) for the GCC Ada compiler (GNAT),
targeted to the STMicroelectronics STM32F429I Discovery board (see
http://www.st.com/).

The RTS supports Ravenscar tasking. Package System contains the
following additional restrictions:

   pragma Restrictions (No_Enumeration_Maps);
   pragma Restrictions (No_Exception_Propagation);
   pragma Restrictions (No_Finalization);
   pragma Restrictions (No_Recursion);

The RTS contains object code for all the relevant drivers from
STMicroelectronics' STM32Cube_FW_F4_V1.3.0 package, but not the source
code. Makefile.inc (altered as necessary to match the place where you
have installed the STM32Cube package) can be included in your own
Makefiles to provide access to the drivers' header and source files;
see the demonstration's Makefile.

The RTS has been built with no optimisation (-O0) and for debugging
(-g), using GCC 4.9.1 for arm-eabi-darwin13-bin[1] on Mac OS X (it
should work out of the box (but after recompilation!) with a
Linux-hosted cross-compiler.

The RTS is intended to support commercial binary distributions[2]. The
Ada source code has either been derived from FSF GCC (4.9.1) or
written for this work; see the files COPYING3 and COPYING.RUNTIME. The
C source has either been derived from STMCube or written for this
work: see the file COPYING.STMicroelectronics.

The RTS is based on FreeRTOS[3], as customised by STMicroelectronics
in the STM32Cube package. See COPYING.FreeRTOS.

The following non-original files don't form part of a binary
deliverable, so don't affect the status of the binary:

o build_runtime.gpr and runtime.xml originated in AdaCore's GNAT GPL
  2014 arm-eabi distribution (for Linux).

o The linker script stm32f429i-flash.ld is under an MIT licence: see
  COPYING.MIT.

[1] https://sourceforge.net/projects/gnuada/files/GNAT_GCC%20Mac%20OS%20X/4.9.1bis/arm-eabi/
[2] STMicroelectronics' evaluation product licence agreement at
www.st.com/epla forbids the sale of products including this board, so
this work would have to be reconfigured for a different board anyway.
[3] http://www.freertos.org
[4] https://sourceforge.net/projects/stm32f4-gnat-rts/files/20150204/


             reply	other threads:[~2015-02-05 11:26 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-05 11:26 Simon Wright [this message]
2015-02-05 16:06 ` ANN: STM32F4 GNAT Run Time Systems 20150204 Tero Koskinen
2015-02-05 17:21   ` Simon Wright
2015-02-05 18:51     ` Paul Rubin
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox